GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengenkripsi Partisi di Linux

Di salah satu artikel kami sebelumnya, kami mempelajari bagaimana Anda dapat mengenkripsi seluruh sistem file root di Linux dengan mudah.

Namun, dalam beberapa kasus, Anda mungkin ingin mengenkripsi satu partisi sederhana yang mungkin menyimpan beberapa file penting Anda.

Seperti yang sudah Anda ketahui, mengenkripsi disk Anda sangat penting . Jika laptop Anda dicuri, Anda mungkin akan kehilangan semua informasi pribadi Anda.

Namun, ada beberapa cara untuk mengatasi masalah ini :dengan mengenkripsi partisi disk Anda .

Dalam tutorial ini, Anda akan mempelajari tentang semua langkah yang diperlukan untuk mengenkripsi seluruh partisi disk , amankan dengan frasa sandi atau dengan file kunci.

Sebagai contoh, artikel akan diilustrasikan pada sistem operasi RHEL 8, tetapi seharusnya tidak ada perbedaan jika Anda menggunakan yang lain.

Prasyarat

Untuk menjalankan sebagian besar perintah yang disediakan dalam artikel ini, Anda harus memiliki hak administrator.

Untuk memeriksa apakah ini masalahnya atau tidak, Anda dapat menjalankan “grup ” dan verifikasi bahwa Anda termasuk dalam “sudo ” grup untuk distribusi berbasis Debian atau “roda ” untuk yang berbasis RedHat.

$ groups

Jika Anda tidak memiliki hak tersebut, Anda dapat membaca salah satu artikel kami tentang mendapatkan hak sudo untuk distribusi Ubuntu atau CentOS.

Enkripsi Partisi menggunakan cryptsetup

Seperti yang ditentukan dalam artikel sebelumnya, mengenkripsi partisi melibatkan memformat seluruh disk .

Akibatnya, jika Anda berencana untuk mengenkripsi disk dengan data yang ada, Anda sekarang harus menghapus data Anda dalam proses. Untuk menghindari kehilangan apa pun, Anda harus membuat cadangan data Anda di disk eksternal atau di cloud online.

Buat Partisi Baru pada disk

Untuk mengenkripsi partisi, pertama-tama kita akan membuat yang baru menggunakan utilitas “fdisk” . Sebagai contoh, kita akan membuat partisi baru bernama “sdb1” pada disk “sdb”.

$ sudo fdisk /dev/sdb

Di utilitas fdisk, Anda dapat membuat partisi baru menggunakan kata kunci “n” dan tentukan bahwa Anda menginginkan partisi dengan ukuran 5 GB misalnya.

Jika Anda tidak yakin tentang cara menggunakan “fdisk” atau cara membuat partisi , kami memiliki artikel khusus tentang subjek ini.

Di akhir proses, Anda harus menggunakan kata kunci “w” untuk menulis perubahan ke disk.

Luar biasa, sekarang setelah partisi Anda dibuat, kami akan memformatnya sebagai partisi LUKS .

Memformat Partisi Disk sebagai LUKS

Untuk mengenkripsi partisi, kita akan menggunakan perintah yang terkait dengan proyek LUKS .

Proyek LUKS, kependekan dari Linux Unified Key System , adalah spesifikasi yang digunakan untuk mengenkripsi semua perangkat penyimpanan menggunakan protokol kriptografi khusus. Seperti yang dijelaskan, LUKS hanyalah sebuah spesifikasi, Anda memerlukan program yang mengimplementasikannya.

Dalam hal ini, kita akan menggunakan utilitas “cryptsetup” . Seperti yang dijelaskan di bagian manual, cryptsetup bertujuan untuk membuat ruang terenkripsi untuk dm-crypt.

Pertama-tama, pastikan Anda memiliki “cryptsetup ” menggunakan perintah “yang”.

$ which cryptsetup

Jika cryptsetup tidak dapat ditemukan di server Anda, pastikan untuk menginstalnya menggunakan salah satu perintah berikut

$ sudo apt-get install cryptsetup                     (for Debian distributions)

$ sudo yum install cryptsetup                         (for RHEL/CentOS distributions)

Untuk membuat partisi LUKS, Anda perlu menjalankan “cryptsetup” diikuti dengan “luksFormat” dan nama partisi yang akan diformat.

$ sudo cryptsetup luksFormat /dev/sdb1

Pertama-tama, Anda diingatkan bahwa mengenkripsi disk Anda sebenarnya akan memformatnya dalam proses.

Setelah mengetik “YA ” dengan huruf kapital, Anda harus memilih frasa sandi untuk mengamankan perangkat Anda.

LUKS mendukung dua cara untuk melindungi media Anda :menggunakan frasa sandi (yang saat ini kami gunakan) dan menggunakan kunci . Untuk saat ini, Anda dapat memilih kata sandi yang aman dan partisi Anda akan diformat secara otomatis.

Sekarang setelah partisi Anda dibuat, Anda dapat memeriksanya menggunakan "lsblk ” perintah :partisi harus ditandai sebagai “crypto_luks “.

$ lsblk -f

Luar biasa! Sekarang setelah volume diformat, kita dapat membukanya dan membuat sistem file ext4 sederhana di dalamnya.

Buat Sistem File ext4 di Partisi

Secara default, volume terenkripsi Anda ditutup yang berarti Anda tidak dapat mengakses data yang tersedia di dalamnya.

Untuk "membuka", yang berarti "membuka kunci" volume Anda, Anda harus menggunakan perintah "cryptsetup" lagi diikuti dengan "luksOpen" dan nama volume.

Di akhir perintah, berikan nama untuk volume terbuka Anda, dalam hal ini kita akan memilih “cryptpart “.

$ sudo cryptsetup luksOpen /dev/sdb1 cryptpart

Seperti yang bisa Anda tebak, Anda akan diminta untuk memberikan kata sandi yang Anda pilih di bagian sebelumnya.

Menjalankan perintah "lsblk" lagi, Anda mungkin memperhatikan bahwa satu volume dibuat di bawah volume terenkripsi "sdb1" bernama "cryptpart “. “Pemeta perangkat” , yang merupakan salah satu kerangka kerja Kernel Linux, melakukannya untuk Anda.

Sekarang volume Anda tidak terkunci, sekarang saatnya Anda membuat sistem file ext4 baru di dalamnya .

Untuk membuat sistem file baru di partisi Anda, gunakan perintah "mkfs" diikuti dengan format sistem file, dalam hal ini "ext4".

$ sudo mkfs.ext4 /dev/mapper/cryptpart

Luar biasa, sistem file telah dibuat.

Anda sekarang dapat memasangnya dan menambahkan file baru ke dalamnya. File yang dibuat pada volume ini secara otomatis akan dienkripsi .

$ mkdir -p /home/devconnected/files 

$ sudo mount /dev/mapper/cryptpart /home/devconnected/files

$ sudo chown devconnected:devconnected /home/devconnected/files

Luar biasa, sekarang data Anda aman di partisi terenkripsi, mari kita lihat bagaimana Anda bisa memasang partisi enkripsi saat boot.

Ubah file crypttab dan fstab

Banyak administrator sistem mengetahui keberadaan file fstab yang digunakan oleh proses init Anda untuk memasang drive.

Namun, ketika berhadapan dengan partisi terenkripsi, ada file lain yang ikut bermain : /etc/crypttab .

Sama halnya dengan file fstab, crypttab dibaca oleh proses init Anda saat booting. Mengingat informasi yang diberikan di dalamnya, ia akan meminta Anda untuk membuka kunci partisi atau akan membaca file kunci untuk melakukannya secara otomatis.

Catatan :/etc/crypttab mungkin tidak ada di sistem Anda. Jika tidak, Anda mungkin harus membuatnya.

Kolom crypttab dijelaskan di atas :

  • Nama perangkat :Anda dapat memberikan perangkat yang didekripsi nama apa pun yang Anda inginkan. Selanjutnya, itu akan dibuat secara otomatis oleh device mapper di bawah jalur “/ dev/mapper”. Di bagian sebelumnya, kami memilih “cryptpart ” untuk kolom ini;
  • UUID perangkat terenkripsi :untuk menemukan partisi mana yang berisi data terenkripsi, sistem Anda harus memiliki UUID yang berarti pengenal uniknya;
  • Metode autentikasi :seperti yang dijelaskan, Anda dapat memilih “tidak ada ” untuk frasa sandi atau Anda dapat menentukan jalur ke kunci. Metode kunci akan dijelaskan di bab terakhir artikel ini;
  • Opsi pemasangan :menggunakan kolom ini, Anda dapat menentukan jumlah percobaan untuk frasa sandi, sandi, metode enkripsi, dan banyak parameter lainnya. Daftar lengkap opsi tersedia di halaman manual “crypttab”.
$ sudo nano /etc/crypttab

# Content of the crypttab file
cryptpart    UUID=<partition_uuid>    none    luks

Jika Anda ragu tentang UUID partisi terenkripsi Anda, Anda dapat menggunakan "blkid ” perintah dengan pipa “grep” sederhana.

$ sudo blkid | grep -i luks

Sekarang “/etc/crypttab ” diubah, Anda harus mengubah file “fstab ” untuk menentukan mountpoint.

$ sudo blkid | grep -i ext4

$ sudo nano /etc/fstab

Di kolom fstab, Anda harus menentukan :

  • UUID perangkat yang didekripsi :untuk menemukannya, Anda dapat menggunakan perintah "blkid" tetapi pastikan Anda membuka perangkat sebelum melanjutkan. Jika perangkat ditutup, Anda tidak akan dapat menemukan UUID Anda;
  • Titik pemasangan :di mana perangkat yang didekripsi akan dipasang. Jika jalur tidak ada, itu akan dibuat secara otomatis;
  • Jenis sistem file :dalam hal ini, kami memilih untuk menggunakan "ext4" tetapi mungkin berbeda di sistem Anda;
  • Opsi buang dan teruskan :kami tidak ingin sistem file diperiksa saat boot, jadi kami dapat menyimpannya ke nilai default.

Setelah selesai, simpan file Anda dan Anda akan siap melakukannya.

Mengingat langkah-langkah yang baru saja Anda lakukan, perangkat Anda sudah siap dan akan dipasang secara otomatis saat boot.

Verifikasi pemasangan perangkat terenkripsi saat boot

Untuk memverifikasi bahwa perangkat terpasang dengan benar, kami dapat memulai ulang server kami dan menunggu modul initramfs membuka perangkat terenkripsi.

$ sudo reboot

Ini adalah layar yang harus Anda lihat, setidaknya di RHEL8, saat memulai server Anda. Jika Anda memberikan frasa sandi, mesin Anda seharusnya dapat membuka kuncinya dan memasangnya untuk Anda.

Setelah Anda masuk ke server, Anda dapat memeriksa apakah partisi terenkripsi telah dipasang dengan benar menggunakan “lsblk” sekali lagi.

$ lsblk -f | grep sdb1 -A 2 

Selamat, Anda berhasil mengenkripsi partisi di Linux menggunakan LUKS!

Buat Kunci Untuk Partisi Terenkripsi

Seperti dijelaskan sebelumnya, LUKS menangani dua metode otentikasi, yaitu passphrase dan file kunci.

Di bagian sebelumnya, kami menggunakan frasa sandi, tetapi akan sangat berguna jika Anda juga memiliki kunci otentikasi.

Pertama-tama, buat file kunci dan simpan di tempat yang aman (dalam direktori yang tidak dapat dinavigasi oleh pengguna biasa, seperti “/boot ” atau “/root “).

$ echo "supersecretpass" > volume-key

$ sudo mv volume-key /boot/

Seperti yang Anda lihat, secara default, file dibuat menggunakan kredensial pengguna dan memiliki terlalu banyak izin.

Dengan menggunakan perintah “chown” dan “chmod”, kita dapat menetapkan “root” sebagai pemilik file dan mengubah izinnya menjadi hanya-baca.

$ sudo chown root:root /boot/volume-key

$ sudo chmod 0400 /boot/volume-key

Sekarang setelah file disetel ke read-only, kita dapat menambahkannya sebagai kunci di salah satu slot volume LUKS kita.

Tambahkan Kunci ke Volume LUKS

Untuk menambahkan kunci ke volume LUKS, Anda perlu menjalankan perintah “cryptsetup” diikuti dengan “luksAddKey”, nama volume terenkripsi, dan jalur ke kunci.

$ sudo cryptsetup luksAddKey <encrypted_device> <path_to_key>

$ sudo cryptsetup luksAddKey /dev/sdb1 /boot/volume-key

Untuk melakukan operasi ini, Anda akan dimintai kata sandi Anda. Jika tersedia, kunci akan otomatis ditambahkan ke slot kunci Anda.

Untuk memverifikasi bahwa kunci telah ditambahkan dengan benar, Anda dapat memeriksa slot kunci menggunakan “luksDump ” perintah.

$ sudo cryptsetup luksDump /dev/sdb1

Sekarang setelah kunci ditambahkan, Anda hanya perlu memodifikasi “/etc/crypttab” agar sistem Anda dapat menemukannya saat boot.

$ sudo nano /etc/crypttab

# Content of the crypttab file
cryptpart    UUID=<partition_uuid>    /boot/volume-key    luks

Saat mem-boot ulang, partisi terenkripsi Anda akan dipasang secara otomatis!

Kesimpulan

Dalam artikel ini, Anda mempelajari bagaimana Anda dapat dengan mudah mengenkripsi partisi Anda di Linux menggunakan proyek LUKS dan implementasinya bernama cryptsetup.

Anda dapat melihat bahwa Anda dapat menggunakan “file kunci ” agar partisi Anda dapat dibuka kuncinya secara otomatis.

Jika Anda tertarik dengan enkripsi sistem lengkap, baru-baru ini kami menulis artikel tentang masalah ini.

Juga, jika Anda ingin membaca lebih lanjut tentang Administrasi Sistem Linux , pastikan untuk melihat bagian khusus kami di situs web.


Linux
  1. Cara mempartisi disk di Linux

  2. Cara Menambahkan Disk Baru ke Server Linux yang Ada

  3. Cara mengenkripsi partisi dengan DM-Crypt LUKS di Linux

  1. Cara mengenkripsi satu sistem file Linux

  2. Cara Mengelola Partisi Swap di Linux

  3. Bagaimana cara memasang image disk multi-partisi di Linux?

  1. Cara menggunakan fdisk untuk mempartisi disk di Linux

  2. Cara Mengkloning partisi disk Linux melalui jaringan menggunakan dd

  3. Bagaimana cara memindahkan partisi di GNU/Linux?