Belajar System Administrator - Security Hardening
Episode 18 of 28

Belajar System Administrator - Security Hardening

Mengamankan server secara sistematis: CIS benchmarks, firewall UFW/ firewalld, SSH hardening, dan SELinux/AppArmor, lalu praktik hardening server baru dari nol.

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

Pendahuluan

Di episode-episode sebelumnya kalian membangun server yang berfungsi. Episode 18 memulai fase penting berikutnya: membuat server yang aman. Security hardening adalah proses mengurangi permukaan serangan — menghilangkan layanan yang tidak perlu, menutup pintu yang tidak dipakai, dan mempersempit hak akses.

Mengapa hardening penting? Karena internet penuh dengan pemindai otomatis yang terus mencoba SSH, port web, dan layanan umum. Server yang dipasang tanpa hardening bukan "aman sampai ada yang menyerang" — ia sudah sedang diserang sejak menit pertama online.

Prinsip Hardening

Empat prinsip yang mendasari hampir semua langkah hardening:

  1. Attack surface reduction — semakin sedikit layanan & port terbuka, semakin sedikit yang bisa diserang.
  2. Least privilege — hak akses sekecil mungkin (dari episode 5).
  3. Default deny — tutup semuanya, buka hanya yang dibutuhkan.
  4. Defense in depth — berlapis: firewall + SSH key + MFA + log.

CIS Benchmarks

CIS (Center for Internet Security) Benchmarks adalah standar de facto checklist hardening — dokumen yang merinci ratusan rekomendasi per-OS dengan level severity. Contoh yang selalu ada:

AreaRekomendasi CIS Klasik
UpdatePatch OS terkini (episode 10)
ServiceMatikan layanan & paket yang tidak digunakan
SSHNonaktifkan root login, key-only
PermissionFile konfigurasi sensitif 600/640
AuditAktifkan logging (rsyslog/auditd)

Di lingkungan besar, ada tool yang mengaudit otomatis terhadap CIS — misal Lynis (open source) atau OpenSCAP. Di lab:

Audit hardening dengan Lynis
sudo apt install -y lynis
sudo lynis audit system
sudo lynis audit system | grep -E "Warning|Suggestion"

Lynis memberi skor dan daftar rekomendasi — peta jalan hardening yang bisa kalian kerjakan satu per satu.

Firewall: UFW dan firewalld

Dari episode 6 kalian sudah mengenal firewall. Sekarang kita menegakkannya sebagai kebijakan hardening — default deny:

UFW (Debian/Ubuntu)

Hardening firewall dengan UFW
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 443/tcp
sudo ufw --force enable
sudo ufw status verbose

firewalld (RHEL family)

Hardening firewall dengan firewalld
sudo systemctl enable --now firewalld
sudo firewall-cmd --set-default-zone=drop
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Important

Urutan paling penting saat mengaktifkan firewall di server remote: buka dulu SSH sebelum enable (UFW: allow OpenSSH; firewalld: --add-service=ssh). Kalau tidak, kalian mengunci diri sendiri keluar dari server — kesalahan klasik yang bisa mengubah sore yang tenang menjadi sesi konsol darurat.

SSH Hardening

SSH adalah pintu paling sering diserang di server Linux. Hardening yang wajib:

Contoh SSH hardening
sudo nano /etc/ssh/sshd_config
/etc/ssh/sshd_config (potongan hardening)
Port 22
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 30
Verifikasi sebelum restart
sudo sshd -t
sudo systemctl restart ssh

Langkah berurutan yang aman:

  1. Buat key SSH (ssh-keygen -t ed25519), salin ke server (ssh-copy-id).
  2. Uji login dengan key dari sesi lain — pastikan bekerja.
  3. Set PasswordAuthentication no dan PermitRootLogin no.
  4. sudo sshd -t lalu restart — dari sesi yang sudah login, agar tidak terkunci.

Warning

Jangan menonaktifkan password login sebelum memastikan key SSH berfungsi — dari sesi login yang masih terbuka. Urutan yang terbalik adalah salah satu penyebab terkunci keluar yang paling umum dan paling memalukan.

SELinux dan AppArmor

Mandatory Access Control (MAC) membatasi apa yang bisa dilakukan proses, bahkan oleh root — lapisan di atas permission tradisional (DAC).

SistemDistroModel
AppArmorDebian/UbuntuProfile per-aplikasi, lebih mudah
SELinuxRHEL/Rocky/AlmaPolicy global berlabel, lebih kuat

Keduanya bekerja dengan prinsip: bahkan jika proses dikompromi, ia tidak bisa keluar dari profilnya.

AppArmor

Cek status AppArmor
sudo aa-status
sudo aa-enforce /usr/sbin/nginx
sudo aa-complain /usr/sbin/nginx   # mode "watch" untuk debugging

SELinux

Cek status SELinux
getenforce
sudo setenforce 1          # enforcing
sestatus
sudo audit2allow -a        # analisis penolakan

Tip

Jangan menonaktifkan SELinux/AppArmor saat aplikasi bermasalah — itu membuang lapisan keamanan. Pelajari mode permissive/complain untuk melihat apa yang diblokir, sesuaikan policy, lalu kembali ke enforcing. Mode ini ada justru untuk membantu debugging tanpa harus menyerah pada keamanan.

Praktik: Hardening Server Baru

Berikut urutan hardening yang bisa dijadikan checklist untuk setiap server baru:

Checklist hardening server baru
# 1. Patch penuh
sudo apt update && sudo apt full-upgrade -y
# 2. Hapus/matikan layanan tak terpakai
sudo systemctl list-units --type=service --state=running | grep -v systemd
# 3. Firewall default deny, buka yang dibutuhkan
# 4. SSH hardening (key-only, no root, no password)
# 5. Audit dengan Lynis
sudo lynis audit system
# 6. Aktifkan/mantapkan AppArmor
# 7. Backup konfigurasi penting (episode 9 & 20)

Setiap baris adalah satu lapisan pertahanan. Semakin lengkap, semakin mahal biaya menyerang server kalian — dan itu justru yang kita inginkan.

Penutup

Inti yang harus dibawa pulang dari episode 18:

  • Hardening = mengurangi permukaan serangan dengan 4 prinsip: surface reduction, least privilege, default deny, defense in depth.
  • Gunakan CIS benchmarks sebagai peta jalan; Lynis untuk audit otomatis.
  • Firewall: default deny (UFW/firewalld) — buka SSH dulu sebelum enable.
  • SSH hardening: key-only, no root login, batasi percobaan.
  • AppArmor/SELinux menambah lapisan MAC di atas permission biasa — jangan dinonaktifkan.

Di episode 19 selanjutnya kita akan membahas Antivirus, EDR & Log Security — deteksi ancaman di endpoint/server, audit log, SIEM dasar, dan penanganan insiden, dengan praktik setup logging & monitoring keamanan. Server yang harden adalah server yang diawasi!