Konfiugracja fail2ban

W ports pojawił się bardzo fajny 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 CVS):

   1 /usr/local/etc/fail2ban/fail2ban.local
   2 /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):

action.d/ipfw.conf

cd /usr/local/etc/fail2ban/action.d
patch -p < ~wtp/scripts/fail2ban/ipfw.conf.patch

filter.d/ssh.conf

cd /usr/local/etc/fail2ban/filter.d
cp bsd-sshd.conf sshd.conf
patch -p < ~wtp/scripts/fail2ban/sshd.conf.patch

Uruchomienie demona

mkdir -p /var/log/fail2ban/ /var/db/fail2ban
echo 'fail2ban_enable="YES"' >> /etc/rc.conf
echo 'fail2ban_flags="-x"' >> /etc/rc.conf

/usr/local/etc/rc.d/fail2ban start

# powinno byc widac regule 64000 zawierajaca table(22)
ipfw show