Denyhosts

Każdy kto posiada odpalony deamon SSH oraz publiczny IP z pewnością zauważył w logach mnóstwo prób dostania się na ‘konta systemowe’. Owe próby to nic innego jak skany wykonywane przez boty w celu znalezienia/utworzenia maszyn zombie. Przykład:

Jan 4 22:17:38 [sshd] Invalid user staff from 213.35.194.206
Jan 4 22:17:44 [sshd] Invalid user sales from 213.35.194.206
Jan 4 22:17:51 [sshd] Invalid user recruit from 213.35.194.206
Jan 4 22:17:58 [sshd] Invalid user alias from 213.35.194.206
Jan 4 22:18:04 [sshd] Invalid user office from 213.35.194.206
Jan 4 22:18:08 [sshd] Invalid user samba from 213.35.194.206
Jan 4 22:18:17 [sshd] Invalid user tomcat from 213.35.194.206
Jan 4 22:18:25 [sshd] Invalid user webadmin from 213.35.194.206

No dobra, jak sobie z tym poradzić? Otóż istnieje malutki deamon, który wychwytuje takie ‘zapytania’ a następnie skutecznie odcina delikwenta od naszego SSHD czy nawet całej maszyny. Mowa oczywiście o tytułowym DenyHosts.

Sposób działa jest trywialny, DenyHosts analizuje logi SSHD i gdy zauważy “break-in attempt” to odcina dostęp do naszego systemu przy pomocy pliku /etc/hosts.deny. Niezbyt eleganckie ale za to dużo prostsze od zaawansowanych aplikacji typu Snort. Instalacja to dosłownie 3 minuty:

# emerge denyhosts
# vim /etc/denyhosts.conf
# rc-update add denyhosts default
# /etc/init.d/denyhosts start

Sam konfig jest bardzo czytelny i nikt nie powinien mieć problemów z ustawieniem tych paru zmiennych. Klik, klik, 3 minuty i voila:

Jan 4 22:18:38 [sshd] refused connect from 213-35-194-206-dsl.plus.estpak.ee (213.35.194.206)

Sam programik mimo małych gabarytów ma całkiem niezłe możliwości, zajrzyjcie na oficjalną strone projektu po więcej informacji.

9 Responses to “Denyhosts”


  1. Gravatar Icon 1 rozie Feb 6th, 2007 at 9:37 am

    Ja korzystam z knockd. Domyślnie SSH jest zablokowane, natomiast po otrzymaniu określonej sekwencji pakietów na określonych portach, otwierany jest port SSH dla danego IP. Wydaje mi się lepsze, bo po pierwsze, jest to dodatkowy poziom zabezpieczenia. Po drugie, jeśli ktoś zna IP z którego chcesz się dostać na maszynę z uruchomionym denyhosts, to stosunkowo prosto może Ci to uniemożliwić.

  2. Gravatar Icon 2 Bodek Feb 6th, 2007 at 12:13 pm

    Ja sobie z takimi próbami wejścia poradziłem w inny sposób, nie korzystając z żadnych mniej lub bardziej zaawansowanych rozwiązań. Po prostu zmieniłem port na którym nasłuchuje sshd na bardzo wysoki i egzotyczny. Sposób dobry jak się używa SSH tylko do administracji jakąś maszyną a nie do udostępniania shella.

    rozie: Co do Denyhosts to w FAQ napisali, że można zabezpieczyć numer IP przed zablokowaniem.

  3. Gravatar Icon 3 prim Feb 6th, 2007 at 5:24 pm

    A jeśli ktoś nie chce dodatkowego demona, to można pobawić się regułkami iptables np.
    iptables -A INPUT -p tcp –dport 22 -m recent –rcheck –seconds 60 –hitcount 4 –name SSH -j LOG –log-prefix “S
    SH_Attack: ”
    iptables -A INPUT -p tcp –dport 22 -m recent –update –seconds 60 –hitcount 4 –name SSH -j DROP
    iptables -A INPUT -p tcp –dport 22 -m state –state NEW -m recent –set –name SSH -j ACCEPT
    W ten sposób blokowane są adresy hostów, które przekroczą liczbę 4 prób połączeń w ciągu jednej sekundy.

  4. Gravatar Icon 4 xenix Feb 10th, 2007 at 1:29 pm

    Jeżeli piszecie o komputerach domowych lub małych serwerach ssh/ftp/www, to jest to przerost formy nad treścią. Zacząłem radzić sobie z tym w taki sposób:

    12:02:01 root@pinkfloyd:~ cat /etc/hosts.deny
    #
    # hosts.deny
    #
    ALL : ALL

    12:02:06 root@pinkfloyd:~ cat /etc/hosts.allow
    #
    # hosts.allow
    #
    ALL : 192.168.
    ALL : 212.33.
    ALL : .pl
    ALL : .sk
    ALL : elpos.net

    Jeżeli chodzi o komputer domowy lub serwer z małą liczbą użytkowników, jest to rozwiązanie idealne. .sk zostawiłem sobie jako furtkę (mam na Słowacji 2 serwery), gdybym kiedyś musiał pracować na maszynie z innej puli adresow i chciał się podłączyć do domu.

    Na serwerach używam regułek iptables. Po 3 nieudanych próbach zalogowania adres IP jest blokowany na 15 minut (ataki nie trwają z reguły dłuzej niż 5).

  5. Gravatar Icon 5 mh Feb 10th, 2007 at 3:29 pm

    U mnie pracuje denyhost, autentykacja za pomoca kluczy i praca na IPv6.

  6. Gravatar Icon 6 Anonymous Jul 20th, 2007 at 6:39 pm

    Nie żebym się zbytnio czepiał ale przedstawiona tutaj metoda (użycie logów do wykrycia atakujących) nie jest do końca bezpieczna:

    http://www.ossec.net/en/attacking-loganalysis.html

  7. Gravatar Icon 7 Anonymous Jul 20th, 2007 at 6:41 pm

    Oops! Wordpress nie akceptuje UTF-8 :|

  8. Gravatar Icon 8 Apaczus Sep 21st, 2007 at 8:22 pm

    Mam problem z Errno 17
    [code]
    wigwam DenyHosts-2.6 # /usr/bin/denyhosts -c /etc/denyhosts.conf
    DenyHosts could not obtain lock (pid: 20395)
    [Errno 17] File exists: ‘/var/run/denyhosts.pid’
    [/code]

    może ktoś pomóc??

  9. Gravatar Icon 9 propediotika Nov 19th, 2007 at 7:43 pm

    Just delete /var/run/denyhosts.pid and then run denyhosts again.

Leave a Reply