SSH (Secure Shell) adalah protocol yang digunakan untuk mengakses server secara remote. Sayangnya, SSH juga menjadi target utama attacker. Setiap server yang expose SSH ke internet akan mendapat ribuan percobaan login dalam sehari.
Kenapa SSH Perlu Di-hardening?
Bot scanner aktif mencari server dengan SSH lemah. Statistik menunjukkan:
- Rata-rata server baru menerima 2,000+ percobaan login dalam 24 jam pertama
- 80% serangan menggunakan credential stuffing (password combo umum)
- Server tanpa hardening bisa di-compromise dalam hitungan menit
1. Disable Root Login
Root adalah target utama. Disable langsung:
# Edit SSH config
sudo nano /etc/ssh/sshd_config
# Tambahkan/ubah:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
2. Gunakan SSH Key, Bukan Password
SSH key jauh lebih aman dari password. Cara setup:
# Di mesin lokal Anda
ssh-keygen -t ed25519 -C "[email protected]"
# Copy public key ke server
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server-ip
3. Ganti Port Default
Port 22 adalah target utama scanner. Ganti ke port acak:
# Di /etc/ssh/sshd_config
Port 2222
# Jangan lupa update firewall
sudo ufw allow 2222/tcp
sudo ufw delete allow 22/tcp
4. Setup Fail2Ban
Fail2Ban memblokir IP setelah beberapa percobaan gagal:
sudo apt install fail2ban -y
# Buat config lokal
sudo nano /etc/fail2ban/jail.local
# Isi:
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600
5. Batasi User yang Boleh Login
# Di /etc/ssh/sshd_config
AllowUsers syafriadi deploy
# Restart SSH
sudo systemctl restart sshd
6. Gunakan Two-Factor Authentication
Tambahan lapisan keamanan dengan Google Authenticator atau TOTP:
sudo apt install libpam-google-authenticator -y
google-authenticator
# Tambahkan ke /etc/pam.d/sshd
auth required pam_google_authenticator.so
Checklist Keamanan SSH
- ✅ Root login disabled
- ✅ Password authentication disabled
- ✅ SSH key aktif
- ✅ Port diganti dari 22
- ✅ Fail2Ban aktif
- ✅ User dibatasi
- ✅ 2FA aktif (opsional tapi recommended)
Untuk checklist keamanan server yang lebih lengkap, baca 10 langkah wajib mengamankan server Linux. Untuk setup awal server, lihat panduan self-hosting dari nol.