Instalasi Fail2Ban di CentOS / RHEL 8
Paket fail2ban tidak termasuk kedalam paket repository resmi, melainkan ada pada paket repository epel. Untuk dapat menggunakan paket repository epel, berikut cara nya.
dnf install epel-release
atau
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Tunggu hingga prosesnya selesai. Lalu dilanjut instalasi fail2bannya.
dnf install fail2ban
Konfigurasi fail2ban untuk melindungi ssh
Untuk konfigurasi fail2ban ada terletak pada directory /etc/fail2ban/ dan untuk directory filter ada pada /etc/fail2ban/filter.d/. Sedangkan untuk filter untuk ssh ada pada /etc/fail2ban/filter.d/sshd.conf.
Global konfigurasi terletak pada /etc/fail2ban/jail.conf, namun kali ini saya tidak akan menggunakan konfigurasi tersebut, saya akan menggunakan /etc/fail2ban/jail.local sebagai file untuk konfigurasinya.
Buat file /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
Lalu isikan sebagai berikut:
[DEFAULT] ignoreip = 192.168.56.2/24 bantime = 21600 findtime = 300 maxretry = 3 banaction = iptables-multiport backend = systemd [sshd] enabled = true
Penjelasan:
ignoreip : Menentukan daftar alamat IP atau nama host yang tidak ban.
bantime : Menentukan waktu atau durasi dalam hitungan detik sebuah host akan di banned.
maxretry : Menentukan jumlah maksimal kegagalan sebelum host sampai akhirnya diblokir.
findtime : findtime: Fail2ban akan mencekal host jika telah menghasilkan “maxretry” selama detik “findtime” terakhir.
banaction : Tindakan pelarangan.
backend : Menentukan backend yang digunakan untuk mendapatkan modifikasi file log.
Dari konfigurasi di atas, dapat ditarik kesimpulan, jika ada salah satu IP yang melakukan percobaan login menggunakan login SSH dan gagal sebanyak 3 kali dalam waktu 5 menit terakhir, Maka akan dilakukan ban selama 6 jam, dan akan diabaikan alamat IP 192.168.56.2.
Selanjutnya, mulai dan aktifkan layanan fail2ban untuk saat ini dan periksa apakah sudah aktif menggunakan perintah systemctl berikut:
# systemctl start fail2ban # systemctl enable fail2ban # systemctl status fail2ban
Monitoring Failed and Banned IP Address menggunakan fail2ban-client
Setelah melakukan konfigurasi fail2ban, dapat dilakukan pengawasan menggunakan fail2ban-client. Untuk perintahnya sebagai berikut:
Untuk memantau sshd jail, jalankan.
fail2ban-client status sshd
Status for the jail: sshd |- Filter | |- Currently failed: 0 | |- Total failed: 3 | `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd `- Actions |- Currently banned: 1 |- Total banned: 1 `- Banned IP List: 192.168.137.66
Dilihat dari log diatas terdapat ip address 192.168.137.66 yang sudah di ban dikarenakan salah melakukan ssh sebanyak 3, sesuai konfigurasi sebelumnya.
Untuk membatalkan pemblokiran alamat IP di fail2ban, jalankan perintah berikut.
fail2ban-client unban 192.168.137.66
Untuk informasi lebih lanjut tentang fail2ban, bisa membaca halaman manual berikut.
# man jail.conf # man fail2ban-client