Fail2ban narzędzie niezbędne dla administratora

Fail2ban narzędzie niezbędne dla administratora Unix. Nie tylko administrator poczty ale każdego systemy opartego na *nuxach. Pewnie większość miała lub ma do czynienia z tym programem wiec nie będzie to bardzo szczegółowy opis tego programu

Cele

Program fail2ban ma za zadanie czytać na bieżąco pliki (najczęściej są to logi). na podstawie zdefiniowanych wzorców w plikach można podjąć działania. Wielką siłą programu jest możliwość definiowania własnych wzorców i działań. Daje to ogromne możliwości filtrowania zdarzeń i podejmowania działań związanych z nimi.

Trzeba pamiętać o ograniczeniach programu. Po pierwsze logi zawsze są generowane z jakimś opóźnieniem wiec odczytanie wzorca zajmie chwile. Drugi to reakcja programu która też zajmuje chwilę.

Instalacja

Instalacja programu jest prosta. We wszystkich dystrybucjach znajdują się pakiety tego programu. W zależności od dystrybucji instalujemy aptitude, yum,apt lub czymś innym.

Konfiguracja

Główny plik konfiguracyjny to /etc/fail2ban/jail.conf. Omówię teraz pokrótce zmienne tego pliku.

Lista domyślnych wartości dla zdefiniowanych sekcji. W każdej sekcji można zdefiniować indywidualnie te wartości

ignoreip -lista ignorowanych ip dla których nie będą podejmowane działania. Dobrze dopisać do tej sekcji IP siedziby.

bantime – czas na jaki adres IP jest blokowany(w sekundach)

maxretry i findtime podjęcie działania jeśli wzorzec zostania znaleziony maxretry razy w ciągu findtime sekund

banaction jaką domyślna akcję z podejmuje system, Domyślnie można ustawić

iptables-multiport co znaczy blokowanie kilku portów (np imap i imaps)

Każde z tych wartości możemy zmieniać indywidualnie w zależności od wzorca.

Sekcje.

To najważniejsza część tego pliku. Definiujemy tutaj działania jakie należy podjąć dla każdego pliku. Omówienie przykładowej sekcji.

[ssh-iptables]
#enabled  = false
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
#          mail-whois[name=SSH, dest=yourmail@mail.com]
#logpath  = /var/log/sshd.log
logpath  = /var/log/auth.log
maxretry = 5

W nawiasach [] nazwa sekcji w tym przypadku ssh-iptables

enabled – czy ma zostać włączona czy nie dana skecja

filter – nazwa filtru. w tym przypadku filtr sshd.conf w katalogu filter.d  Filtry będą omówione w następnym punkcie.

action– podjęte działania czyli iptables dla portu ssh w protokole tcp. Podjęcie działania iptables.conf z katalogu actions.d

logpath – plik jaki ma być obserwowany

maxretry – zmienna omówiona wcześniej tu jak widać zmieniona dla tej sekcji.

Filtry

W filtrach definiujemy wychwytywanie zdarzeń w plikach obserwowanych.

Np w pokazywanym przykładzie może być w pliku /etc/fail2ban/filter.d/sshd.conf

failregex = Authentication failure for .* from <HOST>
            Failed [-/\w]+ for .* from <HOST>
            ROOT LOGIN REFUSED .* FROM <HOST>
            [iI](?:llegal|nvalid) user .* from <HOST>

failregex – wzorce (każdy w osobnej linijce) zdefiniowane w postaci wyrażeń regularnych. Bardzo przydatna zmienna <HOST> która przechwytuje adres IP

W pierwszej linijce przechwytujemy adres IP jeśli w pliku logu pojawi się tekst Autherntication failure for itd.

Trzeba się zaznajomić z wyrażeniami regularnymi aby móc w pełni korzystać z tego programu.

Podsumowując przykład chronimy i blokujemy adresy IP jeśli w pliku /var/log/auth.log pojawi się np tekst z Autherntication failure

Więcej o konfiguracji programu fail2ban znajduje się na stronie Ulos w w tym artykule .

I oczywiście na głównej stronie fail2ban

fail2ban można użyć tez do zwalczania spamu ale o tym w następnych odcinkach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *