Ochrana SSH démona proti útokům (1)
Jednou z možných ochran proti SSH útokům, kdy se útočník pomocí automatizovaných skriptů snaží periodicky lámat účty uživatelů s jednoduchými hesly (třeba uživatel user a heslo user), je použití iptables a programu sshdfilter.
Jak to funguje?
SSH démon zapisuje do logu neúspěšné pokusy o zalogování - typicky vypadají nějak takto:
Did not receive identification string from x.x.x.x Illegal user x from x.x.x.x Failed password for illegal user x from x.x.x.x port x ssh2 Failed password for x from x.x.x.x port x ssh2
sshdfilter je jednoduchý skript napsaný v Perlu, který tyto neúspěšné pokusy sleduje a v případě, že počet neúspěšných pokusů z jedné IP adresy překročí určitý počet (tento počet lze nastavit), tak vytvoří pravidlo do firewallu (skript využívá vlastní řetězec, takže nehrozí riziko přepsání), které bude blokovat traffic z dané IP adresy na port 22. Lze nastavit i dobu po jakou bude tento traffic z dané IP adresy blokován. Tímto způsobem lze jednoduše odfiltrovat poměrně velký počet útoků.
Instalace
Instalace v distribuci CentOS 4.3 se provede následovně:
wget http://www.csc.liv.ac.uk/~greg/sshdfilter-1.4.4.tar.gz su - cp /home/user/sshdfilter-1.4.4.tar.gz /usr/src cd /usr/src tar zxvf sshdfilter-1.4.4.tar.gz cd sshdfilter-1.4.4 perl install.pl
Ještě je potřeba ručně upravit pravidla firewallu - tedy soubor
/etc/sysconfig/iptables
, do kterého přidáme na vhodná místa následující řádky:
:SSHD - [0:0] ... -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 22 -j SSHD
Pak už stačí restartovat patřičné služby:
/etc/init.d/iptables restart /etc/init.d/sshd restart
Konfigurace
Konfigurační soubor se nachází v /etc/sshdfilterrc
.