Begitu VPS kamu online, detik itu juga dia langsung jadi target. Ini bukan nakut-nakutin — di salah satu server yang aku pegang, ada ribuan percobaan login SSH gagal tiap hari dari bot yang nyebar di seluruh dunia. Mereka nebak username sama password otomatis, 24 jam nonstop, nggak ada capeknya.
Kabar baiknya, cuma butuh beberapa langkah simpel buat bikin semua serangan itu mental. Nah, ini 8 langkah hardening yang bisa kamu praktikin sekarang juga.
📌 Belum punya VPS yang siap? Mampir dulu ke Setup VPS Ubuntu dari Nol, baru balik lagi ke sini buat ngamanin.
1. Update sistem dulu
Patch keamanan terbaru itu gratis dan penting banget. Jadi tiap mau ngoprek, mulainya selalu dari sini:
sudo apt update && sudo apt upgrade -y
2. Pakai SSH key, matikan login password
Ini langkah yang paling ngefek. Selama login password masih nyala, bot bakal terus nebak-nebak sampai ketemu. Begitu kamu pindah ke SSH key, mereka nggak punya celah sama sekali.
Pastikan SSH key kamu udah kepasang ya (cek panduan setup kalau lupa), terus edit konfigurasi SSH:
sudo nano /etc/ssh/sshd_config
Cari dan pastikan baris ini ada:
PasswordAuthentication no
Habis itu restart SSH:
sudo systemctl restart ssh
⚠️ Jangan buru-buru logout! Buka terminal baru dulu, terus tes login pakai key. Kalau lancar, baru deh aman.
3. Batasi login root
Login langsung sebagai root itu rawan. Masih di file yang sama (sshd_config), set:
PermitRootLogin prohibit-password
Artinya root nggak bisa login pakai password lagi — cuma lewat key, atau idealnya nggak sama sekali. Buat kerjaan sehari-hari, mending pakai user biasa terus tinggal sudo kalau butuh akses admin.
4. Aktifkan firewall (UFW)
Konsepnya gampang: tutup semua port dulu, baru buka yang kepakai aja.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80,443/tcp # web (kalau ada)
sudo ufw enable
Terus cek statusnya:
sudo ufw status verbose
5. Pasang fail2ban (anti brute-force)
fail2ban bakal otomatis nge-block IP yang gagal login berkali-kali. Jadi bot yang ngotot nebak password malah kena tendang sendiri.
sudo apt install -y fail2ban
sudo nano /etc/fail2ban/jail.local
Isi kayak gini:
[sshd]
enabled = true
maxretry = 4
bantime = 1h
findtime = 10m
💡 Khusus Ubuntu 24.04, ini penting: filter bawaan fail2ban nyari log di
sshd.service, padahal di Ubuntu 24.04 unit-nya udah ganti jadissh.service. Kalau ini nggak kamu betulin, fail2ban nggak bakal nge-block siapa-siapa — jalan tapi percuma. Makanya tambahin baris ini di dalam blok[sshd]:journalmatch = _SYSTEMD_UNIT=ssh.service + _COMM=sshd
Terus jalanin:
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
6. Nyalakan update keamanan otomatis
Biar patch keamanan kepasang sendiri, tanpa harus kamu pelototin tiap hari:
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
7. Pakai HTTPS + matikan TLS lama (kalau punya web)
Kalau VPS kamu dipakai nge-host website, HTTPS itu wajib hukumnya. Pakai Let's Encrypt aja, gratis:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d domainmu.com -d www.domainmu.com --redirect
Terus di konfigurasi nginx, nyalain HSTS dan pastiin TLS lama (1.0/1.1) udah dimatiin — versi jadul itu rawan banget:
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
ssl_protocols TLSv1.2 TLSv1.3;
8. Pantau serangan & reboot untuk patch kernel
Sekali-sekali, intip siapa aja yang nyoba nyerang:
sudo journalctl _COMM=sshd | grep -i "failed\|invalid user" | tail -20
Dan jangan lupa reboot tiap habis update gede, biar patch kernel-nya beneran kepasang:
# cek apakah perlu reboot
test -f /var/run/reboot-required && echo "Perlu reboot" || echo "Aman"
sudo reboot
Checklist cepat
- Sistem udah di-update
- Login SSH pakai key, password off
- Login root dibatasi
- Firewall UFW aktif (deny by default)
- fail2ban jalan (jangan lupa cek
journalmatchkalau di Ubuntu 24.04) - Auto security update nyala
- HTTPS + HSTS, TLS lama mati
- Rutin pantau log + reboot buat patch kernel
Intinya
Habis ngelewatin 8 langkah tadi, ribuan percobaan serangan tiap hari itu bakal jadi sia-sia — login password udah mati, IP nakal otomatis kena block, dan port yang nggak kepakai udah ketutup semua. Server kamu bakal jauh lebih adem.
Yang perlu diinget, security itu proses, bukan sekali setup terus kelar selamanya. Tapi tenang, fondasi ini udah nutup mayoritas celah yang biasa diincer penyerang.
💡 Tips: simpen langkah-langkah ini jadi checklist pribadi kamu, terus jalanin tiap kali nyiapin server baru. Lumayan, nggak perlu mikir dari nol lagi.
💡 Udah aman? Lanjut ke memasang SSL Let's Encrypt gratis di nginx biar trafik situs kamu ke-enkripsi.