Dalam artikel ini kita akan mencoba mengamankan data pada penyimpanan external (flashdisk, SSD dan Hardisk Eksternal) dengan menggunakan aplikasi LUKS (Linux Unified Key Setup) pada Linux.
LUKS sendiri merupakan aplikasi sistem enkripsi terpadu yang untuk berbagai program enkripsi yang terdapat pada distro linux. Anda dapat menggunakan aplikasi ini melalui paket cryptsetup sebagai antarmuka CLI.
Pastikan distro linux Anda sudah terinstal aplikasi cryptsetup. Kebanyakan distro sudah menginstal aplikasi ini sebgai syarat melakukan FDE (Full Disk Encryption).
Selain itu siapkan flashdisk (atau harddisk eksternal) Anda. Pastikan anda sudah mengkosongkanya atau membackup data didalamnya karena proses ini akan menimpa (overwrite) data pada perangkat tersebut.
(Anda juga bisa melakukan langkah 1 dan 2 menggunakan Aplikasi GUI seperti Gparted dan Gnome Disk)
Gunakan lsblk untuk melihat daftar block device yang ada. Cari yang merujuk pada flashdisk Anda, seperti memiliki nama sda2, sdb atau MOUNTPOINT-nya (kolom 7) seperti /run/media/user/FDD.
Kali ini saya akan menggunakan lokasi imajiner /dev/sdX agar menghindari terjadinya kesalahan saat anda copas kode dari halaman ini.
sda 8:0 0 111.8G 0 disk
sda1 8:1 0 111.8G 0 part /
sdb 8:112 1 57.6G 0 disk
sdb1 8:113 1 57.6G 0 part /home
sdX 8:128 1 7.3G 0 disk
sdX1 8:129 1 7.3G 0 part /run/media/user/FDD
Dapat dilihat bahwa sdX merupakan flashdisk saya dilihat dari ukurannya (7,3G) tipenya (disk). Jika Anda masih tidak yakin, lepaskan drive Anda, lihat output dari lsblk, lalu pasang drive Anda dan lihat lsblklagi. Pastikan Anda mengidentifikasi drive yang benar karena proses selanjutnya akan menimpa/menghapus semua yang ada di dalamnya .
Ada beberapa cara untuk melakukan langkah ini, namun untuk artikel ini akan digunakan metode overwrite with zero (menimpa data dengan data kosong/null) untuk mendapatkan hasil terbaik. Anda bisa juga langsung melakukan format apabila menggunakan flashdisk baru.
Ketik perintah ini dan ganti /dev/sdX dengan nama drive anda:
$ sudo dd if=/dev/zero of=/dev/sdX count=4096
Gunakan perintah cryptsetup luksFormat untuk membuat volume LUKS baru untuk menampung partisi data Anda. Sistem akan memberikan peringatan overwrite pada drive.
$ sudo cryptsetup luksFormat /dev/sdX WARNING! ======== This will overwrite data on /dev/sdX irrevocably. Are you sure? (Type uppercase yes): YES Enter passphrase: Verify passphrase:
Ketik “YES” (besar semua) dan masukkan password yang akan digunakan untuk menguncinya, pastikan Anda mengingatnya/mencatanya agar tidak lupa/hilang karena anda tidak akan dapat mengaksesnya kembali apabila itu terjadi.
Setelah volume LUKS dibuat, anda perlu membukanya dengan kata sandi anda. Gunakan perintah cryptsetup open diikuti dengan lokasi drive anda (/dev/sdX) dan nama yang akan digunakan untuk drive anda yang terbuka/terdekripsi:
$ sudo cryptsetup open /dev/sdX dataVault
Disini saya contohkan dengan dataVault sebagai nama drive-nya. Namun, anda bisa menggunakan nama apa saja yang anda inginkan.
Volume LUKS dibuka di lokasi direktori /dev/mapper. Anda bisa mengeceknya dengan perintah ls pada direktori tersebut:
$ ls /dev/mapper/ control cr_home cr_root cr_swap dataVault
Anda dapat menutup volume LUKS kapan saja menggunakan cryptsetup close:
$ sudo cryptsetup close dataVault
Drive akan otomatis menghilang dari direktori /dev/mapper.
$ ls /dev/mapper/ control cr_home cr_root cr_swap
Sekarang Anda sudah dapat membuka/dekripsi drive LUKS Anda.
Meskipun drive LUKS anda sudah dibuat, namun anda belum bisa menulis data kedalamnya secara langsung. Ini karena LUKS hanya befungsi sebgai kontainer terenkripsi dan bukan filesystem. Oleh sebab itu anda perlu membuat filesistem terlebih dahulu didalamnya.
Buka drive anda apabila anda menutupnya sebelumnya:
$ sudo cryptsetup open /dev/sdX dataVault Enter passphrase for /dev/sda:
Sekarang setelah volume LUKS Anda didekripsi dan dibuka, anda dapat membuat sistem file di sana untuk menyimpan data di dalamnya. Dalam artikel ini, saya mencontohkan dengan ext4, tetapi Anda dapat menggunakan file sistem lain seperti vfat:
$ sudo mkfs.ext4 -L dataVault /dev/mapper/dataVault
Setelah melakukan format filesystem. Anda dapat menempelkan (mount) folume dengan perintah mount diikuti dengan direktori asal dan tujuannya. Dalam artikel ini dicontohkan dengan direktori tujuan /mnt/fdd :
$ sudo cryptsetup open /dev/sdX dataVault $ sudo mount /dev/mapper/dataVault /mnt/fdd
LUKS juga terintegrasi pada dalam desktop Linux populer seperti KDE dan GNOME. Misalnya, ketika saya memasang drive terenkripsi ke workstation saya yang menjalankan KDE atau laptop saya yang menjalankan GNOME, manajer file saya meminta password sebelum memasang drive.