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.

Naposledy změněno: 27.6.2006 12:27