
Serangan brute-force pada layanan SSH (Secure Shell) adalah salah satu ancaman keamanan paling umum yang dihadapi oleh server. Penyerang berulang kali mencoba berbagai kombinasi username dan password untuk mendapatkan akses. Untungnya, ada alat hebat bernama Fail2Ban yang dapat mengotomatisasi pemblokiran alamat IP yang menunjukkan perilaku mencurigakan.
Apa itu Fail2Ban?
Fail2Ban adalah framework yang memantau file log sistem (seperti log SSH, web server, dll.) untuk mendeteksi pola upaya banyak login yang gagal. Ketika pola serangan brute-force terdeteksi, Fail2Ban akan memblokir alamat IP penyerang menggunakan firewall (misalnya, iptables atau firewalld) untuk jangka waktu tertentu.
Berikut adalah panduan untuk menginstal dan mengkonfigurasi Fail2Ban untuk melindungi port SSH Anda.
Langkah 1: Instalasi Fail2Ban
Pastikan sistem operasi server Anda sudah diperbarui sebelum melakukan instalasi.
Untuk Debian/Ubuntu
sudo apt update
sudo apt install fail2ban -y
Untuk CentOS/Almalinux/RHEL:
yum install epel-release -y
yum install fail2ban -y
# Atau untuk CentOS/RHEL 8 dan yang lebih baru:
dnf install fail2ban -y
install epel-release -y
Langkah 2: Konfigurasi Dasar (Membuat jail.conf)
Sebelum kita aktfikan Fail2ban kita harus konfigurasi filenya agar dapat berjalan maksimal . berikut tetapi sebelum kita melakukan penambahan konfigurasi , kita akan masuk ke dalam foldernya terlebih dahulu. berikut path/file yang akan kita tuju
cd /etc/fail2ban/jail.d/
jika sudah masuk ke ke dalam folder tersebut maka kita bisa tambahkan konfigurasi file caranya dengan sebagai berikut:
nano jail.con
f
lalu paste script di bawah:
[sshd]
enabled = true
#Sesuaikan dengan port ssh yang di berika sebelumnya
port = 22
#untuk memfilter pada ssh
filter = sshd
#Untuk log path pada os
logpath = /var/log/secur
e#Maximal percobaan dalam 3 kali login ssh
maxretry = 3
#Jika dalam 1 jam 3 kali gagal login (waktu)
findtime = 3600
#jika ingin di banned dalam 1 hari
bantime = 86400
#ipnya kita arahkan ke route jika sudah terbanned
banaction = route
#Jika ingin allowlist ip agar tidak dikenakan banned (Sesuaikan dengan ip yang anda gunakan )
ignoreip = 127.0.0.1/8
Simpan perubahan (Ctrl+X
, lalu Y
, lalu Enter
jika pakai nano
).
jika menggunakan os ubuntu 22.04:
[sshd]
backend=systemd
enabled = true
port = 22
filter = sshd
logpath = /var/log/secure
maxretry = 10
findtime = 3600
bantime = 86400
banaction = route
ignoreip = 127.0.0.1/8
Simpan perubahan (Ctrl+X
, lalu Y
, lalu Enter
jika pakai nano
).

Langkah 3: Penjaga Keamanan Mulai Bekerja (Restart Fail2Ban)
Setelah aturannya jelas, kita hidupkan ulang dan enable Fail2Ban agar dia tahu aturan barunya.
systemctl restart fail2ban
Systemctl enable fail2ban
lalu kita coba cek service status pada fail2ban
systemctl status fail2ban
akan nampil seperti ini :
● fail2ban.service – Fail2Ban Service
Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; preset: disabled)
Active: active (running) since Fri 2025-10-17 02:08:48 WIB; 0 second
Docs: man:fail2ban(1)
Main PID: 1149 (fail2ban-server)
Tasks: 5 (limit: 820794)
Memory: 24.2M
CPU: 0min
CGroup: /system.slice/fail2ban.service
└─1149 /usr/bin/python3 -s /usr/bin/fail2ban-server -xf startOct 17 02:08:48 pikiranberiklau.com systemd[1]: Starting Fail2Ban Service…
Oct 17 02:08:48 pikiranberkilau.com systemd[1]: Started Fail2Ban Service.
Oct 17 02:08:49 pikiranberkilau.com fail2ban-server[1149]: Server ready
[root@pikiranberkilau~]#
status di atas menunjukan bahwa service fail2ban sudah aktif
Jika service sudah aktif, Untuk memastikan dia sudah bekerja di bagian SSH kita bisa cek :
fail2ban-client status sshd
maka akan nampil seperti ini
Status for jail: sshd
|- filter
| |- currently failed: 0
|- total failed: 0
– action
|- currently banned: 0
|- total banned: 0
`- banned IP list:

Selamat! Server Anda sekarang jauh lebih aman dari serangan brute-force SSH. Penjaga keamanan Anda, Fail2Ban, siap siaga!
lalu bagaimana kita bisa whitelist ip yang terkena banned ?
kita ambil contoh ip yang terkena banned 10.0.0.1 cara whitelistnya sebagai berikut:
fail2ban-client unban 10.0.0.1
pastikan ip yang anda/perusahaan gunakan .
Tips Keamanan Tambahan
Meskipun Fail2Ban adalah pertahanan yang kuat, selalu gabungkan dengan praktik keamanan SSH lainnya:
- Ganti Port SSH Default (Port 22): Mengubah port SSH menjadi port yang tidak umum (misalnya 22333) akan mengurangi sebagian besar lalu lintas serangan brute-force otomatis.
- Gunakan Otentikasi Kunci SSH: Nonaktifkan login berbasis password di
/etc/ssh/sshd_config
(ubahPasswordAuthentication yes
menjadiPasswordAuthentication no
) setelah Anda memastikan login dengan kunci SSH berfungsi dengan baik. Otentikasi kunci jauh lebih aman daripada password. - Gunakan Username yang Kompleks: Hindari menggunakan username umum seperti
root
,admin
, atauuser
.
Dengan menerapkan Fail2Ban dan tips tambahan ini, Anda telah meningkatkan secara signifikan pertahanan server Anda terhadap serangan brute-force SSH yang mengganggu. Selamat mengamankan server Anda!