Zabezpieczenie przed skanowaniem FTP
Pewnego pięknego dnia pewien gostek zapuścił skaner, który przez godzinę usiłował się zalogować na następujące loginy:
access, account, admin, Administrator, backup, data, demo, ftproot, guest, local, master, oper, server, sysadm, system, test, user, web, webmaster, www
Logi urosły mi ponad 600 kilo! Potem się tłumaczył swojemu providerowi, że mu się włamano na serwer...
Aby uniknąć generowania tak dużych logów systemowych warto zastosować tu moduł iptables o nazwie ipt_recent:
modprobe ipt_recent ip_list_tot=32
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -m recent --name FTP --seconds 60 --update -j DROP
iptables -A INPUT -p tcp --dport 21 -m limit --limit 5/second --limit-burst 15 -m recent --name FTP --set -j ACCEPT
A teraz legenda:
ip_list_tot to ilość wpisów (numerów IP) na czarnej liście.
--seconds 60 oznacza, że "ban" będzie aktywny przez 60 sekund
W połączeniu z wpisem do /etc/proftpd.conf:
MaxLoginAttempts 1
który powoduje rozłączenie już po pierwszej próbie nieudanego logowania, jest to dość fajne narzędzie.
Uwaga: jeżeli gostek dostanie bana i będzie się usiłował ponownie zalogować w 59 sekundzie - czas jest liczony od nowa.
Można też zabezpieczyć w ten sposób ssh - w pliku /etc/ssh/sshd_config dodajemy:
MaxAuthTries 1
a w regułkach iptablesów zmieniamy port. Ja mam przeniesione ssh na inny port - nie chciało mi się oglądać w logach prób wejścia z użyciem brute-ssh.
Data utworzenia : 2004-10-07, data aktualizacji :2006-07-20
Komentarze:
Krzysiek
2011-07-31 19:51:06
fail2ban
A nie prosciej uzyc fail2ban? Male opoznienie jest ale do przyjecia. mozna tez w bindzie stosowac do uwalania tych co pytaja za czesto a nei maja prawa, w dovecot do zlych autoryzacji. do wszystkiego:)
danki
2009-02-22 16:53:28
denyhost
no fajowskie te rozwiazania, ale takie pytanko czy lemat zna cos takiegu jak denyhosts i co sadzi o tym rozwiazaniu.. ja osobiscie uzywam i dosc dobrze wykonuje swoje zadanie...
P.S. super stronka, duzo sie z niej nauczylem, dzieki :-)
Znam to za dużo powiedziane - wiem co robi i jak robi ale nie używam. Minusem denyhosta jest pewne opóźnienie reakcji, ponieważ musi on przeanalizować logi. Zaletą jest pamiętanie wrednych IPków i rozróżnianie błędnych prób zalogowania od próby utworzenia kilku sesji na raz.
Podrzucę jeszcze jedną nazwę - fail2ban oraz coś, co działa na innej zasadzie - http://pl.wikipedia.org/wiki/Port_knocking
dobra porada lemata:port inny niz standartowy
i najpeiej filtr ze łączyc sie mozna z jego ipka :)to taka moja porada.
MaxAuthTries 1
IMO niezbyt mądry pomysł (zmacane własnoręcznie). IIRC, jeśli klient będzie próbował kilku metod uwierzytelnienia (np. klucze, challenge-response, hasło), to normalnie po pierwszej nieudanej przejdzie do następnej. Tu odpadłby po pierwszym razie, dalej już nie próbując (efektem jest niemożność zalogowania się).
Night
2007-04-02 09:29:07
Działa, ale...
Witam. Zastosowanie metody ogranicza masta hakierow, ale, podczas 1 minuty może dojść do tylko jednego połączenia na porcie 21 (bynajmniej tak to wygląda u mnie). Można to przekształcić w taki sposób, aby w ciągu tych 60 sekund było możliwe nawiązanie 3 połączeń z jednego ip? Albo jeszcze lepiej (ale to już wątpie): żeby osoba, która już ma połącznie na porcie 21 (zalogowana do FTP) mogła bezproblemowo rozpoczynać nowe połączenia. Np. Transfer w tle w total commander.
Pozdrawiam
iptables -m recent -h
--hitcount hits For check and update commands above.
Specifies that the match will only occur if source address seen hits times.
May be used in conjunction with the seconds option.
trzeba dołączyć do pierwszej regulki blokującej - trzecia linia.