Wydrukuj tę dokumentację Pokaż jako slajdy

Konfiguracja fail2ban

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

fail2ban dla jails

Mechanizm jail(8) nie pozwala, aby reguły firewalla były uruchamiania wewnątrz jail. Dlatego też, fail2ban należy uruchomić na głównym host ("serwerze matce"). Należy tylko wziąć pod uwagę odpowiednie pliki do monitorowania. Np.:

# definicja monitorowania SSHd
#
[sshd-ipfw]
enabled  = true
filter   = sshd
action   = ipfw[localhost=31.179.155.109]
logpath  = /usr/jails/smtpd.nss.local/var/log/auth.log
ignoreip = 127.0.0.1 ...


{i}  (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.