vermin.eu.org

Specjalista IT na tru^Hopie

Entries Comments



atak brute force na vsftpd/proftpd, czyli o słowo blokowaniu

29 July, 2006 (20:18) | bezpieczeństwo, debian(ized), linux, logs | By: vermin

Sobota, godziny popołudniowe, szybki look w logi i co widzę? Gdzieś w środku nocy, jakiś dzieciak zza oceanu wybrał sobie jeden z moich serwerków w celu przetestowania swoich narzędzi. Bardzo to niefajne, bo szybkie łącze pozwoliło mu na dosłownie zalanie serwera requestami o autoryzację - do DOSa nie doszło - niemniej jest to trochę wkurzające…

O ile SSH się w miarę łatwo zabezpiecza przed zbyt duża ilością wpisów, to już serwery FTP zabezpieczyć trudniej. Z pomocą przychodzą dwa narzędzia - pierwsze z nich to znane z pakietu *sentry Logsentry, zaś drugie, nad którym się skupię - fail2ban. Obydwa działają tak samo - monitorują logi i na tej zasadzie podejmują odpowiednie działania. Obydwa mają zbliżone zalety i tą samą wadę - regexpy1. Obydwa używają /etc/deny.hosts lub iptables. Obydwu nie ma w stable ;-)

Fail2ban niestety nie znajduje się w stable - jest za to w testing i unstable, więc można go ściągnąć stamtąd lub bezpośrednio ze stron projektu Debian. Z wymogów instalacyjnych trzeba wspomnieć o pythonie i lsb-base, które na szczęście są w stable i to w odpowiednich wersjach. Po instalacji fail2ban od razu rozpoczyna działanie - niemniej dobrego admina to nie zadawala i od razu rusza do /etc/fail2ban.conf, żeby poprawić konfigurację.

Co warto zmienić? Na pewno warto dodać listę adresów, które nie będą blokowane (bo w końcu każdy może wysłać stworzone przez siebie pakiety wskazujące na dowolne IP) - opcja ignoreip. Kolejną opcją, którą warto zmienić, to czas blokady (bantime) - domyślne 10 minut to za mało - warto dać więcej, a mając fizyczny dostęp do maszyny nawet -1 (for ever). Jeśli ktoś lubi, to warto włączyć opcję powiadamiania emailem o zablokowaniu konkretnego IP (jeśli dostajemy wiadomości w stylu in-your-face, to trudniej zapomnieć, że taki niskopoziomowy mechanizm gdzieś tam sobie działa i można szybciej zdiagnozować problem). Pozostaje włączenie odpowiednich demonów, czyli zmiana enabled na true w odpowiednich sekcjach pliku konfiguracyjnego.
Domyślnie skrypt ma wpisane kilka typowych demonów - SSH (włączone domyślnie), SASL, Apache, ApacheAttacks, VSFTPD, PROFTPD, ale bazując na wyrażeniach regularnych1 można dodać dowolne inne, co jest duuużym plusem. Kolejnym plusem jest przyjemna konfiguracja iptables, którą wykonuje program - tworzy własne łańcuchy opisujące przez jaką regułę dany IP został zablokowany, co pozwala łatwiej przejrzeć logi w razie narzekań userów czy innych adminów.

1regexpy to mieszane błogosławieństwo - pozwalają na wspaniałe dostosowanie programu pod de facto dowolnego demona, niemniej pozwalają także na przemycenie, przez użycie zbyt szerokiego zakresu wyrażenia, błędów, pozwalających w tym wypadku na DOS maszyny…

Warto poczytać dodatkowo: Debian Administration

Write a comment