Panduan Instalasi Fail2Ban
- Sebelum melakukan instalasi pastikan daftar package telah diperbaharui dari repositori, lalu lakukan instalasi fail2ban
sudo apt update sudo apt install fail2ban -y
- Untuk melakukan konfigurasi secara aman, buatlah salinan file konfigurasi utama yang nantinya akan digunakan
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Memulai konfigurasi pada file utama hasil dari salinan sebelumnya
sudo nano /etc/fail2ban/jail.local
- Ikuti tahapan panduan berikut untuk implementasi fail2ban pada ssh, nginx dan apache
Penjelasan singkat fungsi syntax pada konfigurasi :### Temukan syntax berikut dan ubah atau sesuaikan ### Apabila telah dipastikan syntax tidak ditemukan maka dapat ditambahkan secara manual [DEFAULT] bantime = 60m findtime = 10m maxretry = 5 backend = auto ignoreip = 127.0.0.1/8 ::1 10.0.0.0/8 167.205.0.0/16 103.107.4.0/22 # ignoreip yang digunakan pada konfigurasi merupakan IP Internal ITB (optional) ## Konfigurasi untuk ssh [sshd] enabled = true port = ssh logpath = %(sshd_log)s backend = systemd ## Konfigurasi untuk nginx web server [nginx-http-auth] enabled = true port = http,https logpath = /var/log/nginx/*error.log [nginx-botsearch] enabled = true port = http,https logpath = /var/log/nginx/*access.log ## Konfigurasi untuk apache web server [apache-auth] enabled = true port = http,https logpath = /var/log/apache2/*error.log
bantime Durasi pemblokiran IP findtime Jangka waktu untuk menemukan anomali maxretry Batas maksimal kuantitas anomali yang ditemukan backend Cara fail2ban membaca log logpath Lokasi file log pada direktori yang ditujukan untuk dipantau oleh fail2ban ignoreip Menghiraukan anomali dari IP yang didaftarkan - Setelah konfigurasi selesai disesuaikan, tutup dan simpan konfigurasi, lalu mulai dan aktifkan fail2ban
sudo systemctl enable fail2ban sudo systemctl start fail2ban sudo systemctl status fail2ban
- Setelah memastikan fail2ban telah aktif, pastikan untuk jail yang sebelumnya sudah dikonfigurasi telah aktif
sudo fail2ban-client status # Untuk pengecekan lebih detail dapat dilakukan pada status jail yang lebih spesifik sudo fail2ban-client status <sshd | nginx-http-auth | nginx-botsearch | apache-auth>
- Untuk melihat hasil kinerja dari fail2ban dapat dilihat melalui status jail dan juga melalui log fail2ban
# Melihat melalui status jail root@username:/home/<username># sudo fail2ban-client status <jail> Status for the jail: <jail> |- Filter | |- Currently failed: xx # anomali yang ditemukan | |- Total failed: xx # total anomali yang ditemukan | - File list: /var/log/xxx/xxx.xxx # log path yang dipantau oleh fail2ban pada jail - Actions |- Currently banned: xx # jumlah ip yang sedang dalam keadaan ban |- Total banned: xx # total jumlah ip yang ter-ban |- Banned IP list: xxx.xxx.xxx.xxx # list ip yang sedang dalam keadaan ban # Melihat melalui log sudo tail -f /var/log/fail2ban.log
Untuk konfigurasi yang telah dilakukan merupakan konfigurasi default secara umum dimana filter yang digunakan telah disediakan oleh fail2ban. path filter : /etc/fail2ban/filter.d/