Belajar RAID - Security & Encryption
Series/Belajar RAID/Episode 14
Episode 14 of 23

Belajar RAID - Security & Encryption

Episode ini membahas keamanan storage: enkripsi LUKS dan dm-crypt di atas atau bawah RAID, enkripsi native ZFS, manajemen kunci, serta peran checksum ZFS dan btrfs untuk mendeteksi silent corruption melalui scrub.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Redundansi menjaga array tetap berjalan, backup menjaga data tetap ada — tapi apa yang melindungi data dari tangan yang salah? Episode 14 ini menjawab dengan enkripsi dan integritas. Disk yang dicuri, server yang disita, atau bit yang rusak diam-diam — semuanya membutuhkan lapisan perlindungan tersendiri.

Di episode 11 kita sempat menyentuh luks-on-raid versus raid-on-luks. Episode 14 membahasnya lebih dalam, termasuk enkripsi native ZFS, manajemen kunci, dan checksum yang membuat ZFS dan btrfs berbeda dari filesystem lain. Mari mulai dari fondasi dm-crypt.

LUKS dan dm-crypt di atas RAID

Enkripsi Lapisan Tersembunyi

LUKS (Linux Unified Key Setup) adalah format standar untuk disk encryption di Linux, dibangun di atas dm-crypt dari kernel. Saat kalian memakai LUKS di atas array, seluruh /dev/md0 dienkripsi sebagai satu kesatuan:

Enkripsi array dengan LUKS
sudo cryptsetup luksFormat /dev/md0
sudo cryptsetup open /dev/md0 raid_crypt

Perintah cryptsetup luksFormat /dev/md0 membuat container LUKS (konfirmasi YES dan buat passphrase yang kuat), lalu cryptsetup open membukanya sebagai mapper bernama raid_crypt. Setelah terbuka, filesystem dibuat di /dev/mapper/raid_crypt.

Keuntungan Luks-on-raid

Pendekatan ini menawarkan kesederhanaan:

  • Satu passphrase untuk seluruh array.
  • Rebuild tanpa intervensi: saat disk gagal dan diganti, data mentah tetap terenkripsi — tidak perlu memasukkan passphrase berulang.
  • Kompatibel luas dengan mdadm dan kernel.

Kelemahan Luks-on-raid

Sisi lainnya: jika kalian ingin memindahkan satu disk keluar dari array, disk tersebut tidak berguna sendiri karena hanya berisi irisan data terenkripsi. Untuk fleksibilitas itu, kalian memakai raid-on-luks.

RAID di atas LUKS (Raid-on-luks)

Enkripsi per Disk

Di pendekatan ini, setiap disk dienkripsi sendiri-sendiri dulu, lalu digabung menjadi array:

Enkripsi per disk lalu buat array
sudo cryptsetup luksFormat /dev/sdb
sudo cryptsetup luksFormat /dev/sdc
sudo cryptsetup open /dev/sdb crypt0
sudo cryptsetup open /dev/sdc crypt1
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/mapper/crypt0 /dev/mapper/crypt1

Urutan perintah di atas membuat LUKS di masing-masing disk, membukanya sebagai mapper, lalu membangun array dari mapper tersebut. Hasilnya: setiap disk mandiri dan terenkripsi, dan data array tidak pernah tampil dalam bentuk terang di disk mana pun.

Tradeoff Raid-on-luks

Kelemahan utamanya: saat disk baru menggantikan disk gagal, kalian harus membuat LUKS baru di disk pengganti dengan konfigurasi yang sama. Dan saat boot, setiap mapper perlu dibuka — dengan banyak disk, ini bisa merepotkan tanpa keyfile.

Info

Untuk sebagian besar kasus, luks-on-raid lebih sederhana dan cukup aman. Raid-on-luks lebih cocok jika kalian menginginkan fleksibilitas per disk — misalnya memindahkan disk antar array tanpa membuka seluruh container.

Enkripsi Native ZFS

ZFS Encryption

ZFS memiliki enkripsi bawaan yang tidak membutuhkan dm-crypt:

Buat dataset dengan enkripsi
sudo zfs create -o encryption=aes-256-gcm -o keyformat=passphrase tank/secret

Perintah zfs create -o encryption=aes-256-gcm membuat dataset terenkripsi dengan AES-256-GCM. Keunggulannya: snapshot, replication, dan compression tetap bekerja normal di atas data terenkripsi — enkripsi terintegrasi dengan ekosistem ZFS.

Keuntungan Native ZFS

Enkripsi native ZFS memberi keuntungan besar:

  • Snapshot terenkripsi: snapshot bisa di-receive ke host lain dalam keadaan terenkripsi.
  • Per-dataset: sebagian pool terenkripsi, sebagian tidak, sesuai kebutuhan.
  • Rotasi kunci tanpa menulis ulang data.

Manajemen Key

Kunci ZFS bisa dari passphrase, keyfile, atau di-load otomatis saat boot dengan alat seperti zfs-load-key dan systemd:

Load key dataset terenkripsi
sudo zfs load-key tank/secret

Perintah zfs load-key tank/secret memuat kunci ke kernel. Untuk produksi, hindari passphrase yang harus dimasukkan manual saat reboot; gunakan keyfile yang disimpan di TPM atau server manajemen kunci terpisah.

Manajemen Kunci dan Keselamatan

Prinsip Manajemen Kunci

  • Simpan salinan kunci di lokasi terpisah dari data — jangan di disk yang sama dengan container LUKS.
  • Backup header LUKS: cryptsetup luksHeaderBackup menyimpan header yang berisi kunci enkripsi; header rusak berarti data tak terbaca.
  • Gunakan keyfile untuk boot otomatis, dan passphrase sebagai fallback.
Backup header LUKS
sudo cryptsetup luksHeaderBackup /dev/md0 --header-backup-file /backup/luks-header.bin

Perintah cryptsetup luksHeaderBackup menyimpan header LUKS ke file cadangan. Simpan file ini di media yang aman — tanpa header, seluruh data terenkripsi tidak bisa dibuka.

Checksum dan Silent Corruption

Checksum ZFS dan btrfs

Enkripsi melindungi dari pencurian; checksum melindungi dari korupsi. ZFS dan btrfs menyimpan checksum per blok, sehingga saat membaca data, filesystem bisa memverifikasi apakah blok masih sesuai. Ini mendeteksi silent corruption — bit flip yang tidak terdeteksi hardware.

Cek error checksum pool
sudo zpool status tank

Output zpool status tank menampilkan kolom errors: di setiap vdev. Angka selain nol menandakan blok yang rusak pernah ditemukan. Jika ZFS punya redundancy (mirror atau RAIDZ), ia memperbaiki otomatis; jika tidak, ia melaporkan korupsi — dan saat itulah backup di episode 12 berperan.

Scrubbing sebagai Verifikasi

Pemeriksaan menyeluruh checksum dilakukan lewat scrub — kita akan membahas cara menjadwalkan dan menjalankannya di episode 15. Untuk sekarang, ingat: checksum membuat ZFS dan btrfs tahu kapan data rusak; RAID biasa tidak bisa.

Penutup

Episode 14 melengkapi lapisan keamanan storage: enkripsi LUKS dan dm-crypt di atas atau bawah RAID, enkripsi native ZFS dengan manajemen kunci yang rapi, serta checksum untuk mendeteksi silent corruption. Data kalian kini aman dari pencurian dan korupsi diam-diam.

Inti yang harus dibawa pulang:

  • Luks-on-raid sederhana dan satu passphrase; raid-on-luks fleksibel per disk.
  • Enkripsi native ZFS terintegrasi dengan snapshot dan replication.
  • Backup header LUKS dan kunci di lokasi terpisah dari data.
  • ZFS dan btrfs menyimpan checksum untuk mendeteksi silent corruption.
  • zpool status menampilkan error checksum per vdev.
  • Kombinasi enkripsi dan checksum adalah dasar storage modern.

Di episode 15 selanjutnya kita akan membahas maintenance & scrub — menjalankan mdadm --check dan --repair, zpool scrub, scrub btrfs, menjadwalkannya secara rutin, serta perawatan fisik seperti UPS, penuaan disk, dan pembaruan firmware. Kalian akan belajar menjaga storage tetap sehat dalam jangka panjang.

Belajar RAID - Security & Encryption | Belajar RAID