root dikunci dari EC2

8

Saya sedang dalam proses menonaktifkan login root pada contoh AWS EC2. Tepat setelah mengatur tidak ada PermitRootLogin dan restart sshd, saya menutup terminal secara tidak sengaja - sebelum mengatur pengguna dengan hak sudo. Hasilnya adalah kunci saya untuk masuk ke instance karena root tidak berfungsi (sshd melarangnya) dan ketika saya login ke instance menggunakan pengguna biasa saya, saya tidak bisa mendapatkan hak akses root (password root tidak pernah disetel). Contoh sedang menjalankan ubuntu 8.10. Adakah yang tahu bagaimana cara memperbaikinya?

Jeff Atwood
sumber

Jawaban:

9

Tidak, jangan menghentikan instansinya, semuanya tidak hilang !!

  1. boot instance lain dan matikan instance buruk.
  2. lepaskan volume EBS dari instance yang buruk dan pasangkan ke instance yang baru.
  3. Pasang di instance baru (mis. Sesuatu seperti sudo mount / dev / xvdf1 / mnt /)
  4. chroot ke dalamnya (sudo chroot / mnt) dan ketik passwd.
  5. setel ulang kata sandi atau buat perubahan lain yang Anda suka (vi / etc / ssh / sshd_config, misalnya!)
  6. Tekan control-D atau ketik exit untuk keluar dari chroot.
  7. umount / mnt
  8. lepaskan volume EBS dari instance sementara Anda
  9. pasang kembali atau ambil snap dan buat AMI baru berdasarkan snapshot itu
  10. Boot kembali kotak tetap!

PS lain kali coba Userify untuk mengelola kunci pengguna Anda :)

kesalahan fatal
sumber
1
Catatan: ini tidak akan berfungsi jika Anda meluncurkan instance dari pasar AWS (instance tersebut tidak dapat memiliki volume root mereka dipasang di tempat lain). Ini termasuk distro open source tertentu seperti CentOS.
fatal_error
3

Tanpa menemukan kerentanan, satu-satunya cara untuk mendapatkan akses root pada mesin Linux adalah mem-boot ke mode pengguna tunggal dan mengatur ulang kata sandi. Namun, Anda tidak memiliki akses level KVM pada instance EC2, jadi ini tidak mungkin.

Anda harus menghentikan instance EC2 itu dan meluncurkan yang lain. Tetapi menonaktifkan login root bertentangan dengan paradigma umum di EC2. Amazon menyarankan agar Anda memberikan kunci publik pada waktu peluncuran dan minta skrip init menginstalnya ke /root/.ssh/authorized_keys, dengan sshd yang dikonfigurasikan ke 'PermitRootLogin tanpa kata sandi' untuk memaksa login keypair saja. Dengan cara ini Anda tidak akan pernah dapat secara tidak sengaja mengunci diri dari akun root Anda (asalkan Anda tidak kehilangan kunci pribadi Anda).

Di masa depan, saya sarankan Anda membuat pengguna dengan akses sudo dan kemudian memulai sesi 'layar' segera setelah Anda masuk sehingga pemutusan tidak akan menghentikan / merusak pekerjaan Anda. Setelah Anda mengkonfigurasi dan menginstal aplikasi Anda, bundel, unggah, dan bundel AMI Anda sehingga Anda dapat meluncurkan instance baru saat diperlukan.

Victor Trac
sumber
+1 untuk saran layar, meskipun saya lebih suka tmux .
h0tw1r3
Solusi di bawah pemasangan volume EBS akan berfungsi dalam hal ini - dengan asumsi instance memiliki EBS.
AliGibbs
1

Apakah Anda memiliki AMI yang disimpan dengan perubahan apa pun yang Anda buat pada instance Anda sebelum Anda menonaktifkan login root? Jika tidak, Anda harus kembali ke AMI dasar yang Anda mulai dan membuat instance EC2 baru.

gareth_bowles
sumber
-1

Salah satu cara untuk melakukannya adalah menemukan kerentanan lokal di sistem Anda yang dapat memberi Anda root shell. Dapatkan daftar perangkat lunak yang diinstal di dalam kotak dan google / securityfocus masing-masing.


sumber