Ketika saya menginstal Ubuntu 10,04 dan, sekarang, 10,10, saya ditawari opsi untuk mengaktifkan "LVM terenkripsi" untuk hard drive saya. Setelah memilih opsi itu, saya diminta kata sandi saya saat boot untuk mendekripsi LVM.
Sekarang, saya berpikir untuk membuat server tanpa kepala yang menjalankan Linux (belum tentu Ubuntu), tetapi saya khawatir karena server itu tanpa kepala saya tidak akan bisa mendekripsi saat startup. Apakah saya bisa masuk SSH saat boot untuk memasukkan kata sandi saya untuk LVM terenkripsi? Jika demikian, bagaimana cara mengaturnya? Atau ada solusi lain? Sekali lagi pertanyaan ini BUKAN spesifik untuk Ubuntu. Terima kasih.
zless /usr/share/doc/cryptsetup/README.remote.gz
Jawaban:
Untuk versi ubuntu yang lebih baru, misalnya, 14,04, saya menemukan kombinasi @dragly dan jawaban blogpost ini sangat membantu. Mengutip:
(Di server) Instal Dropbear
(Di server) Salin dan tetapkan izin untuk login root publik / kunci privat
ingatlah untuk mengubah pengguna menjadi nama pengguna Anda di server
(Pada klien) Ambil kunci pribadi dari server
(Pada klien) Tambahkan entri ke ssh config
(Di server) Buat file ini di
/etc/initramfs-tools/hooks/crypt_unlock.sh
(Di server) Jadikan file itu dapat dieksekusi
Perbarui initramfs
Nonaktifkan layanan dropbear saat boot sehingga openssh digunakan setelah partisi didekripsi
Kamu sudah selesai. Cobalah. Periksa posting blog yang ditautkan ke atas untuk instruksi tentang cara mengkonfigurasi server dengan alamat IP statis jika itu adalah sesuatu yang perlu Anda lakukan.
sumber
/etc/initramfs-tools/root/.ssh/authorized_keys
, bahkan jika itu masih melalui menyalin kunci pribadi Dropbear, yang orang dapat abaikan sepenuhnya. Mengikuti petunjuk lainnya bekerja untuk saya, yang berarti ini harus menjadi jawaban yang diterima (setelah itu mencerminkan perubahan itu), karena hanya menggunakan kunci publik.Panduan untuk melakukan pengaturan seperti itu dengan BusyBox dan Dropbear ditampilkan di posting blog ini . ssh-awal tidak bekerja untuk saya dan tampaknya tidak diperlukan lagi.
Saya telah merangkum apa yang perlu Anda lakukan di berikut ini. Untuk lebih jelasnya, lihat posting di atas:
Instal BusyBox dan Dropbear di server Anda
Perbarui initramfs Anda di server
Salin kunci pribadi yang dihasilkan oleh dropbear ke mesin klien Anda. Anda mungkin harus menyalin ini ke dir baru dan mengubah kepemilikan untuk melakukan ini. Di server Anda lakukan hal berikut:
Ingatlah untuk mengganti pengguna dengan nama pengguna Anda. Login kata sandi sepertinya tidak berfungsi.
Sekarang Anda dapat mentransfer kunci pribadi dengan scp dengan memanggil yang berikut di klien Anda :
Siapkan file ~ / .ssh / config klien Anda untuk login mudah. Buka dengan editor teks dan tambahkan berikut ini:
Ubah Host menjadi apa pun yang Anda suka dan HostName menjadi nama server Anda. Biarkan pengguna menjadi root. Tampaknya menjadi satu-satunya pengguna yang diterima di Dropbear. Simpan dan tutup file.
Mulai ulang server Anda dan tunggu konfirmasi frasa sandi. Berikan Dropbear beberapa detik untuk mendeteksi dan mengatur koneksi internetnya. Hubungkan ke server Anda dengan perintah berikut pada klien Anda :
Saat masuk, terbitkan perintah berikut di server Anda . Lihat posting blog untuk detail:
Diperlukan waktu (30 detik) sebelum Anda mengetikkan frasa sandi. Ketikkan ketika diminta.
Tutup koneksi dengan mengetik
Server Anda sekarang harus membuka kunci hard drive terenkripsi dan boot seperti biasa.
(Terima kasih banyak kepada penulis asli posting blog!)
sumber
Saya pikir early-ssh memberikan apa yang Anda cari:
Sudah ada paket deb., Jadi Anda mungkin baik-baik saja dengan Ubuntu.
sumber
Lihat readme cryptsetup untuk ini dalam
/usr/share/doc/cryptsetup/README.remote.gz
(paket Ubuntucryptsetup
). Di sana ada panduan lengkap untuk mencapai hal ini. Ini mirip dengan jawaban dragly , tapi saya pikir ini sedikit lebih elegan. (Dropbear kunci yang diformat, melewati frasa sandi melalui FIFO daripada skrip shell yang rapuh, dll.)Terima kasih kepada jap karena menunjukkan hal ini kepada saya di saluran yang berbeda.
sumber
read -s -p
.Jika Anda ingin dapat mem-boot tanpa pengawasan dan juga dari jarak jauh, Anda juga harus melihat Mandos (yang saya dan orang lain telah tulis):
Singkatnya, server booting mendapatkan kata sandi melalui jaringan, dengan cara yang aman. Lihat README untuk detailnya.
sumber
Server tanpa kepala? Jika memiliki port serial, gunakan itu.
GRUB dapat dikonfigurasi untuk berfungsi pada port serial. Kernel Anda juga dapat dikonfigurasikan menggunakan port serial untuk menghasilkan pesan-pesan boot awal, memasukkan kata sandi untuk membuka kunci drive Anda, dan masuk. (Jika server Anda mendukung BIOS serial, aktifkan juga. Maka Anda tidak akan pernah harus terhubung monitor ke mesin sama sekali).
Selalu merupakan ide bagus untuk memiliki cara "non-jaringan" untuk masuk ke server tanpa kepala.
sumber
Pada arch linux, ada paket AUR dropbear_initrd_encrypt yang melakukan apa yang Anda inginkan di luar kotak. Berfungsi cukup baik untuk antarmuka kabel. Saya harus meretasnya sedikit untuk nirkabel.
sumber
Sayangnya, tidak ada jawaban di atas yang berfungsi untuk saya. Selain itu, menyalin kunci pribadi dari server tampaknya paradoks.
Bagaimanapun, instruksi berikut berhasil:
Boot SERVER Anda dengan menghubungkan dan membuka kunci partisi yang dienkripsi melalui CLIENT Anda
Instal paket wajib (di SERVER)
Tambahkan kunci publik yang Anda inginkan ke file serahkan_keys SERVER
Cukup salin dan tempel kunci publik ke
/etc/dropbear-initramfs/authorized_keys
SERVERBuat skrip pembuka kunci
Buat skrip berikut dalam
/etc/initramfs-tools/hooks/crypt_unlock.sh
Jadikan itu dapat dieksekusi:
Buat IP statis (atau lewati langkah ini untuk menggunakan DHCP)
Edit
/etc/initramfs-tools/initramfs.conf
untuk menambahkan (atau mengubah) baris:Perbarui initialramfs
Nonaktifkan layanan dropbear saat boot sehingga openssh digunakan setelah partisi didekripsi
Pengujian
ssh [email protected] [-i ~/.ssh/id_rsa]
sumber
Pada debian 9 (stabil), solusi ini sudah usang. Selama instalasi, saya mendapat peringatan tentang
dropbear: WARNING: Invalid authorized_keys file, remote unlocking of cryptroot via SSH won't work!
, dan saya tidak dapat menemukan kunci yang diperlukan. Metode ini sangat sederhana, dan dijelaskan kepada saya di saluran #debian yang hebat (terima kasih lagi):Pertama pastikan itu
busybox
,dropbear
dandropbear-initramfs
sudah diinstalkemudian tambahkan kunci publik Anda (sebagian besar waktu
~/.ssh/id_rsa.pub
) dalam file/etc/dropbear-initramfs/authorized_keys
.Perbarui kemudian
initramfs
untuk memperhitungkan perubahan:: update-initramfs -uItu saja!
Catatan, jika Anda ingin menghindari bentrokan antara tombol di antara
dropbear
danopenssh
(mereka berbagi ip yang sama, tetapi menggunakan kunci yang berbeda), Anda mungkin ingin memasukkan~/.ssh/config
sesuatu seperti itu pada klien Anda :Kemudian, Anda cukup terhubung menggunakan:
dan begitu Anda mendapatkan prompt, ketik seperti yang disarankan oleh prompt busybox:
dan ketikkan kata sandi Anda.
Nikmati!
sumber
Saya menulis peran Ansible yang melakukan ini untuk Anda. Dapatkan peran debops-contrib.dropbear_initramfs dan jalankan. Lihat dokumentasi peran untuk detailnya.
sumber
Saya telah menggunakan teknik yang dijelaskan oleh orang lain di halaman ini (SSH dalam initramfs dengan
IP
parameter kernel untuk mengkonfigurasi jaringan) selama beberapa tahun sekarang untuk membuka kunci server Linux Ubuntu tanpa kepala dari jarak jauh (12.02, 14.04, 16.04 dan 18.04).Saya bahkan melangkah lebih jauh dengan mengembangkan program Python ( unlock-remote-system ) yang melakukan unlocking sebenarnya bagi saya, karena proses melakukan ini secara manual terasa agak rapuh dan saya mulai takut me-reboot server saya, jadi dengan semangat dari "jika sakit itu layak diotomatisasi" Saya menyandikan pengetahuan saya dengan Python 😇 (dan ini memang membuatnya lebih mudah untuk melakukan reboot secara teratur untuk menerapkan pembaruan keamanan).
Sejak itu saya memutuskan untuk juga membagikan catatan pribadi saya tentang enkripsi disket jarak jauh dengan dunia. Halaman yang tertaut berisi beberapa detail tentang prosedur ini (juga beberapa petunjuk yang tidak disebutkan di sini) dan saya bermaksud untuk memperbaruinya.
sumber