Skip to main content

Enkripsi Disk Linux Menggunakan LUKS

·2 mins

LUKS (Linux Unified Key Setup) adalah standar enkripsi disk di Linux yang digunakan untuk mengenkripsi perangkat blok seperti hard disk atau partisi. Dengan LUKS, data tetap terlindungi ketika sistem dimatikan atau disk dilepas dari perangkat.

Untuk menggunakan LUKS, diperlukan utilitas cryptsetup.

Instalasi
#

Install paket cryptsetup terlebih dahulu:

sudo dnf install -y cryptsetup

Persiapan Disk
#

Pastikan tersedia partisi atau disk yang masih kosong dan belum diformat. Pada contoh ini digunakan disk /dev/sdb.

lsblk

Contoh output:

NAME             MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                8:0    0   10G  0 disk
├─sda1             8:1    0    2M  0 part
├─sda2             8:2    0  100M  0 part /boot/efi
├─sda3             8:3    0 1000M  0 part /boot
└─sda4             8:4    0  8.9G  0 part
  └─rocky-lvroot 253:0    0  8.8G  0 lvm  /
sdb                8:16   0   20G  0 disk

Membuat Enkripsi LUKS
#

Format disk target menggunakan LUKS:

sudo cryptsetup luksFormat /dev/sdb

Anda akan diminta memasukkan passphrase. Gunakan password yang kuat dan simpan dengan aman karena passphrase tersebut diperlukan untuk membuka disk.

Membuka Disk Terenkripsi
#

Buka disk terenkripsi dengan nama mapper sdb_enc:

sudo cryptsetup open /dev/sdb sdb_enc

Perintah tersebut akan membuat perangkat virtual /dev/mapper/sdb_enc.

Membuat Filesystem
#

Setelah disk berhasil dibuka, buat filesystem pada device mapper:

sudo mkfs.xfs /dev/mapper/sdb_enc

Mount Disk
#

Buat direktori mount point:

sudo mkdir -p /media/data

Mount disk terenkripsi:

sudo mount /dev/mapper/sdb_enc /media/data

Verifikasi hasil mount:

df -h

Auto Mount Saat Boot
#

Agar disk terenkripsi dapat terbuka dan ter-mount otomatis saat sistem boot, tambahkan konfigurasi pada /etc/crypttab dan /etc/fstab.

Mendapatkan UUID LUKS
#

Cari UUID dari partisi terenkripsi:

sudo blkid /dev/sdb

Contoh output:

/dev/sdb: UUID="6901beb8-a8a9-429a-9d27-15f44a975a86" TYPE="crypto_LUKS"

Membuat Keyfile
#

Buat keyfile untuk membuka LUKS secara otomatis:

sudo dd if=/dev/urandom of=/etc/crypto_keyfile.bin bs=512 count=8
sudo chmod 0400 /etc/crypto_keyfile.bin

Menambahkan Keyfile ke LUKS
#

Tambahkan keyfile ke salah satu slot LUKS:

sudo cryptsetup luksAddKey /dev/sdb /etc/crypto_keyfile.bin

Anda akan diminta memasukkan passphrase LUKS yang sudah ada untuk proses otorisasi.

Test Keyfile
#

Pastikan keyfile dapat digunakan untuk membuka disk:

sudo cryptsetup luksOpen \
  --test-passphrase \
  --key-file /etc/crypto_keyfile.bin \
  /dev/sdb

Konfigurasi /etc/crypttab
#

Tambahkan entry berikut ke file /etc/crypttab:

sdb_enc UUID=6901beb8-a8a9-429a-9d27-15f44a975a86 /etc/crypto_keyfile.bin luks

Format umum:

<nama_mapper> UUID=<uuid_luks> <keyfile> luks

Konfigurasi /etc/fstab
#

Tambahkan entry berikut ke file /etc/fstab:

/dev/mapper/sdb_enc /media/data xfs defaults,nofail 0 2

Verifikasi Konfigurasi
#

Sebelum reboot, lakukan pengujian:

sudo mount -a
sudo systemctl daemon-reload

Jika tidak ada error, reboot sistem untuk memastikan disk terenkripsi dapat terbuka dan ter-mount otomatis saat boot.

Related