Internet Info, s.r.o. Lupa Root Měšec Podnikatel DigiZone Slunečnice Vitalianew Bomba Navrcholu Weblogy Jagg Woko Dobrý web Computer.cz SK: MojeLinky

Hlavní navigace

Blokujte SSH útoky pomocí DenyHosts

Pokud vlastníte či prostě jen jen spravujete nějaký ten server, pravděpodobně na něm provozujete také SSH. Pokud občas nakouknete do logů, zřejmě se zděsíte, kolikrát denně se k vám pokouší dostat někdo cizí. Dle přísloví "na hrubý pytel hrubá záplata" si jednu takovou pořádnou záplatu ukážeme.

Útoků na otevřený SSH port je na internetu skutečně hodně a zkušený admin se jimi obvykle ani nezabývá. Existuje několik různých způsobů, jak je možné se proti nim bránit. Jedním z nich je sofistikovaný nástroj DenyHosts, který dokáže automaticky bránit vaše hradby.

Co to přesně je?

Jedná se o skript, který automaticky sleduje záznamy v /var/log/secure (v Debianu /var/log/auth.log obecně ale kdekoliv) a hlídá neúspěšné pokusy o přihlášení do SSH. Pokud skript po analýze zjistí, že se mu požadavky z některého počítače zdají být dostatečně podezřelé, uloží záznam do /etc/hosts.deny, čímž do budoucna znemožní další připojování konkrétního stroje k SSH.

Program automaticky sleduje několik různých údajů jako je počet neúspěšných pokusů o přihlášení, pokusy o přihlašování k neexistujícím uživatelům, snahy o přihlášení pod uživatelem root a další. Zároveň jsou například sledovány podezřelé úspěšné pokusy o přihlášení, tedy takové, kterým předcházelo větší množství neúspěšných pokusů.

Zároveň si DenyHosts udržuje vlastní záznamy o neúspěšných pokusech o přihlášení, o nejčastěji zkoušených uživatelských jménech a podobně. Ty program sám později znovu využívá při svých analýzách nebo je možné je využít k nasazení dalších obranných řešení například pro nejčastěji napadaného uživatele.

Jak to můžu používat?

Pokud používáte unixový systém, v používání vám nic nebrání. Oficiálně DenyHosts podporuje linuxové systémy, FreeBSD, OpenBSD a Mac OS X. Obecně by ale měl běžet kdekoliv, kde je k dispozici standardní log a OpenSSH server.

Samotný skript je napsán v Pythonu, což je také jediná jeho závislost. Stáhnout jej můžete z domovské stránky projektu nebo jej najdete ve své distribuci. Je velmi pravděpodobné, že tam bude. V opačném případě stačí nainstalovat Python, stáhnout archiv s programem a spustit instalaci. Balíček má každopádně jen okolo 60 KB.

DenyHosts je možné spouštět buďto ručně, pravidelně pomocí Cronu nebo jej můžete nechat běžet jako démona. Ve všech případech si udržuje informaci o tom, kde naposledy v logu skončil a analyzuje vždy jen novější záznamy.

Každopádně budete potřebovat celý proces nastavit. To se provádí v konfiguračním souboru /etc/denyhosts.conf. Obsah je velmi jednoduchý a přehledná. První volbou SECURE_LOG určíte cestu k logu, který má být sledován a analyzován. Stejně tak je možnost nastavit konfigurační soubor pro blokaci přístupů pomocí nastavení HOSTS_DENY. Obvykle je to /etc/hosts.deny, v některých systémech se ale také můžete setkat s /etc/hosts.evil  a jinými odlišnostmi.

Volba PURGE_DENY umožňuje nastavit, zda má zablokovaný host po určité době dostat amnestii. Pokud je volba prázdná, milost se neuděluje a host je blokován trvale. Můžete ovšem vložit časový údaj v podobě čísla a přípony m, h, d, w, y (minut, hodin, dní, týdnů a let), například 2w. Za dva týdny bude blokovanému hostu opět umožněn přístup k vašemu SSH.

K předchozí volbě se váže také položka PURGE_THRESHOLD, která umožňuje zatočit s recidivisty. Udává vlastně maximální počet amnestií, které může dostat. Pokud se opakují další nekalosti, je host blokován trvale.

Položka BLOCK_SERVICE určuje název služby, který bude uveden v /etc/hosts.deny  pro blokaci. Obvykle chcete nezbednému protějšku zablokovat sshd, ale pokud chcete být přísní, můžete mu zablokovat přístup ke všem službám na vašem serveru pomocí  ALL.

Dostáváme se k volbám samotné blokace. Důležitá položka DENY_THRESHOLD_INVALID určuje, v kolika pokusech o přihlášení musí konkrétní host selhat, aby byl blokován. Jedná se o pokusy, kdy je vyplňováno už neexistující jméno uživatele. Standardně je doporučována hodnota okolo pětky. Podobně hodnota DENY_THRESHOLD_VALID určuje maximální počet neúspěšných pokusů, ale s existujícím uživatelem. Výjimkou je uživatel root. Pro toho existuje speciální hranice v položce DENY_THRESHOLD_ROOT a je obvykle nastavena na pouhý jeden pokus.

Konfigurační soubor dále pokračuje například volbami pro e-mailové reporty, které je možno automaticky zasílat administrátorovi, možnost resetovat počítadlo neúspěšných pokusů hosta při úspěšném přihlášení a volbami specifickými pro běh v režimu démona (například časový interval analýzy – obvykle 30 sekund).

Velmi užitečná je také možnost zvolit konkrétní hosty, kteří nebudou nikdy blokováni. To se hodí zejména v případě, že znáte konkrétní IP adresy strojů, ze kterých se vždy přihlašují regulérní uživatelé. Ty vepište do souboru allowed-hosts, který je v pracovním adresáři programu (konfigurační volba WORK_DIR) – obvykle /var/lib/denyhosts/. Zapisuje se jedna IP adresa na jeden řádek souboru.

Synchronizace zjištěných údajů

Za normálních okolností program funguje na lokální úrovni, sleduje dění na svém SSH serveru a blokuje lokálně pokusy o napadení a hádání hesel. Vývojáře ovšem později napadlo (přidáno od verze 2.0), že by nebylo špatné tyto informace sdílet mezi servery a zlepšit tak schopnosti blokace hostů, kteří už se o útok pokoušeli na jiném místě na světě. Proto vznikla možnost synchronizace zjištěných dat mezi různými instalacemi DenyHosts.

Tato volba je standardně vypnutá a pokud ji chcete začít používat, odkomentujte v konfiguračním souboru volbu SYNC_SERVER, která obsahuje odkaz na synchronizační server. Na ten jsou automaticky odesílána naměřená data a váš démon naopak může stahovat to, co už zjistili a zablokovali ostatní. Odesílání či přijímání dat je možné v konfiguračních volbách SYNC_UPLOAD a SYNC_DOWNLOAD zakázat.

Démon se pak periodicky připojuje a stahuje či posílá jen data, která se změnila. Odesíláte informace o všech blokovaných hostech na své straně. Naopak jste informováni o všech blokacích od ostatních uživatelů DenyHosts. Celkem je do tohoto projektu připojeno téměř 85 000 uživatelů a společně blokují přes čtvrt milionu unikátních hostů. Můžete si prohlédnout aktuální statistiky.

Závěrem

Utilita DenyHosts je velmi užitečný způsob, jak se vyhnout problémům s internetovými útoky na SSH servery. Díky synchronizaci umožňuje velmi rychle získat přehled o počítačích, které se pokoušejí automaticky hádat hesla a dostat se do vašeho systému. Pokud používáte SSH, může DenyHosts výrazně ulehčit vašemu serveru.

Petr Krčmář

Petr Krčmář

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Vystudoval elektroniku se zaměřením na počítačové systémy, nyní se zabývá médii, především těmi elektronickými.

Školení unit testování v PHP

Akademie Root
  • Naučte se psát kód, kterým předejdete většině chyb už při vývoji.
  • Získejte spustitelnou dokumentaci kódu a usnadněte začleňování práce nových kolegů.
  • Postupy školené Jiřím Kneslem šetří čas při hledání chyb!
  • Psaní testů vás bude bavit!

Detailní informace o kurzu...

Ohodnoťte jako ve škole:
Průměrná známka 2,90

Přehled názorů

iptables -m recent
Michal Ludvig 1. 9. 2009 02:54
├ 
Re: iptables -m recent
Zdenek 1. 9. 2009 06:54
│
├ 
Re: iptables -m recent
Michal Ludvig 1. 9. 2009 08:30
│
│
└ 
Re: iptables -m recent
gfhngd 1. 9. 2009 10:52
│
└ 
Re: iptables -m recent
Wrigley 2. 9. 2009 11:42
├ 
Re: iptables -m recent
faha 1. 9. 2009 07:24
├ 
Re: iptables -m recent
aa 1. 9. 2009 09:22
│
├ 
Re: iptables -m recent
faha 1. 9. 2009 11:01
│
└ 
Re: iptables -m recent
Michal Ludvig 1. 9. 2009 11:03
└ 
Re: iptables -m recent
SanTiago 2. 9. 2009 13:09
 
└ 
Re: iptables -m recent
Michal Ludvig 2. 9. 2009 13:13
 
 
└ 
Re: iptables -m recent
SanTiago 3. 9. 2009 11:37
 
 
 
└ 
Re: iptables -m recent
Michal Ludvig 3. 9. 2009 13:40
fail2ban
jirkamailto 1. 9. 2009 03:46
└ 
Re: fail2ban
. 3. 9. 2009 09:45
Re: Blokujte SSH útoky pomocí DenyHosts
Petr 1. 9. 2009 07:01
├ 
Re: Blokujte SSH útoky pomocí DenyHosts
bman 1. 9. 2009 07:42
│
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
trubicoid 1. 9. 2009 08:23
│
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
neldor 1. 9. 2009 11:02
├ 
Re: Blokujte SSH útoky pomocí DenyHosts
neldor 1. 9. 2009 10:57
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
Anče 13. 9. 2009 15:30
pouzivam, spokojnost
... 1. 9. 2009 07:26
├ 
Re: pouzivam, spokojnost
trubicoid 1. 9. 2009 08:29
│
└ 
Re: pouzivam, spokojnost
asdf 1. 9. 2009 10:56
│
 
└ 
Re: pouzivam, spokojnost
trubicoid 1. 9. 2009 11:16
└ 
Re: pouzivam, spokojnost
Jan Pejša 2. 9. 2009 13:15
Re: Blokujte SSH útoky pomocí DenyHosts
BzabA 1. 9. 2009 08:45
├ 
Re: Blokujte SSH útoky pomocí DenyHosts
NN 1. 9. 2009 08:57
│
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
trubicoid 1. 9. 2009 09:02
│
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
Aweq 1. 9. 2009 09:40
│
 
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
trubicoid 1. 9. 2009 11:20
├ 
Re: Blokujte SSH útoky pomocí DenyHosts
nemam 1. 9. 2009 09:02
├ 
Re: Blokujte SSH útoky pomocí DenyHosts
trubicod 1. 9. 2009 09:04
│
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
BzabA 1. 9. 2009 09:11
│
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
trubicoid 1. 9. 2009 10:41
│
 
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
BzabA 1. 9. 2009 16:38
│
 
 
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
trubicoid 1. 9. 2009 16:41
│
 
 
 
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
debianista 1. 9. 2009 19:35
│
 
 
 
 
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
trubicoid 1. 9. 2009 20:46
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
Petr Smid 1. 9. 2009 13:01
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
Petr Krčmář 1. 9. 2009 19:44
 
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
Přezdívka je povinná 1. 9. 2009 20:07
 
 
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
trubicoid 1. 9. 2009 20:48
Ona uplne staci "security by obscurity"...
awe_cz 1. 9. 2009 10:15
fail2ban
anydot 1. 9. 2009 10:21
├ 
Re: fail2ban
trubicoid 1. 9. 2009 21:16
│
└ 
Re: fail2ban
SanTiago 1. 9. 2009 21:52
│
 
└ 
Re: fail2ban
trubicoid 1. 9. 2009 22:23
│
 
 
└ 
Re: fail2ban
Edheldil 1. 9. 2009 23:09
└ 
Re: fail2ban
JardaP . 1. 9. 2009 21:57
 
└ 
Re: fail2ban
jano 1. 9. 2009 22:19
 
 
└ 
Re: fail2ban
JardaP . 1. 9. 2009 23:37
 
 
 
└ 
Re: fail2ban
trubicoid 2. 9. 2009 08:30
pam_tally
ch-in-A 2. 9. 2009 09:11
Re: Blokujte SSH útoky pomocí DenyHosts
pht 2. 9. 2009 10:01
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
anydot 2. 9. 2009 12:06
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
pht 2. 9. 2009 12:16
 
 
├ 
Re: Blokujte SSH útoky pomocí DenyHosts
jano 2. 9. 2009 13:20
 
 
│
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
pht 5. 9. 2009 11:17
 
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
anydot 2. 9. 2009 17:15
 
 
 
└ 
Re: Blokujte SSH útoky pomocí DenyHosts
pht 5. 9. 2009 11:18
TCP Wrappers?
kimec 5. 9. 2009 12:03
neznate nekdo neco podobneho na asterisk?
JiBr 15. 4. 12:12
└ 
Re: neznate nekdo neco podobneho na asterisk?
anydot 15. 4. 12:23
       
Zasílat nově přidané příspěvky e-mailem