Saya memiliki server Debian Wheezy yang sudah berjalan beberapa saat dengan drive yang dienkripsi. Kata sandi untuk drive terenkripsi ( /dev/sda5
) hilang ketika file kata sandi terenkripsi saya rusak.
Saya ingin dapat me-reboot server ini, tetapi tentu saja itu memerlukan kata sandi itu. Karena drive jelas dalam status terenkripsi, apakah ada cara untuk mengubah kata sandi tanpa mengetahui yang lama?
cryptsetup luksChangeKey /dev/sda5
membutuhkan kata sandi volume.
Saya tentu saja dapat melakukan rsync
semuanya dan membangun kembali, tetapi saya ingin menghindari itu. Saya melihat melalui memori ( #cat /dev/mem | less
), tetapi tidak dapat menemukannya (yang merupakan hal yang sangat bagus!).
Jawaban:
Ya, Anda dapat melakukan ini dengan mengakses kunci utama saat volume didekripsi.
Cepat dan kotor untuk menambahkan frasa sandi baru:
device
danvolume_name
harus ditetapkan dengan tepat.volume_name
adalah nama volume yang didekripsi, yang Anda lihat di/dev/mapper
.Penjelasan:
Volume LUKS mengenkripsi data mereka dengan kunci utama. Setiap frasa sandi yang Anda tambahkan cukup menyimpan salinan kunci utama ini yang dienkripsi dengan frasa sandi itu. Jadi jika Anda memiliki kunci master, Anda hanya perlu menggunakannya di slot kunci baru.
Mari kita sobek perintah di atas.
Ini membuang banyak informasi tentang volume yang didekripsi secara aktif. Outputnya terlihat seperti ini:
Bidang # 5 adalah kunci utama.
Tidak akan menampilkan output ini sebagai data biner, tetapi yang dilakukan adalah mengambil kunci utama untuk volume, dan kemudian mengubahnya menjadi data biner mentah yang diperlukan nanti.
Ini memberitahu cryptsetup untuk menambahkan kunci baru ke volume. Biasanya tindakan ini membutuhkan kunci yang ada, namun kami menggunakannya
--master-key-file
untuk mengatakan bahwa kami ingin menggunakan kunci master.Ini
<(...)
adalah perintah substitusi shell & pengalihan. Ini pada dasarnya mengeksekusi semua yang ada di dalamnya, mengirimkan output ke pipa, dan kemudian mengganti<(...)
dengan path ke pipa itu.Jadi seluruh perintah hanya satu-liner untuk menyingkat beberapa operasi.
sumber
linear
, maka itu bukan volume LUKS terbuka (nilai yang salah untukvolume_name
dalam perintah yang diberikan). Volume LUKS terbuka akan adacrypt
di bidang ke-3. Dalamcryptsetup luksOpen /dev/foo bar
,volume_name
nilainya akanbar
./dev/mapper
namaluks-.....
. Itu volume yang harus Anda gunakan, bukan LVM, volume logis yang dipetakan.dmsetup table
telah berubah. Setidaknya bagi saya kunci master ditampilkan di kolom$6
.