Bagaimana cara membuat sistem file terenkripsi di dalam file?

16

Saya telah menemukan tutorial yang menarik ini di blog flossstuff .

Ini menjelaskan cara membuat file kosong, memformatnya sebagai ext4, dan memasangnya sebagai perangkat.

Saya ingin tahu apakah itu dapat dibuat sebagai sistem file ext4 terenkripsi.

Saya sudah mencoba menggunakan palimpsest (utilitas disk yang terdapat dalam menu Sistem) untuk memformat sistem file yang sudah dibuat tetapi tidak berfungsi karena mendeteksi sistem file yang digunakan.

Jika saya mencoba meng-unmount sistem file, itu tidak akan berfungsi karena itu tidak mendeteksi perangkat (karena itu bukan perangkat nyata seperti harddisk atau drive USB).

Jadi pertanyaan saya adalah, apakah ada opsi untuk membuat sistem file seperti yang dienkripsi dari awal? Saya telah menggunakan perintah ini:

Buat file kosong ukuran 200Mb:

dd if=/dev/zero of=/path/to/file bs=1M count=200

Jadikan ext4:

mkfs -t ext4 file

Pasang di folder di dalam rumah saya:

sudo mount -o loop file /path/to/mount_point

Apakah ada cara mkfsperintah dapat membuat sistem file ext4 terenkripsi meminta kata sandi dekripsi?

Saya berencana untuk menggunakan ini sebagai cara mengenkripsi file di dalam Dropbox.

animaletdesequia
sumber
Jika Anda ingin enkripsi yang tepat saat membuat cadangan file, Anda mungkin ingin mempertimbangkan SpiderOak sebagai gantinya. Lebih aman dan tidak terlalu ribut.
landroni

Jawaban:

8

Anda dapat menggunakannya cryptmountuntuk mengenkripsi sistem file, juga jika sistem file ada di file.

The cryptmounthalaman buku panduan memiliki penjelasan yang sangat sederhana dan rinci yang saya melaporkan (dimodifikasi) di sini, dan itu melakukan menyebutkan secara eksplisit filesystem berbasis file.

  • Langkah 1
    Tambahkan entri /etc/cryptmount/cmtab, sebagai berikut:

    mycrypt {
        dev=/media/data/mycrypt dir=/home/enzotib/mycrypt
        fstype=ext4 mountoptions=defaults cipher=twofish
        keyfile=/etc/cryptmount/mycrypt.key
        keyformat=builtin
    }
    

    di mana /media/data/mycryptfile dukungan dibuat oleh dddan /home/enzotib/mycryptmerupakan titik mount yang diinginkan.

  • Langkah 2
    Hasilkan kunci dekripsi rahasia

    sudo cryptmount --generate-key 32 mycrypt
    
  • Langkah 3
    Jalankan perintah berikut

    sudo cryptmount --prepare mycrypt
    

    Anda kemudian akan diminta kata sandi yang digunakan saat mengatur kunci

  • Langkah 4
    Buat sistem file

    sudo mkfs.ext4 /dev/mapper/mycrypt
    
  • Langkah 5
    Jalankan

    sudo cryptmount --release mycrypt
    
  • Langkah 6
    Sekarang pasang sistem file

    mkdir /home/enzotib/mycrypt
    cryptmount -m mycrypt
    

    lalu lepaskan ikatannya

    cryptmount -u mycrypt
    

Juga, jika Anda perlu crypt direktori, encfsmungkin layak untuk dipertimbangkan.

enzotib
sumber
Terima kasih atas jawaban Anda, saya telah membuat sistem file, dienkripsi, dan diunggah ke Dropbox. Nanti saya akan coba me-mount file itu di pc lain. Hanya satu hal, bisakah itu dilakukan tanpa sudo? Jika saya ingin menyimpan file dan sistem file terpasang di dalam rumah saya (bukan di media seperti usb atau hardrive) perintah akan sama tanpa sudo atau apakah cryptmount selalu membutuhkan hak akses root?
animaletdesequia
1
@darent: sepertinya perintah tersebut membutuhkan hak akses root hanya dalam pengaturan sistem file, tetapi pemasangan / pelepasan adalah tindakan pengguna, asalkan file gambar dan mountpoint dimiliki oleh pengguna. Untuk mengatur file gambar yang sama di komputer lain, saya kira Anda harus menyalin /etc/cryptmount/mycrypt.keydan melewati --generate-key, langkah.
enzotib
Saya mendapatkan kesalahan ini pada langkah terakhir: $ sudo cryptmount -m encriptat Masukkan kata sandi untuk target "encriptat": e2fsck 1.41.14 (22-Des-2010) fsck.ext4: Súperbloc no vàlid, provant els blocs de còpia de seguretat. .. fsck.ext4: angka ajaib Bad dalam super-blok en intentar obrir / dev / mapper / encriptat
animaletdesequia
1
@darent: sudahkah Anda membuat sistem file seperti yang ditunjukkan pada langkah 4? apakah Anda konsisten dalam penggantian nama "mycrypt" dengan "encriptat"?
enzotib
Maaf, kesalahannya adalah karena alih-alih (sudo mkfs.ext4 / dev / mapper / mycrypt) saya mengetik (sudo mkfs.ext4 mycript). Saya mengirim ke file secara langsung, bukan perangkat. Sekarang bekerja dengan sempurna. Dan maaf tentang format pesan ini, tidak tahu mengapa saya tidak dapat memisahkan baris (jika saya menekan enter, publikasikan komentar daripada membuat baris baru, mungkin firefox glitch ...) Cheers! EDIT: sekarang saya membaca jawaban Anda, nama encriptat itu tidak masalah (hanya menyesuaikan posting Anda dan meletakkan file dengan nama katalan, tetapi semuanya konsisten). Everithing berfungsi dengan baik sekarang, terima kasih lagi :)
animaletdesequia
7

Ikuti langkah selanjutnya untuk membuat file terenkripsi dengan sistem file di dalamnya:

1. Cara tercepat untuk membuat file dengan ukuran yang diberikan adalah:

fallocate -l 128M /path/to/file

2. Buat partisi LUKS (Linux Unified Key Setup) di dalam file menggunakan alat dm-crypt :

cryptsetup -y luksFormat /path/to/file

Anda dapat memeriksa apakah file itu wadah terenkripsi:

/path/to/file: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 7e2af5a1-3fab-43ea-a073-3b9cc6073f00

3. Buka wadah terenkripsi:

cryptsetup luksOpen /path/to/file data

dataadalah nama volume perangkat mapper. Anda dapat memilih nama lain.

Ini membuka perangkat LUKS, dan memetakannya ke nama yang kami berikan, dalam kasus kami membuat file di /dev/mapper/data.

4. Buat ext4filesystem di perangkat ini:

mkfs.ext4 /dev/mapper/data

5. Kemudian buat mount point:

mkdir /path/to/mount

6. Dan pasang perangkat di sana:

mount /dev/mapper/data /path/to/mount

7. Untuk melepas sistem file dan menutup perangkat LUKS:

umount /path/to/mount
cryptsetup luksClose data

Sekarang Anda memiliki wadah LUKS terenkripsi dengan sistem file ext4 di dalamnya. Ketika Anda ingin menggunakannya cukup ulangi langkah 3 dan 6. Ketika Anda selesai panggil langkah 7.

Artikel ini sangat membantu saya.

Juga suatu hari wadah Anda akan kehabisan ruang. Misalkan ukuran file kontainer terenkripsi adalah 128 MB dan kami ingin meningkatkan ukurannya menjadi 512 MB. Untuk meningkatkan kapasitasnya ikuti langkah-langkah ini:

1. Lepas dan tutup perangkat LUKS (lihat langkah 7 dalam daftar di atas).

2. Meningkatkan ukuran file kontainer:

 dd if=/dev/zero of=/path/to/file bs=384M count=1 oflag=append conv=notrunc

3. Buka perangkat LUKS.

cryptsetup luksOpen /path/to/file data

4. Ubah ukuran perangkat LUKS agar sesuai dengan ukuran file kontainer. Dari halaman manual:

Jika --size (dalam sektor) tidak ditentukan, ukuran perangkat blok yang mendasarinya digunakan.

Jadi Anda bisa:

cryptsetup resize data

5. Kemudian ubah ukuran sistem file ext4:

e2fsck -f /dev/mapper/data
resize2fs /dev/mapper/data

6. Sekarang Anda dapat memasang kembali filesystem:

mount /dev/mapper/data /path/to/mount
mixel
sumber
1
Saya pikir jawaban ini adalah jawaban terbaik dan terbaru. Itu harus dipilih sebagai jawaban yang benar!
yurtesen