1. Kenalan singkat dengan SSH
Bayangin kamu punya rumah – itulah server. Pintu depan rumahnya adalah layanan SSH. Lewat pintu ini kamu masuk, benerin kabel listrik, pasang lampu, sampai beresin atap. Karena pintu ini sangat penting, maling juga suka. Maka tugas kita adalah bikin pintunya kuat, kuncinya bagus, satpamnya galak, dan jalur-jalurnya tertata.
Apa yang akan kamu pelajari:
- Cara mengunci pintu SSH dengan benar – dari ganti slot kunci sampai batasi tamu.
- Kapan harus menutup jendela yang tidak perlu – seperti X11 forwarding dan agent forwarding.
- Gimana menghadapi maling modern – brute force, user enumeration, Terrapin, dan trik lingkungan LD_PRELOAD.
- Alat bantu satpam – Fail2Ban, 2FA, dan IDS-IPS seperti Suricata.
2. Persiapan aman – latihan di “rumah-rumahan”
Analoginya seperti latihan kebakaran di sekolah. Coba semua di lab atau server uji dulu, bukan di produksi. Tujuan: kalau ada salah langkah, yang kena hanya miniatur rumah, bukan rumah asli.
Checklist awal:
- Update OS dan paket agar semua baut-bautnya baru.
- Pastikan OpenSSH kamu versi terbaru.
- Backup konfigurasi sebelum ubah apa pun.
3. Kunci utama di sshd_config – biar pintu nggak gampang didorong
Ini pengaturan inti yang aman untuk mayoritas kasus. Anggap ini paket gembok plus bel pintu.
# 3.1 Ganti port dari 22 ke dinamis tinggi - seperti geser pintu ke sisi samping
Port 59595
# 3.2 Larang login root langsung - pakai user biasa lalu sudo
PermitRootLogin no
# 3.3 Batasi percobaan login - tamu salah kunci 3 kali langsung disuruh pulang
MaxAuthTries 3
# 3.4 Batasi waktu ngetik password - jangan kasih tamu nongkrong di teras
LoginGraceTime 20
# 3.5 Pastikan tidak ada password kosong
PermitEmptyPasswords no
# 3.6 Jangan izinkan set environment liar lewat SSH
PermitUserEnvironment no
# 3.7 Matikan X11 forwarding jika tidak perlu - tutup jendela kaca ke ruang tamu
X11Forwarding no
Tips analogi cepat:
- Port 59595 itu seperti pintu samping. Masih pintu yang sama, tapi tidak mencolok dari jalan raya.
- Root login itu master key. Jangan dikasih ke siapa pun. Pakai kunci user biasa, lalu minta bantuan satpam bernama
sudo. LoginGraceTimeseperti aturan “kalau 20 detik tidak nyaut, pintu menutup otomatis”.
4. Agent Forwarding dan Tunneling – kereta antar-ruangan
SSH bisa jadi kereta mini yang mengantar kamu ke ruangan lain di dalam gedung.
- Agent Forwarding: analoginya nitip kartu akses di resepsionis lantai 2, lalu dipakai lagi buat masuk lantai 3. Praktis, tapi kalau resepsionisnya nakal, kartumu bisa dipakai diam-diam. Rekomendasi: matikan kecuali benar-benar perlu.
AllowAgentForwarding no - Local Port Forwarding: seperti bikin jendela kecil dari kamarmu ke ruang server. Kamu lihat layanan di sana, tapi dari kursimu.
- Remote Port Forwarding: seperti bikin bel pintu dari dalam rumah supaya orang luar bisa manggil kamu lewat jalur aman yang kamu buat.
- Dynamic Port Forwarding – SOCKS: ini seperti bikin lorong mal serbaguna. Semua toko bisa diakses lewat satu lorong, tetapi gunakan dengan kontrol ketat.
Batasi tunneling agar tidak jadi lorong maling:
AllowTcpForwarding no
# Kalau sangat perlu, gunakan aturan sempit
Match User devops,admin Address 192.168.1.0/24
AllowTcpForwarding yes
5. Satpam otomatis – Fail2Ban, 2FA, dan Suricata
- Fail2Ban: satpam yang memantau buku tamu. Kalau ada tamu salah ketuk password berkali-kali, IP-nya diusir sementara. Analogi: orang yang salah kunci 5 kali, dilarang masuk 24 jam.
- 2FA untuk SSH: seperti kunci ganda. Sudah punya kunci fisik, masih diminta kode dari ponsel. Jauh lebih aman.
- Suricata IDS-IPS: CCTV pintar. Bisa melihat pola-pola aneh di koridor jaringan, kasih alarm, bahkan langsung menutup pintu ke tamu mencurigakan.
Catatan etika:
Semua uji coba bersifat edukasi dan harus kamu jalankan di lingkungan milikmu sendiri atau yang kamu punya izin tertulis. Jangan bermain di rumah orang.
6. Serangan umum dan cara berpikir bertahap
Tujuan bagian ini bukan ngajarin nyerang, tapi supaya kamu paham pola penjahat dan bisa pasang pagar di tempat yang tepat.
- Brute force atau dictionary attack
Penjahat menebak-nebak password seperti menebak PIN ATM.
Defense:
- Matikan password login, pindah ke SSH key yang kuat.
- Aktifkan Fail2Ban atau rate limiting.
- Gunakan allowlist IP untuk akses SSH jika memungkinkan.
- User enumeration CVE-2018-15473
Dulu ada kelemahan yang bikin server memberi sinyal beda antara “user ada” dan “user tidak ada”. Ini seperti resepsionis tidak sengaja bilang “Maaf, Pak Budi sedang keluar”, padahal kamu cuma tanya random.
Defense:
- Update OpenSSH ke versi yang sudah menutup celah.
- Hindari output-error yang bisa dibedakan oleh penyerang. Fokus di patch dan versi.
- Terrapin CVE-2023-48795
Serangan di tahap jabat-tangan SSH supaya beberapa pesan keamanan di-skip. Analogi: penjaga pintu diselipin catatan palsu saat pemeriksaan tiket, sehingga aturan ketat berubah jadi longgar.
Defense ringkas:
- Update server dan klien SSH. Ini wajib.
- Nonaktifkan algoritma bermasalah seperti
chacha20-poly1305@openssh.com, cipher CBC lama, dan varian*-etm@openssh.comjika lingkunganmu belum terpenuhi mitigasinya. Pakai daftar cipher MAC modern yang disarankan vendor dan komunitas keamanan. - Audit dengan pemindai yang relevan lalu verifikasi ulang setelah mitigasi.
- LD_PRELOAD dan environment abuse
Ini seperti ada orang menyusupkan tukang kunci palsu sebelum tukang kunci asli datang. Variabel lingkungan bisa “menyisipkan” perilaku baru ke program.
Defense:
- Biarkan
PermitUserEnvironment no. - Gunakan shell terbatas untuk akun servis, batasi
PATH, dan audit permission file.bashrcdkk. - Jalankan service dengan profil AppArmor atau SELinux bila memungkinkan.
- SSH agent hijacking
Kalau kamu nitip kartu akses di mesin perantara dan mesin itu multi-user, orang lain bisa menumpang pakai.
Defense:
- Matikan agent forwarding, atau pakai hanya pada jump host yang khusus dan terkunci.
- Pisahkan akun admin, jangan gabung dengan user biasa di host yang sama.
7. Template konfigurasi aman – cepat tempel
Gunakan sebagai basis, lalu sesuaikan kebutuhan.
Port 59595
PermitRootLogin no
PasswordAuthentication no # Pindah ke key-based
KbdInteractiveAuthentication no
ChallengeResponseAuthentication yes # Aktifkan jika pakai 2FA PAM
MaxAuthTries 3
LoginGraceTime 20
PermitEmptyPasswords no
PermitUserEnvironment no
X11Forwarding no
AllowAgentForwarding no
AllowTcpForwarding no
ClientAliveInterval 0
LoginBanner /etc/issue.net # Optional, tampilkan peringatan hukum
# Contoh pembatasan lebih halus
Match User devops,admin Address 10.0.0.0/16
AllowTcpForwarding yes
Tambahan praktik baik:
- Hanya buka SSH di firewall dari alamat kantor atau VPN.
- Catat semua login ke SIEM atau minimal ke syslog terpusat.
- Putar kunci secara berkala – seperti ganti kunci pagar tiap beberapa bulan.
- Dokumentasikan perubahan. Rumah aman itu rumah yang arsip kuncinya rapi.
8. Audit 15 menit – sprint cek keamanan
sshd -Tuntuk meninjau konfigurasi efektif.- Cek versi
ssh -Vdi klien dan server. - Scan dari luar jaringan untuk memastikan port sesuai ekspektasi.
- Uji 2FA dan rate limiting.
- Simulasikan login gagal beberapa kali, pastikan Fail2Ban bereaksi.
9. Kamus mini
- SSH: Pintu depan rumah server.
- Key-based auth: Kunci digital yang jauh lebih kuat dari password.
- Tunneling: Lorong khusus untuk lewat dari satu ruangan ke ruangan lain.
- IDS-IPS: CCTV plus satpam yang bisa bertindak.
- Brute force: Coba-coba kunci satu-satu sampai dapat.
- Enumeration: Mengintip daftar penghuni dari celah kecil di pintu.
10. Penutup
Security itu bukan sekali pasang lalu selesai. Anggap seperti merawat rumah. Kadang ganti gembok, tambah lampu teras, training satpam, dan cek pagar. Dengan langkah-langkah di atas, pintu SSH kamu jadi jauh lebih susah ditembus, tanpa bikin penghuni rumah repot.

