Bezpieczeństwo to rzecz ważna i tutaj nie podlega to dyskusji. Należy dbać o bezpieczeństwo swoich maszyn a co za tym idzie swoich danych zarówno na komputerach domowych jak i na serwerach. Te ostatnie mogą być bardziej narażone na różnorodne ataki, serwer sieciowy jest zawsze podłączony do sieci i może zawierać interesujące dla innych informację. Jest też doskonałym narzędziem na przeprowadzania dalszych ataków na inne serwery i komputery, dlatego może stać się dla kogoś łakomym kąskiem.
DenyHosts jest to narzędzie służące do zapobiegania włamaniom na serwery. Wykrywa on ataki brute force, monitoruje nieprawidłowe próby logowania, zapisuje zdarzenie do dziennika oraz blokuje IP z którego przeprowadzany był atak.
Instalacja w Debianie/Ubuntu
sudo apt-get install denyhosts
Konfiguracja
Po instalacji demon uruchamia się automatycznie i jest już wstępnie skonfigurowany. Działa i spełnia swoje zadanie, należy go jednak dostosować do swoich potrzeb. Plik konfiguracyjny znajduje się w /etc/denyhosts.conf i potrzeba go edytować:
sudo vim /etc/denyhosts.conf
Ważne ustawienia:
Sekcja PURGE_DENY, w niej ustawiamy po jakim czasie blokowane IP ma być usuwane z czarnej listy. Domyślnie jest ustawione:
PURGE_DENY =
Co oznacza, że IP blokowane jest na stałe i nie są usuwane z czarnej listy. Myślę, że należy tak zostawić.
BLOCK_SERVICE, tutaj ustawiamy czy dany IP ma być blokowany tylko dla SSH czy dla wszystkich usług. Domyślnie ustawione jest blokowanie tylko SSH, więc warto zamienić:
BLOCK_SERVICE = sshd
należyBLOCK_SERVICE = ALL
DENY_THRESHOLD_INVALID, tutaj ustawiamy po ilu nie udanych próbach logowania IP ma zostać zbanowane. Domyślnie jest to 5 nieudanych prób:
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID, ta opcja również odpowiada za ustawienie ilości nieudanych logowań po których banowane ma być IP, z tym że tyczy się kont które istnieją w /etc/passwd. Domyślnie jest to 10 prób:
DENY_THRESHOLD_VALID = 10
DENY_THRESHOLD_ROOT w tej sekcji ustawiamy można ustawić, czy mają być od razu blokowane próby zalogowania na konto root. Jeśli ktoś będzie chciał się zalogować na konto root, jego IP zostanie zbanowane. Domyślnie jest to włączone:
DENY_THRESHOLD_ROOT = 1
DENY_THRESHOLD_RESTRICTED włączenie tej opcji powoduje blokowanie IP po próbie zalogowania się przy użyciu loginu wymienionego w pliku restricted-usernames. Domyślnie włączone:
DENY_THRESHOLD_RESTRICTED = 1
SYNC_SERVER bardzo interesująca opcja, po jej włączeniu DenyHosts będzie pobierał bazę blokowanych IP z serwera (pamiętaj botnety nie śpią :P heise-online.pl) domyślnie opcja ta jest wyłączona, jednak warto ją włączyć, wystarczy odkomentować:
#SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL opcja ta odpowiada za częstotliwość synchronizacji bazy blokowanych IP (użyteczna tylko w przypadku włączenia SYNC_SERVER). Należy odkomentować:
#SYNC_INTERVAL = 1h
SYNC_UPLOAD opcja ta zezwala na wysyłanie do serwera naszej bazy blokowanych IP. Można włączyć to przez odkomentowanie:
#SYNC_UPLOAD = yes
SYNC_DOWNLOAD ustawienie to zezwala na pobieranie listy zbanowanych IP, należy włączyć to poprzez odkomentowanie:
#SYNC_DOWNLOAD = yes
Warto również skonfigurować sekcje ADMIN_EMAIL, SMTP_HOST, SMTP_USERNAME i SMTP_PASSWORD:
DenyHosts na denyhosts.sourceforge.net, inne oprogramowanie tego typu: Fail2ban fail2ban.org, BlockHosts aczoom.com.
22 sierpnia, 2010 at 10:44
Hm, nie wystarczy zezwolić tylko na logowanie używając klucza publicznego?
22 sierpnia, 2010 at 10:46
Brutal force?!
A czyszczenie listy się czasem przydaje. Nie zawsze jest KVM, a mieć zablokowany dom0 to lipa.
22 sierpnia, 2010 at 12:11
Oczywiście, że brute force :F
22 sierpnia, 2010 at 10:57
@ike wystarczy wpisać jakiegoś hosta na whitelistę denyhosts ;-)
22 sierpnia, 2010 at 11:49
"oraz blokuje IP z którego przeprowadzany był atak.
atakom"
atakom?
22 sierpnia, 2010 at 12:00
Poprawiłem, coś mi się tam wkleiło przypadkiem przy wrzucaniu wpisu do WP, pisałem go w gedit ;>
22 sierpnia, 2010 at 13:20
Opis “port knocking-u” fajnie jeszcze do nowego wpisu albo tego dopisać.. :]
24 sierpnia, 2011 at 11:18
Dziękuję za poradnik :)
19 marca, 2014 at 22:19
wystarczy zmienic port ssh i tyle