Bagaimana cara membuat partisi terenkripsi ext4 di Ubuntu 15.04 dengan kernel 4.1 baru?

11

Bisakah saya membuat ext4partisi terenkripsi baru dengan kernel 4.1 di Ubuntu 15.04?

Oto_Shan
sumber
2
kemungkinan duplikat dari Cara membuat partisi terenkripsi?
Ron
Ini bukan duplikat karena tidak ada jawaban yang ada tentang fitur tertentu yang ditambahkan di kernel 4.1, referensi: phoronix.com/…
LiveWireBT

Jawaban:

9

Pertama penafian: Saya belum melakukan ini dengan Ubuntu, tetapi pada mesin dengan Debian "Stretch" diinstal menggunakan kernel Linux 4.2.3 kustom yang saya aktifkan EXT4_FS_ENCRYPTION.

Instruksi yang diberikan oleh kmeaw tidak bekerja untuk saya persis seperti yang diposting. Beberapa hal ditinggalkan (parameter dan langkah-langkah baris perintah).

  • Perbarui e2fsprogsseperti yang ditunjukkan di atas
  • Hasilkan garam acak Anda. Saya menggunakan yang berikut ini untuk menyimpannya di "tempat yang aman":

    head -c 16 /dev/urandom | xxd -p >~/tmp-salt.txt
    echo 0x`cat ~/tmp-salt.txt` >~/.cryptoSalt
    
  • Untuk menggunakan enkripsi ext4 pada sistem file, bendera "mengenkripsi" harus diatur di blok-super. Ini bukan default ketika sistem file ext4 dibuat. Menggunakan utilitas "tune2fs" dari e2fsprogs 1.43 atau lebih baru, setel opsi "enkripsi":

    sudo tune2fs -O encrypt /dev/sda4
    
  • Pasang atau pasang kembali sistem file sehingga kernel tahu tentang perubahan (mungkin itu otomatis, tetapi saya hanya melakukan ini pada partisi yang terpisah, jadi saya tidak yakin.)

  • Buat direktori pada sistem file yang dipasang dengan enkripsi diaktifkan:

    sudo mkdir -p /secret/home/$USER
    sudo chown $USER:$USER /secret/home/$USER
    
  • Buat kunci di keyring dan gunakan untuk mengatur kebijakan agar direktori dienkripsi ( sudoperintah tidak diperlukan di sini):

    $ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
    Enter passphrase (echo disabled):
    Added key with descriptor [0132fed69f946c86]
    $ /usr/bin/e4crypt set_policy 0132fed69f946c86 /secret/home/$USER
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    
  • Setelah setiap reboot, add_keyperintah tersebut dapat digunakan mengatur kunci untuk dekripsi direktori dan turunannya:

    $ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
    Enter passphrase (echo disabled):
    Added key with descriptor [0132fed69f946c86]
    

    Masukkan kata sandi yang sama dengan yang digunakan pada langkah sebelumnya, dan Anda tidak harus mengingat string hex descriptor.

  • Anda juga bisa menggunakan add_keysecara langsung. Ini akan menggunakan garam sistem file tertentu (Jadi semua folder di bawah partisi itu akan memiliki garam yang sama)

    $ /usr/sbin/e4crypt add_key /secret/home/$USER
    Added key with descriptor [0132fed69f946c86]
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    
Daniel Glasser
sumber
Artikel di Arch wiki menyarankan untuk membaca posting blog berikut, yang penulisnya menulis sebuah program untuk menyederhanakan beberapa langkah: blog.quarkslab.com/... Pada saat penulisan 16.04 masih dalam pengembangan dan memiliki dua konfigurasi kernel yang sesuai opsi yang ditetapkan, meskipun e2fsprogs masih di versi 1.42.
LiveWireBT
Yah ... Saya mencoba instruksi itu dan folder saya diblokir ... pada cp .. /secret/home/$USER/.saya dapatkan: «cp: tidak dapat membuat file biasa '/secret/home/alexis/test-top-secret-image.svg': Kunci yang diperlukan tidak tersedia » . Saya hanya mengikuti instruksi Anda, jadi saya kira ada sesuatu yang berubah.
Alexis Wilke
Contoh kedua dari " /usr/bin/e4crypt" tidak memiliki "s" di tempat "/ [s]".
Alexis Wilke
3

Linux 4.1 hadir dengan fitur Ext4 baru untuk mengenkripsi direktori sistem file. Kunci enkripsi disimpan dalam keyring. Untuk memulai, pastikan Anda telah mengaktifkan CONFIG_KEYSdan CONFIG_EXT4_FS_ENCRYPTIONopsi-opsi kernel dan Anda memiliki kernel 4.1 atau lebih tinggi.

Pertama-tama, Anda perlu memperbarui e2fsprogs ke setidaknya versi 1.43, yang masih WIP pada saat penulisan sehingga kami perlu mengambilnya dari repositori git :

$ git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git

Sumber e4crypt telah menonaktifkan bagian yang relevan dalam kode sumbernya, mengaktifkannya dengan mengedit misc / e4crypt.c dan menghapus dua baris ini di dekat baris 714:

    printf("arg %s\n", argv[optind]);
    exit(0);

Sekarang buat dan instal e2fsprogs baru:

$ sudo apt-get install devscripts build-essential gettext texinfo pkg-config debhelper m4
$ debuild
$ sudo dpkg -i e2fsprogs_1.43-WIP_amd64.deb

Periksa versi Anda sekarang, itu harus 1,43-WIP:

# e2fsck -V
e2fsck 1.43-WIP (18-May-2015)
        Using EXT2FS Library version 1.43-WIP, 18-May-2015

Untuk bekerja dengan kunci, kita perlu menginstal keyutilspaket:

$ sudo apt-get install keyutils

Mari kita buat direktori yang akan kita enkripsi. Kebijakan enkripsi hanya dapat ditetapkan pada direktori kosong:

$ sudo mkdir -p /encrypted/dir

Pertama-tama hasilkan nilai garam acak dan simpan di tempat yang aman:

$ head -c 16 /dev/random | xxd -p
877282f53bd0adbbef92142fc4cac459

Sekarang hasilkan dan tambahkan kunci baru ke dalam keyring Anda: langkah ini harus diulangi setiap kali Anda membuka gantungan kunci (reboot)

$ sudo e4crypt -S 0x877282f53bd0adbbef92142fc4cac459
Enter passphrase (echo disabled): 
Added key with descriptor [f88747555a6115f5]

Sekarang Anda tahu deskriptor untuk kunci Anda. Pastikan Anda telah menambahkan kunci ke gantungan kunci Anda:

$ keyctl show
Session Keyring
1021618178 --alswrv   1000  1000  keyring: _ses
 176349519 --alsw-v   1000  1000   \_ logon: ext4:f88747555a6115f5

Hampir selesai. Sekarang tetapkan kebijakan enkripsi untuk direktori:

$ e4crypt set_policy f88747555a6115f5 /encrypted/dir

Itu saja. Jika Anda mencoba mengakses disk tanpa menambahkan kunci ke gantungan kunci, nama file dan isinya akan dianggap sebagai omong kosong terenkripsi. Berhati-hatilah menjalankan versi lama e2fsck pada sistem file Anda - itu akan memperlakukan nama file terenkripsi sebagai tidak valid.

kmeaw
sumber
Jawaban ini memiliki masalah pemformatan yang parah. Saya mencoba untuk meningkatkan sejauh yang saya bisa, tetapi tidak masuk akal bagi saya mengapa orang jelas akan mencoba menggunakan format markdown, menangani perintah kompleks dan juga melakukan edit serupa di Arch wiki pada saat yang sama, tetapi kemudian lihat di tempat sampah yang ditampilkan dalam pratinjau dan memutuskan untuk membiarkannya apa adanya. Tidak ada penjelasan yang memuaskan atau referensi lebih lanjut mengapa garis harus dihapus. Selanjutnya disarankan untuk menggunakan debuild dengan cara yang tidak dimaksudkan (dengan paket non-debianized, ada paket eksperimental di Debian) dan tidak berfungsi. -1
LiveWireBT