Cara Mudah Install dan Konfigurasi fail2ban di Ubuntu Server 18.04

Cara Mudah Install dan Konfigurasi fail2ban di Ubuntu Server 18.04. Jika kalian sedang mencari cara bagaimana cara mengamankan server Ubuntu kalian, maka salahsatunya adalah dengan fail2ban. Cara kerja fail2ban adalah mendeteksi aktifitas login yang tidak wajar seperti brute force, lalu membanned ip yang mencurigakan tersebut. Untuk mendeteksi aktifitas bruteforcenya melalui log error dan juga rules yang sudah berisi regex.



Pertama kita update paket di repository terlebih dahulu lalu kita install paket fail2ban.
sudo apt-get update
sudo apt-get install fail2ban -y

Setelah terinstall, jalankan fail2ban dengan perintah
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

Mengkonfigurasi fail2ban
file konfigurasi fail2ban ada dua, jail.conf dan jail.local. jail.conf adalah file default milik fail2ban, kita bisa langsung mengeditnya disana. Namun resikonya, ketika fail2ban diupgrade (misalnya ada paket baru di repository), maka konfigurasinya akan hilang dan teganti dengan yang baru.

Solusinya dengan menggunakan jail.local. File tersebut tidak akan hilang meski kalian mengupgrade fail2ban.
sudo nano /etc/fail2ban/jail.local

Lalu isikan didalamnya
[DEFAULT]
ignoreip = 127.0.0.1/8
ignorecommand =
bantime  = 23600
findtime  = 100
maxretry = 2
enabled = false
bantime menunjukkan berapa lama attacker akan dibanned. Satuannya adalah detik. Jika ingin melakukan banned permanen, isi value nya menjadi "-1" .
maxretry menunjukkan berapa kali percobaan gagal yang diijinkan. disini saya membuat rule jika dua kali gagal login maka ip akan di block.
enabled = false . Yup, disini memang defaultnya service yang dimanage oleh fail2ban hanya ssh. Dan memang lebih baik jangan diganti. Jika ingin menghidupkan service, edit saja di service yang ingin dihidupkan dengan value true.
findtime disini menunjukkan batasan waktu percobaan gagal yang dibolehkan sebelum dibanned. Dari contoh saya diatas, maksudnya jika ada percobaan gagal dua kali dalam kurun 100 detik, maka ip akan dibanned selama 23600 detik.

Masih di file jail.local, masukkan rules untuk mengamankan service ssh.
[sshd]
enabled = true
port    = ssh
action = iptables-multiport[name="bannedssh", port="80,443,22,48"]
logpath = %(sshd_log)s
maxretry = 3
Rule diatas untuk mengamankan service ssh, sehingga jika ada yang mencoba melakukan bruteforce, ip penyerang akan dibanned setelah 3x gagal login.
Untuk bagian port jika kalian menggunakan port custom, ganti saja. Misal kalian menggunakan port 666 maka rulenya menjadi port = 666.

Selanjutnya kita restart fail2ban.
sudo systemctl stop fail2bansudo systemctl start fail2ban
Entah kenapa menggunakan state restart (sudo systemctl restart fail2ban) kadang tidak menimbulkan efek pada fail2ban. Harus manual dengan cara di stop lalu di start lagi. Mungkin ini bug di Ubuntu.

Untuk melakukan testing, kalian bisa gunakan VPN agar ip kalian tidak terbanned. Hidupkan VPN dan coba lakukan percobaan login di port ssh lebih dari 3x. Maka ip kalian akan terbanned.
Untuk membuka blokir ip yang terbanned, kalian login ke server lalu jalankan perintah berikut
sudo fail2ban-client set sshd unbanip 111.222.333.444
Sesuaikan sendiri ip addressnya.

Untuk service lain, seperti memblokir bruteforce pada port mysql, memblokir spam rafik pada port web server, dll, bisa kalian cek sendiri konfigurasinya di jail.conf. Lalu kalian copy ke jail.local.

Sekian tutorial kali ini, Semoga bermanfaat. Share juga ke teman temanmu agar mereka tau.