fail2ban to skrypt napisany w pythonie, który powoduje dopisywanie regułek blokujących dla adresów IP, które próbują atakować serwer.
Konfiguracja globalna
Konfiguracja globalna to dwa pliki (umieszczone w repozytorium skryptów):
/usr/local/etc/fail2ban/fail2ban.local
/usr/local/etc/fail2ban/jail.local
Jail
Nie należy odnosić tego do mechanizmu jail(8). Jest to raczej sparowanie akcji oraz sposobu filtrowania wraz z ustawieniami, jaki plik logu należy przeglądać.
Akcje
Akcje (czyli co robić, jeżeli wystąpi zdarzenie) zapisane są w podkatalogu action.d/. Każda usługa (np. bsd-ipfw) jest zapisany w stosownym pliku .conf.
Filtry
Co należy filtrować (REGEXPy), których należy poszukiwać w logach, aby uruchomić akcję banowania.
Poprawki dla FreeBSD
Niestety fail2ban powstał głównie z myślą o Linuxie oraz iptables. Dlatego też trzeba odpowiednio połatać konfigurację specyficznie dla FreeBSD. Oto różnice (patche). Całość została umieszczona w repozytorium skryptów, tak więc po zainstalowaniu odpowiedniego Makefile można wydać polecenie:
cd /usr/local/etc/fail2ban/
make patch start
Uruchomienie demona
Przygotowanie katalogów oraz pliku /etc/rc.conf:
mkdir -p /var/log/fail2ban/ /var/db/fail2ban
echo 'fail2ban_enable="YES"' >> /etc/rc.conf
echo 'fail2ban_flags="-x"' >> /etc/rc.conf
Właściwe uruchomienie:
cd /usr/local/etc/fail2ban/
make start
oraz sprawdzenie poprawności kopnfiguracji:
cd /usr/local/etc/fail2ban/
make show
# wylistowanie zawartości table(22)
make list
Źródła w sieci internet
url1
url2
url3
url4