Episode ini mempraktikkan pengamanan sistem Void: hardening SSH dengan autentikasi kunci, kebijakan sudo dan doas yang ketat, pemeliharaan firewall, audit dengan lynis, proteksi brute-force dengan fail2ban, serta disiplin upgrade rutin memakai xbps-install -Su.

Keamanan bukan produk sekali jadi, melainkan kebiasaan yang terus dipelihara. Episode 14 menerapkan prinsip tersebut pada sistem Void: memperkuat SSH, membatasi akses dengan kebijakan sudo dan doas, menjaga firewall, menjalankan audit, serta membangun kebiasaan upgrade rutin. Ini adalah episode paling praktis untuk sistem yang akan dibuka ke internet.
Void punya sedikit keunggulan: sistem rolling release yang ramping berarti permukaan serangan lebih kecil, dan semua service tampak jelas di /var/service/. Kita akan memanfaatkan transparansi ini untuk melakukan hardening yang terukur.
Mari mulai dari pintu masuk yang paling umum: SSH.
Langkah pertama dan paling penting adalah mengganti autentikasi password dengan kunci SSH. Generate kunci di mesin kalian, lalu kirim ke server:
ssh-keygen -t ed25519
ssh-copy-id user@serverSetelah kunci terpasang, nonaktifkan login password dan login root di /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication noVerifikasi konfigurasi sebelum reload:
sudo sshd -t
sudo sv reload sshdPerintah sshd -t memvalidasi sintaks konfigurasi. Baru setelah berhasil, reload service sshd dengan sv reload sshd.
Batasi user yang boleh login SSH agar jika satu akun terganggu, tidak semua akun terpengaruh:
AllowUsers devnullTambahkan baris AllowUsers devnull pada /etc/ssh/sshd_config, uji dengan sshd -t, lalu reload.
Prinsip terpenting dalam pengelolaan akses adalah least privilege: berikan hak yang paling sedikit untuk menyelesaikan tugas. Di Void, ini berarti user harian masuk grup wheel, sementara tugas administratif dilakukan lewat sudo atau doas per-perintah.
Tinjau kebijakan yang sudah kita buat di episode 7:
sudo cat /etc/sudoers | grep -v '^#'
cat /etc/doas.confPerhatikan apakah ada baris yang memberikan hak terlalu luas. Jika tidak dibutuhkan, hapus.
Firewall dari episode 13 harus selalu aktif. Verifikasi secara berkala:
sv status nftables
sudo nft list ruleset | headJika service nftables tidak ada di /var/service/, aktifkan kembali dengan symlink seperti di episode 13.
lynis adalah tool audit keamanan yang memeriksa sistem secara menyeluruh:
sudo xbps-install -S lynis
sudo lynis audit systemOutput lynis audit system menghasilkan skor hardening dan daftar saran. Ikuti rekomendasi yang relevan secara bertahap, jangan sekaligus.
fail2ban memindai log dan memblokir alamat IP yang mencurigakan:
sudo xbps-install -S fail2ban
sudo ln -s /etc/sv/fail2ban /var/service/
sudo sv start fail2banCek jail yang aktif dengan perintah klien:
sudo fail2ban-client status sshdOutput fail2ban-client status sshd menampilkan jumlah IP yang diblokir — indikator langsung bahwa proteksi bekerja.
Rolling release berarti pembaruan keamanan datang terus-menerus. Jadikan upgrade rutin sebagai kebiasaan:
sudo xbps-install -SuPerintah xbps-install -Su menyinkronkan repositori dan meng-upgrade seluruh paket. Untuk perubahan yang menuntut service restart, perhatikan service yang perlu di-restart setelah upgrade.
Terakhir, lakukan inventaris service secara berkala:
ls /var/service/
sv status /var/service/*Daftar ls /var/service/ menunjukkan service apa saja yang menyala. Semakin sedikit service, semakin kecil permukaan serangan — hapus symlink service yang tidak dipakai.
Episode 14 menerapkan hardening pada sistem Void: autentikasi SSH berbasis kunci dengan login password dimatikan, kebijakan akses minimum lewat sudo dan doas, firewall yang persisten, audit dengan lynis, proteksi brute-force dengan fail2ban, serta disiplin upgrade rutin.
Inti yang harus dibawa pulang:
lynis audit system untuk audit berkala.xbps-install -Su adalah kunci keamanan.Di episode 15 selanjutnya kita akan membahas xbps-src dan void-packages — membangun paket dari source dengan xbps-src binary-bootstrap, memahami struktur template paket, menginstall paket lokal, dan ikut berkontribusi ke repositori Void.