|
|
|
|
|
Ochrana SSH démona proti útokům (4)Způsobů jak ochránit SSH démona proti útokům je mnoho. Jednou z dalších možností jak zabránit "brute force" útokům je využití modulů PAM (Pluggable Authentication Modules), konkrétně pak "auto blacklist" modulu pam_abl. Jak to funguje?
Jednoduše řečeno - PAM je systém knihoven, které jednotlivé programy
(např. My tedy do procesu autentizace jednoduše vložíme ještě výše zmíněný modul pam_abl, který poskytuje možnost automaticky přidat do black listu ty počítače (IP adresy nebo jejich názvy) a uživatele, kteří se opakovaně neúspěšně pokusili o přihlášení (jinak řečeno překročili limit neúspěšných přihlášení uvedený v konfiguračním souboru) do systému přes SSH protokol. Tento způsob funguje trochu jinak než blokování s využitím iptables (např. pomocí sshdfilteru). Uživateli nezamezíme přístup k ssh démonu, ale veškeré jeho další pokusy o přihlášení do systému přes SSH protokol budou neúspěšné i kdyby zadal správné uživatelské jméno a heslo. Toto někomu nemusí vyhovovat, každopádně je to stejně účinná ochrana jako blokování přístupu s využítím IP filtru iptables. Můžeme nastavit i dobu po jejímž uplynutí bude záznam z black list databáze automaticky odstraněn, stejně jako tomu je i u sshdfilteru. Modul pam_abl lze použít pro jakýkoliv program využívající pro autentizaci uživatele PAM, tzn. kromě SSH démona jej můžeme využít např. pro FTP démona vsftpd, pro blokování lokálně přihlašovaných uživatelů a podobně. NastaveníDag Wieers nám opět ušetřil práci, takže instalace modulu pam_abl bude velice jednoduchá a pokud máte nastaven jeho repozitář RPMForge, tak vám pro instalaci bude stačit následující příkaz: yum install pam_abl
Nejprve přidáme modul pam_abl do konfiguračního souboru, který využívá
SSH démon pro PAM autentizaci. Tento soubor se v CentOSu nazývá
#%PAM-1.0 auth required pam_abl.so config=/etc/security/pam_abl.conf auth include system-auth account required pam_nologin.so account include system-auth password include system-auth session optional pam_keyinit.so force revoke session include system-auth session required pam_loginuid.so
Konfigurační soubor modulu pam_abl, který leží v souboru
# /etc/security/pam_abl.conf # debug host_db=/var/lib/abl/hosts.db host_purge=2d host_rule=*:10/1h,30/1d user_db=/var/lib/abl/users.db user_purge=2d user_rule=!ondra:10/1h,30/1d
Direktiva host_rule=*:10/1h,30/1d Výše uvedené pravidlo začne blokovat přihlášení z počítače ze kterého bude 10 neúspěšných pokusů o přihlášení v průběhu jedné hodiny nebo 30 neúspěšných pokusů v průběhu jednoho dne. user_rule=!ondra:10/1h,30/1d Výše uvedené pravidlo začne blokovat přihlášení jakéhokoliv uživatele (kromě uživatele ondra) na něhož bude 10 neúspěšných pokusů o přihlášení v průběhu jedné hodiny nebo 30 neúspěšných pokusů v průběhu jednoho dne. Podrobnější popis pravidel, jejich syntaxi a další příklady pravidel naleznete v dokumentaci k modulu pam_abl.
Pokud máte vše správně nastavené, tak by se vám při překročení zadaného počtu
neúspěšných pokusů o přihlášení přes SSH protokol za danou časovou
jednotku měl v logu Dec 15 18:23:54 tachecn pam_abl[8892]: Blocking access from www.tachec.org to service sshd, user ondra Součástí RPM balíčku pam_abl je i stejnojmenný nástroj, který slouží k výpisu blokovaných počítačů z databáze a případně ke smazání počítačů či užavatelů (tedy ke zrušení blokování) z této databáze.
pam_abl -v
Reading config from /etc/security/pam_abl.conf
Failed users:
ondra (1)
Sat Dec 15 19:13:10 2007
Failed hosts:
www.tachec.org (1)
Sat Dec 15 19:13:10 2007
Vypíše seznam neúspěšných přihlášení včetne data a času, kdy k neúspěšnému přihlášení došlo.
Pokud bych chtěl zrušit blokování například pro celou doménu tachec.org,
tak to s pomocí příkazu pam_abl -v --okhost=*.tachec.org Reading config from /etc/security/pam_abl.conf Deleted 1 item
Naposledy změněno: 15.12.2007 19:20
|
|
|
© 2006-2008 o.k.
|
|