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

4. Automatic security updates

5. Kernel sysctl hardening

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 2222

Setelah 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 enable

Verifikasi:

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 | tail

  • Open ports audit: ss -tlnp

  • Process discovery: ps aux --sort=-%cpu | head

  • Disk 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 broken

Kalau 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 upgrade

  • Cek fail2ban ban list

  • Audit user & SSH key yang masih aktif: grep AllowUsers /etc/ssh/sshd_config

Kesalahan yang sering bikin VPS kebobol

  1. Biarkan root login SSH + password

  2. Port 22/3389/RDP langsung expose tanpa firewall

  3. Firewall diaktifkan tapi aturan SSH lama masih jalan

  4. Update kernel ditunda bertahun

  5. Tidak ada backup/snapshot sebelum perubahan besar

  6. Pakai password saja, tanpa SSH key

  7. Running service yang tidak dibutuhkan: ss -tlnp diabaikan

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.