Deep Dive to Fail2Ban for SSH : Fail2Ban Client ban/un-ban ip

Kemarin sudah dibahas mengenai fail2ban package, yang dapat melakukan blokir terharap malicious attempt yang dilakukan terhadap SSH, tetapi belum saya bahas lebih dalam jika kita tidak sengaja salah 3 kali dalam melakukan autentikasi via SSH, lalu kita terblokir, nah bagaimana kita bisa melakukan un ban terhadap IP kita sendiri?

Nah ini yang akan saya bahas, sebuah CLI command yaitu fail2ban-client. Command fail2ban-client adalah sebuah CLI tools/command untuk melakukan beberapa set kemampuan dari Fail2Ban service itu sendiri, memang Fail2Ban memiliki Fail2Ban server, tetapi saya tidak akan cover di post ini. Kita hanya akan berfokus kepada fail2ban-client CLI interface.

Untuk melihat semua fungsi yang terdapat pada fail2ban-client, kita dapat menjalankan sebuah command yaitu fail2ban-client –help seperti pada di bawah ini :

root@centos:~# fail2ban-client --help Usage: fail2ban-client [OPTIONS] Fail2Ban v0.10.2 reads log file that contains password failure report and bans the corresponding IP addresses using firewall rules.
Options:
... output omitted
unban --all unbans all IP addresses (in all jails and database)
unban <IP> ... <IP> unbans (in all jails and database)
status gets the current status of the server
set <JAIL> banip <IP> ... <IP>           manually Ban <IP> for <JAIL>
... output omitted (saya hilangkan, bisa dicoba langsung, karena terlalu panjang)

Saya hanya akan membahas pada level bagaimana cara untuk melakukan ban dan unban ip. Terkadang kita secara tidak sadar melakukan kesalahan dalam melakukan masukan password, dan ini menyebabkan IP yang kita punya masuk ke dalam list jail dari fail2ban. Biasanya banyak orang akan berhenti dan membiarkan sampai IP nya hapus dari iptables oleh fail2ban. Hal ini bisa ditunggu kalau settingan fail2ban jail time nya di set 2-3 jam, tapi kalau 5 jam, 10 jam? Bagaimana kita bisa akses server dengan SSH, apalagi kalau di kondisi penting sekali. Nah oleh karena itu fail2ban memiliki command line interface yang memiliki opsi untuk menghapus IP dari list jailed.

Nah sesuai dengan list cli command yang akan saya bahas, bisa dilihat ada fungsi un-ban 1 ip atau semua ip. Nah hal ini berguna kalau kita menggunakan VPS biasa, terutama jika ada VNC/web interface nya untuk akses jika SSH nya tidak bisa di akses, kebanyakan dari banyak provider cloud/vps memiliki interface ini. Tidak perlu terlalu lama, saya akan beri contoh penghapusan IP dari fail2ban-client.

[root@centos ~]# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 7
| |- Total failed: 143089
| - Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd - Actions
|- Currently banned: 19
|- Total banned: 15645
`- Banned IP list: 222.186.15.158 218.92.0.220 114.80.94.228 112.85.42.104 158.69.250.183 218.92.0.148 222.186.30.218 222.186.42.155 222.186.175.23 222.186.30.76 222.186.30.35 222.186.190.17 189.8.108.50 222.186.31.83 168.121.106.3 222.186.180.142 218.92.0.215 37.49.224.192 37.49.230.118
[root@centos ~]# fail2ban-client unban 37.49.230.118
1
[root@centos ~]#

Untuk melihat IP apa saja yang di banned, kita bisa gunakan fail2ban-client status <jail>, ganti jail dengan rules yang kita set(sshd, ftp, dll), lalu setelah itu kita dapat melakukan penghapusan IP yang di ban dengan fail2ban-client unban <ip>, dengan itu, IP yang di ban akan di drop dari iptables firewall. Jika berhasil, maka akan mengeprint angka 1 setelah di unban. Jika IP yang kita drop salah, maka dapat di ban ulang dengan fail2ban-client set <jail> banip <ip>, seperti pada contoh di bawah ini.

[root@centos ~]# fail2ban-client set sshd banip 37.49.230.118
1
[root@centos ~]#

Kenapa kok diperlukan adanya jail saat melakukan banned? Agar kelihatan ip ini banned pada service apa, port berapa, dan berapa lama sesuai dengan jail nya. Dengan demikian ketika nanti akan di query kembali, dapat dilihat IP ini di blacklist pada jail/service apa. Sekian dari blog post kali ini, semoga membantu lebih banyak bagi yang belum pernah menggunakan cli dari fail2ban-client.

Leave a Reply. I will come back and maybe we can have some conversation :)

This site uses Akismet to reduce spam. Learn how your comment data is processed.