Masuk akal jika Anda memiliki enkripsi perangkat blok apa pun yang diterapkan pada sistem GNU / Linux Anda, untuk mengenkripsi partisi swap Anda juga, karena setiap data yang didekripsi dapat ditulis dalam cleartext kapan saja untuk swap.
Melihat halaman manual debian untuk "crypttab" Saya melihat contoh membuat partisi swap yang dikunci secara acak pada saat boot-up, jadi kunci tersebut diatur secara acak ketika boot berlangsung dan hanya diketahui oleh sistem itu sendiri:
# Encrypted swap device
cswap /dev/sda6 /dev/urandom cipher=aes-cbc-essiv:sha256,hash=ripemd160,size=256,swap
Dalam contoh ini perangkat swap disebut oleh jalur dev konvensional yaitu /dev/sda6
Jalur perangkat absolut dapat berubah dan ditugaskan kembali saat boot-up jika, katakanlah usb drive dicolokkan, misalnya. Seorang pengguna akan sangat tidak senang jika /dev/sda6
terjadi partisi yang berbeda dari yang diharapkan dan kemudian ditimpa dengan data swap acak !!
Jadi solusinya adalah: gunakan UUID sebagai ganti jalur perangkat (karena UUID tidak boleh berubah), ganti /dev/sda6
dengan/dev/disk/by-uuid/<whatever the uuid of dev/sda6 is>
TAPI ... inilah masalahnya: Setiap kali cryptsetup membuat ulang partisi swap terenkripsi pada saat boot, ia menghasilkan UUID baru untuk itu! Doh!
Jadi kita perlu melestarikan UUID dari sistem file terenkripsi ini entah bagaimana. Saya pikir cryptsetup dapat melakukan ini dengan --offset
saklarnya, memungkinkan untuk pelestarian header LUKS dan dengan demikian UUID.
Saya telah menemukan URL ini: https://wiki.archlinux.org/index.php/System_Encryption_with_LUKS#Using_UUIDs_with_encrypted_swap_partitions
Adakah yang tahu bagaimana menerapkan solusi yang dijelaskan untuk Arch Linux pada OS Debian? Skrip init yang dirujuk dalam dokumen tampaknya tidak ada di OS Debian
Terima kasih!
EDIT
One dapat menggunakan ecryptfs untuk mencapai tujuan yang sama (ruang swap terenkripsi) menggunakan perintah:
ecryptfs-setup-swap
Tanpa masalah yang menimpa blokir enkripsi perangkat. Silahkan lihat pada permintaan AskUbuntu ini
ecryptfs-setup-swap
itu hanya penolong yang mengkonfigurasidm-crypt
/crypttab
untuk Anda. Seperti halnyaecryptfs
driver tingkat file, itu tidak menangani seluruh partisi, jadi itu membuat off untuk itudm-crypt
. Anda mungkin menemukan metode ini lebih ramah pengguna, tetapi Anda pada akhirnya tidak mencapai hal yang berbeda. Jika ada, kebiasaan metode ini (termasuk UUID) mungkin membuat saya lebih bingung daripada jika saya melakukannya sendiri dari prinsip pertama ... meskipun saya belajar lebih banyak.Jawaban:
Di / etc / crypttab, gunakan / dev / disk / by-id alih - alih / dev / disk / oleh-UUID untuk merujuk ke partisi swap Anda. Sebagai contoh, entri / etc / fstab Anda untuk swap mungkin
Maka entri terkait yang benar di / etc / crypttab akan menjadi sesuatu seperti
Perhatikan bahwa perangkat di atas disebut oleh / dev / disk / by-id yang dapat Anda temukan untuk drive Anda dengan mengetik berikut ini di CLI:
sumber
/dev/sdaN
kemudian memasukkan disk lain suatu hari dan menemukan bahwa urutan penamaan kernel Anda telah bergeser dan salah satu partisi non-swap Anda telah dibuang. UUID juga bagus, tetapi saya pikir masalah utamanya adalah ia disimpan dalam beberapa byte pertama dari partisi, jadi kami mendapatkan skenario ayam-dan-telur yang tidak larut yang dibahas di sini.Di / etc / crypttab saya, saya punya
Di sini / dev / mapper / cswap adalah volume logis yang dibuat oleh LVM, yang menangani penetapan nama volume logis dengan benar terlepas dari nama huruf drive. Ini juga memungkinkan saya untuk dengan mudah mengubah ukuran partisi swap saya.
sumber
Coba terapkan sisa solusi, abaikan file init. Sepertinya sedikit skrip init hanya ada untuk melindungi Anda. Baik Debian tidak melindungi Anda dengan cara itu, atau Debian akan memberi Anda pesan kesalahan ketika Anda mencoba untuk boot dengannya yang diharapkan akan membawa Anda ke tempat yang tepat.
Saya juga akan berhati-hati bahwa IIRC Debian dan ArchLinux memiliki format berbeda untuk / etc / crypttab (gila, saya tahu, tapi saya pindah dari Ubuntu ke Arch beberapa tahun yang lalu dan akhirnya memutuskan untuk menggunakan bash langsung daripada mencampuri crypttab).
sumber
jalankan ecryptfs-setup-swap atau secara manual:
Konfigurasi ini menggunakan kunci yang dibuat secara acak saat boot dan tidak akan mendukung Hibernasi ke hard disk! Anda Harus Menonaktifkan Hibernasi melalui DE Utilitas Manajemen Daya hormat Anda dan mengaturnya untuk Shutdown pada Kritis untuk menghindari Kehilangan Data!
Beralih ke akun admin / root
su root atau sudo untuk setiap perintah
Nonaktifkan Swap
swapoff -a
Temukan Partisi Swap yang ada
lsblk
contoh: sda3 8: 3 0 8G 0 bagian [SWAP]
Timpa Tukar Lama
dd if = / dev / zero bs = 1024000 dari = / dev / sda <#>
contoh: dd if = / dev / zero bs = 1024000 dari = / dev / sda3
Pengaturan FSTAB
vim / etc / fstab
Ganti perangkat SWAP lama dengan nama map crypttab: / dev / mapper / cswap
Tukar UUID = d03f3d8e-7888-48a5-b3cc-41de8dbbcfdc default swap swap 0 0
BARU
/ dev / mapper / cswap tidak ada swap pri = 1, default 0 0
Pengaturan Crypto
ls-lF / dev / disk / by-id
Contoh: ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 -> ../../sda3
vim / etc / crypttab
cswap / dev / disk / by-id / ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 / dev / swap secara acak, cipher = aes-cbc-essiv: sha256, ukuran = 256
Swap Terenkripsi Aktif
Nyalakan Ulang Komputer
Verifikasi Operasi Swap yang Diperkirakan
dmsetup -C info
Contoh: cswap 253 0 L - w 2 1 0 CRYPT-PLAIN-cswap
lsblk
Contoh ├─sda3 8: 3 0 8G 0 bagian
│ └─cswap 253: 0 0 8G 0 crypt [SWAP]
cat / proc / swaps
contoh: Nama File Ukuran Ukuran Prioritas yang Dipakai / dev / dm-0 partisi 8385532 0 -1
sumber