Denyhosts je doplňková ochrana SSH serveru proti Brute-force útokům. V první linii by mělo být samozdřejmě samotné SSH zabezpečení certifikátem, čemuž jsem se věnoval v tomto článku. Dle mého názoru může spustit veřejný SSH server do internetu nejlépe na portu 22 ochráněný pouze heslem jen sebevrah (ještě pojmenujte uživatele root a heslo dejte 123456). Výsledek se dostaví do pár hodin. Ale zpět k Denyhosts. Při pokusu o přihlášení k SSH, je vidět IP adresa a přihlašovací jméno v /var/log/auth.log. Pokud je několikrát chybně zadané jméno nebo heslo, tak Denyhosts odmítne spojení a udělí IP BAN na určitou dobu. Připojení klientovi zamezí tak že vytvoří pravidlo v iptables.
Instalace
sudo apt-get install denyhosts
Nastavení
Konfigurační soubor je na první pohled velmi přehledný, a tak tady zmíním jen ty opravdu důležité věci.
PURGE_DENY
určuje, zda má host dostat právo opětovně se přihlásit. Pokud je volba prázdná, tak se milost neuděluje a host už se nikdy nepřihlásí.
BLOCK_SERVICE
Určuje jakou službu chcete zablokovat. Většinou se používá sshd, ale můžete použít i volbu ALL která zablokuje všechny porty.
DENY_THRESHOLD_INVALID
Znamená, počet pokusů o přihlášení se špatným jménem, aby byl host blokován.
DENY_THRESHOLD_VALID
Znamená, počet pokusů o přihlášení se správným jménem, aby byl host blokován.
DENY_THRESHOLD_ROOT
Znamená, počet pokusů o přihlášení k účtu root, aby byl host blokován. (je dobré dát 1)
Denyhosts má také možnost synchrnizivat vaše známé adresy se zbytkem světa a blokovat tak již nahlášené případy. To se nachází v položce SYNC_UPLOAD a SYNC_DOWNLOAD. Aktuální statistiky je možné zhlédnout zde. Dále je možnost nastavit posílání emailu o zablokované adrese, ale to už určitě pochopíte z konfiguračního souboru.
Logování neúspěšných přihlášení.
Výpis IP adres které Denyhosts zablokoval.
Restart Denyhosts.
Výpis loginů které se k vám pokušeli dostat, ale neexistují.
Zdroj: http://denyhosts.sourceforge.net/faq.html
http://wiki.ubuntu.cz/SSH
sudo gedit /etc/denyhosts.conf
PURGE_DENY
určuje, zda má host dostat právo opětovně se přihlásit. Pokud je volba prázdná, tak se milost neuděluje a host už se nikdy nepřihlásí.
BLOCK_SERVICE
Určuje jakou službu chcete zablokovat. Většinou se používá sshd, ale můžete použít i volbu ALL která zablokuje všechny porty.
DENY_THRESHOLD_INVALID
Znamená, počet pokusů o přihlášení se špatným jménem, aby byl host blokován.
DENY_THRESHOLD_VALID
Znamená, počet pokusů o přihlášení se správným jménem, aby byl host blokován.
DENY_THRESHOLD_ROOT
Znamená, počet pokusů o přihlášení k účtu root, aby byl host blokován. (je dobré dát 1)
Denyhosts má také možnost synchrnizivat vaše známé adresy se zbytkem světa a blokovat tak již nahlášené případy. To se nachází v položce SYNC_UPLOAD a SYNC_DOWNLOAD. Aktuální statistiky je možné zhlédnout zde. Dále je možnost nastavit posílání emailu o zablokované adrese, ale to už určitě pochopíte z konfiguračního souboru.
Užitečné příkazy
Logování neúspěšných přihlášení.
tail /var/log/auth.log
Výpis IP adres které Denyhosts zablokoval.
tail /etc/hosts.deny
Restart Denyhosts.
sudo /etc/init.d/denyhosts restart
Výpis loginů které se k vám pokušeli dostat, ale neexistují.
awk '/Invalid user/ {print $8}' /var/log/auth.log{,.0} | sort | uniq -c
Zdroj: http://denyhosts.sourceforge.net/faq.html
http://wiki.ubuntu.cz/SSH
Související články:
Obrana SSH proti Brute-force útokům
Obrana SSH proti Brute-force útokům
Zdroj: http://denyhosts.sourceforge.net/faq.html