Belajar NAS - Encryption & Secure Transport
Series/Belajar NAS/Episode 14
Episode 14 of 23

Belajar NAS - Encryption & Secure Transport

Episode ini melindungi data saat diam dan saat transit: enkripsi disk ZFS native dengan aes-256-gcm, GELI dan LUKS, serta manajemen key. Kalian juga belajar TLS untuk management UI, SFTP dan FTPS, serta VPN untuk akses remote memakai Tailscale dan WireGuard.

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

Pendahuluan

Firewall dan access control melindungi NAS dari siapa yang boleh masuk. Episode 14 ini melindungi data itu sendiri: enkripsi saat diam (at-rest) dan enkripsi saat transit (in-transit). Jika data diamankan, pencurian disk atau penyitaan media tidak akan membocorkan isinya.

Enkripsi saat transit memastikan data yang mengalir antara NAS dan client tidak bisa dibaca pihak ketiga. Kombinasi keduanya membuat NAS kalian aman di dua titik paling rawan: media penyimpanan dan jaringan.

Di akhir episode ini kalian akan bisa mengaktifkan enkripsi ZFS native, memahami GELI dan LUKS, mengelola key dengan benar, mengamankan management UI dengan TLS, menggunakan SFTP dan FTPS, serta membangun VPN untuk akses remote.

Enkripsi Disk ZFS Native

Mengaktifkan Encryption

ZFS memiliki enkripsi native yang dikelola per dataset dengan algoritma modern aes-256-gcm. Enkripsi bisa diaktifkan saat dataset dibuat; mengaktifkan setelahnya memerlukan proses ulang data.

Buat dataset terenkripsi
zfs create -o encryption=aes-256-gcm -o keyformat=passphrase \
  tank/rahasia

Perintah zfs create -o encryption=aes-256-gcm membuat dataset dengan enkripsi AES-256-GCM. Opsi keyformat=passphrase menentukan key dibuka dengan passphrase.

Keunggulan Native Encryption

Enkripsi native ZFS berjalan di level filesystem, sehingga fitur ZFS lain seperti compression, snapshot, dan replication tetap bekerja. Snapshot dari dataset terenkripsi juga terenkripsi, dan kunci tidak pernah ikut tersalin ke replika.

Cek status enkripsi dataset
zfs get encryption tank/rahasia

Output zfs get encryption menampilkan algoritma yang dipakai. Sebelum menulis data penting, selalu pastikan dataset benar-benar terenkripsi dengan cara ini.

GELI dan LUKS

Enkripsi di Lapisan Disk

Jika filesystem tidak mendukung enkripsi (misalnya ext4), enkripsi dilakukan di lapisan block dengan LUKS di Linux (cryptsetup) atau GELI di FreeBSD. Pendekatan ini menyandikan seluruh block device, termasuk filesystem di atasnya.

Buat container LUKS
cryptsetup luksFormat /dev/sdb
cryptsetup open /dev/sdb data-enc

Perintah cryptsetup luksFormat membuat container terenkripsi di /dev/sdb, lalu cryptsetup open membukanya sebagai device data-enc yang bisa diformat dan di-mount.

Kapan Memakai LUKS/GELI vs ZFS Native

Pilih ZFS native jika memakai ZFS, karena integrasi fitur lebih rapi. Pilih LUKS/GELI jika filesystem lain yang dipakai, atau jika ingin enkripsi di level block yang lebih rendah. Keduanya sama-sama kuat; yang penting adalah konsistensi dan manajemen key yang baik.

Manajemen Key

Menyimpan Key dengan Benar

Kunci enkripsi adalah satu-satunya jalan membuka data. Kehilangan kunci sama dengan kehilangan data. Jangan simpan key di lokasi yang sama dengan data terenkripsi, dan selalu miliki salinan cadangan key di tempat aman terpisah.

Muat key dataset
zfs load-key tank/rahasia

Perintah zfs load-key memuat key agar dataset terenkripsi bisa diakses. Untuk dataset passphrase, prompt akan meminta input; untuk key berbasis file, atur keylocation terlebih dahulu sesuai dokumentasi ZFS lalu muat key dengan cara yang sama.

Praktik Baik Key

  • Gunakan passphrase kuat atau file key acak panjang.
  • Simpan salinan key di password manager dan lokasi offsite.
  • Jangan pernah mengirim key lewat media yang sama dengan data.
  • Dokumentasikan siapa yang berhak membuka dataset.

Warning

Enkripsi melindungi dari pencurian media, bukan dari akses runtime. Setelah dataset dibuka dan di-mount, siapa pun yang punya akses ke sistem bisa membaca data. Enkripsi bukan pengganti access control.

TLS untuk Management UI

Mengamankan HTTPS

Management UI harus selalu diakses melalui HTTPS. TrueNAS SCALE memakai sertifikat bawaan dan bisa dihubungkan dengan Let's Encrypt atau CA internal. OpenMediaVault menyediakan sertifikat via UI dan mendukung EC SSL certificates pada versi terbaru.

Cek sertifikat UI aktif
openssl s_client -connect 192.168.1.100:443 -showcerts

Perintah openssl s_client menampilkan rantai sertifikat yang disajikan UI. Pastikan sertifikat valid dan tidak kadaluarsa, dan abaikan saja peringatan hanya jika memakai CA internal yang memang dipercaya.

Mengganti Sertifikat Default

Sertifikat self-signed bawaan menimbulkan peringatan browser. Untuk pengalaman bersih, daftarkan domain dan gunakan Let's Encrypt, atau deploy sertifikat CA internal ke semua client. Di homelab, CA internal dengan cfssl atau easy-rsa adalah solusi yang umum.

SFTP dan FTPS

SFTP untuk Transfer Aman

SFTP adalah transfer file di atas SSH, tanpa koneksi FTP terpisah. TrueNAS SCALE mengaktifkan SFTP saat layanan SSH berjalan. Keunggulannya: satu protokol, satu port (22), dan keamanan SSH yang matang.

Transfer file dengan SFTP
sftp user@192.168.1.100
put berkas-iso.iso /tank/data/

Perintah sftp membuka sesi transfer interaktif. Perintah put mengunggah file lokal ke direktori di NAS. SFTP lebih aman daripada FTP polos karena seluruh sesi terenkripsi.

FTPS: FTP over TLS

FTPS menambahkan TLS ke protokol FTP. Jika aplikasi lama hanya mendukung FTP, FTPS menjadi kompromi yang lebih aman. Namun untuk integrasi baru, SFTP dan WebDAV over HTTPS umumnya lebih sederhana dan lebih mudah difirewall.

VPN untuk Akses Remote

Mengapa VPN

Akses remote ke NAS sebaiknya tidak membuka port publik. VPN menempatkan perangkat remote seolah berada di jaringan lokal yang sama, sehingga seluruh layanan NAS bisa diakses tanpa port forwarding. Dua teknologi populer: Tailscale dan WireGuard.

Tailscale untuk Kesederhanaan

Tailscale adalah mesh VPN berbasis WireGuard yang menyederhanakan pembuatan jaringan pribadi antar perangkat. Di TrueNAS SCALE, Tailscale tersedia sebagai app; di client, tinggal login dan perangkat langsung saling terhubung.

Sambungkan WireGuard
wg-quick up wg0
ping 100.64.0.2

Perintah wg-quick up wg0 mengaktifkan tunnel WireGuard. Jika ping ke peer berhasil, kalian sudah berada di jaringan pribadi dan bisa mengakses NAS tanpa port publik.

WireGuard Manual

WireGuard adalah VPN modern yang ringan dan berkinerja tinggi. Konfigurasi manualnya sederhana namun tetap harus hati-hati dengan key privasi:

Contoh konfigurasi WireGuard
[Interface]
PrivateKey = kunci-privasi-peer
Address = 10.0.0.2/24
 
[Peer]
PublicKey = kunci-publik-server
Endpoint = nas.example.com:51820
AllowedIPs = 192.168.1.0/24

Konfigurasi di atas menghubungkan client ke server WireGuard di NAS. Semua lalu lintas ke subnet LAN dialihkan lewat tunnel, sehingga akses ke NAS tetap terenkripsi end-to-end.

Penutup

Di episode 14 ini kalian sudah melindungi data di dua titik kritis: enkripsi saat diam dengan ZFS native aes-256-gcm, GELI dan LUKS, manajemen key, serta enkripsi saat transit dengan TLS, SFTP, FTPS, dan VPN Tailscale atau WireGuard.

Inti yang harus dibawa pulang:

  • Enkripsi ZFS native menjaga fitur snapshot dan compression tetap aktif.
  • GELI dan LUKS melindungi filesystem non-ZFS di lapisan block.
  • Simpan key terpisah dari data dan selalu miliki cadangan.
  • HTTPS wajib untuk management UI; ganti sertifikat default.
  • Akses remote lewat VPN, jangan pernah buka port publik.

Di episode 15 selanjutnya kita akan membahas vulnerability dan patch management — dari CVE pada Samba dan OpenSSH, kebiasaan update rutin, hingga isolasi apps, non-root service, minimasi permukaan, dan security audit berkala. Data kalian sudah terenkripsi, sekarang saatnya menjaga sistem tetap sehat dari waktu ke waktu.

Belajar NAS - Encryption & Secure Transport | Belajar NAS