Kali ini kita akan belajar cara meng-encypt disk/drive di linux menggunakan LUKS (Linux Unified Key Format). LUKS adalah format enkripsi yang umum digunakan di linux. Salah satu tool yang dapat digunakan untuk mengenkripsi disk/drive adalah cryptsetup
1.
Installation#
Karena merupakan tool standard, cryptsetup
biasanya sudah terpasang ketika melakukan instalasi linux. Tapi, jika ternyata belum terpasang, silakan install terlebih dahulu:
Distro | Command |
---|---|
Debian/Ubuntu | sudo apt install cryptsetup |
Arch Linux | sudo pacman -Sy cryptsetup |
Opensuse | sudo zypper install cryptsetup |
Fedora | sudo dnf install cryptsetup |
The Initial Setup#
Sebelum melakukan proses enkripsi, beberapa hal berikut perlu diperhatikan:
- Back up data-data penting terlebih dahulu!
- Catat passphrase yang digunakan agar tidak lupa!
Berikut adalah langkah-langkah enkripsi dengan cryptsetup
:
1. Mengengkripsi partisi#
Pertama, kita perlu mengenkripsi partisi yang terdapat di sebuah disk/drive terlebih dahulu. Artinya, sebuah disk/drive mungkin punya lebih dari satu partisi dan kita tidak harus mengenkripsi semua partisinya.
Berikut perintahnya:
sudo cryptsetup luksFormat /dev/sda3
Keterangan:
/dev/sda3
adalah partisi yang akan saya encrypt. Silakan disesuaikan.- Partisi yang ada dapat dilihat dengan perintah
lsblk
.
Setelah itu, akan muncul 2 prompt:
- Konfirmasi untuk mengenkripsi partisi, kita bisa ketik YES jika ingin melanjutkan.
- Passphrase atau password yang digunakan untuk meng-encrypt dan men-decrypt. Gunakan passphrase yang tidak mudah ditebak tapi tidak mudah dilupakan.
2. Membuka partisi 🔑#
Sekarang, kita akan membuka partisi sebelumnya yang sudah diformat dengan LUKS:
sudo cryptsetup open /dev/sda3 test
Keterangan:
test
adalah nama partisi yang terenkripsi tadi. Nama ini hanya sementara. Jadi, bisa diganti ketika kita membuka partisi ini lagi nanti.
Sekarang, bandingkan partisi yang belum dibuka dengan yang sudah dibuka dengan lsblk
. Sekarang, kita memiliki sebuah partisi baru yang ter-decrypt yang bernama “test” di /dev/sda3
. :
Hal penting lainnya yang perlu dicatat juga di tahap ini adalah bahwa partisi yang sudah didekripsi akan muncul di /dev/mapper
.
3. Memformat filesystem#
Berikutnya, kita perlu membuat format filesystem baru ke partisi ini.2 Kita hanya perlu melakukan ini di awal saja:
sudo mkfs.ext4 /dev/mapper/test
Keterangan:
mkfs.ext4
adalah nama filesystem standard untuk linux. Silakan disesuaikan dengan kebutuhan./dev/mapper/test
adalah nama partisi terdekripsi yang sudah saya buat sebelunnya.
Perhatikan bahwa formatting filesystem ini kita lakukan ke /dev/mapper/test
, bukan lagi ke /dev/sda3
!
4. Mounting partisi 🛄#
Langkah terakhir sebelum partisi ini dapat digunakan adalah me-mounting-nya ke direktori tertentu.
sudo mount /dev/mapper/test /mnt
Keterangan:
/dev/mapper/test
adalah nama partisi yang sudah dibuat sebelumnya./mnt
adalah lokasi yang saya inginkan sebagai tempat partisi/dev/mapper/test
dipasang.
Seperti terlihat pada tangkapan layar, partisi /dev/mapper/test
sudah terpasang ke /mnt
.
Sekarang, kita sudah bisa menggunakan (mengisinya dengan file & folder) partisi tersebut. Misalnya, saya akan mengisinya dengan sebuah direktori/folder bernama “secret-dir” dan sebuah file teks bernama “secret-file.txt” di dalamnya:
5. Unmount partisi 🛅#
Setelah selesai menggunakan partisi tersebut, kita bisa meng-unmount-nya:
sudo umount /mnt
Keterangan:
/mnt
adalah tempat dimana partisi tadi terpasang.
Seperti terlihat, partisi /dev/mapper/test
sudah terlepas dari /mnt
.
6. Menutup partisi 🔐#
Ketika sudah tidak digunakan lagi, pastikan kita menutup partisi tersebut agar ketika misalnya komputer atau disk/drive kita di-hack, data-data dalam partisi kita akan tetap aman karena kita sudah kembali mengenkripsinya kembali.
sudo cryptsetup close test
Dan partisi tadi /dev/sda3
sudah ter-encrypt kembali.
SELESAI!!!
The End#
Sampai di tahap ini, kita telah berhasil membuat enkripsi pada sebuah partisi di disk/drive. Jika kita ingin menggunakan partisi tersebut lagi, kita hanya perlu men-decrypt partisinya dan me-mounting-nya ke suatu direktori (langkah 2 & 4), dan jika sudah selesai, kita bisa kembali meng-unmount dan meng-encrypt-nya lagi (langkah 5 & 6).
Misalnya, sekarang saya ingin menghapus file “secret-file.txt” yang sudah dibuat sebelumnya dan menggantinya dengan file baru bernama “secrets.txt”. Berikut adalah langkah-langkahnya:
Additional Info: POC#
Kalau kita mencoba untuk me-mounting partisi /dev/sda3
secara manual seperti biasa, tentu saja tidak akan berhasil karena kita sudah mengubah filesystem partisi tersebut ke format LUKS dan tentu saja karena sudah di-encrypt:
Jadi, kalau kita ingin menggunakan partisi tersebut, kita harus melakukan 4 prosedur yang sudah dijelaskan sebelumnya.
Artikel ini di-inspirasi oleh video Youtube berikut: