Security Afry Rachmat · Jul 31, 2026 · 11 min read
VPS Hardening untuk Engineer
Langkah praktis harden VPS: SSH, firewall, fail2ban, sysctl, automatic updates, dan audit berkala — tanpa beli tools mahal.
IN THIS STORY
1. SSH: jangan allow root dan ganti port default
2. Firewall: default deny, allow selected
3. Fail2Ban: blokir brute force otomatis
6. Monitoring: yang minimal harus ada
7. Patching cadangan: snapshot dulu
8. Audit berkala Kesalahan yang sering bikin VPS kebobol Closing
VPS Hardening untuk Engineer
Banyak orang beli VPS, install aplikasi, lalu langsung expose ke internet. Hasilnya: port 22 terbuka ke semua, root bisa SSH dari mana saja, dan firewallnya kosong. Dalam 24 jam scanner sudah mulai nge-coba bruteforce.
Hardening bukan cuma alasan "compliance" untuk audit. Ini langkah-lumpat yang harus dilakukan sebelum kamu mengunggah aplikasi apa pun ke server. Berikut urutannya.
1. SSH: jangan allow root dan ganti port default
Ubuntu/Debian default: root bisa SSH, port 22. Ganti dua-duanya:
# /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
Port 2222Setelah itu test di terminal baru sebelum disconnect:
ssh -p 2222 admin@vps-ip
Kalau gagal login: kamu masih punya akses via console provider (Vultr/DigitalOcean/AWS). Kalau berhasil: matikan session root dan port lama. Jangan pernah biarkan SSH root + password hidup bareng.
2. Firewall: default deny, allow selected
Tujuan: default deny. Hanya yang kamu butuhkan yang boleh masuk.
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp # SSH
ufw allow 443/tcp # HTTPS
ufw allow 80/tcp # HTTP redirect
ufw enableVerifikasi:
ufw status numbered
Yang lazim salah: lupa enable tapi nggak cek aturan. Cek, dan pastikan SSH baru ada.
3. Fail2Ban: blokir brute force otomatis
Scanner akan terus cobak password. Fail2Ban baca log, kalo ada 5 gagal dalam 600 detik: ban 1 jam.
apt update
apt install -y fail2ban
cat >/etc/fail2ban/jail.local <<'EOF'
[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log
maxretry = 5
findtime = 600
bantime = 3600
EOF
systemctl enable --now fail2ban
Cek status ban:
fail2ban-client status sshd
fail2ban-client get sshd banip --with-time
4. Automatic security updates
Kernel dan library kadang kena CVE yang belum kamu tau. Biar recovery lebih cepat:
apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
Konfirmasi "yes" untuk auto-download dan auto-install security updates. Yang non-security tetap manual.
5. Kernel sysctl hardening
Konfigurasi jaringan di kernel bisa dipaksa aman lewat /etc/sysctl.conf. Tambahkan:
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.tcp_syncookies = 1
fs.protected_symlinks = 1
fs.protected_hardlinks = 1
Terapkan:
sysctl -p
Cek satu persatu:
sysctl net.ipv4.conf.all.accept_redirects
Harusnya 0. Kalau masih 1, cek override lain di /etc/sysctl.d/.
6. Monitoring: yang minimal harus ada
Tanpa monitoring, kamu nggak tau kapan server kena serangan. Minimal:
Auth log alert:
grep "Failed password" /var/log/auth.log | tailOpen ports audit:
ss -tlnpProcess discovery:
ps aux --sort=-%cpu | headDisk usage:
df -h
Kalau mau naik level: install Prometheus node exporter + alertmanager, atau tool ringan seperti auditd untuk syscall logging.
7. Patching cadangan: snapshot dulu
Sebelum hardening besar-besaran:
# DigitalOcean/Vultr: take snapshot# AWS: AMI# Lalu test rollback kalau ada yang brokenKalau SSH mati atau firewall keblokir, kamu masih bisa restore dari snapshot. Lebih baik prepared daripada stranded.
8. Audit berkala
Hardening bukan one-time. Setiap bulan:
Cek auth.log untuk brute force pattern
Review UFW rules yang aktif
Update packages:
apt update && apt upgradeCek fail2ban ban list
Audit user & SSH key yang masih aktif:
grep AllowUsers /etc/ssh/sshd_config
Kesalahan yang sering bikin VPS kebobol
Biarkan root login SSH + password
Port 22/3389/RDP langsung expose tanpa firewall
Firewall diaktifkan tapi aturan SSH lama masih jalan
Update kernel ditunda bertahun
Tidak ada backup/snapshot sebelum perubahan besar
Pakai password saja, tanpa SSH key
Running service yang tidak dibutuhkan:
ss -tlnpdiabaikan
Closing
Hardening VPS itu tentang reducing blast radius. Kalau satu exploit berhasil, kerusakan terbatas. Tidak ada sistem yang 100 persen aman, tapi dengan langkah-langkah ini kamu menghilangkan 90 persen attack surface yang paling sering dieksploitasi.



