Linux szerver biztonságossá tétele fail2ban programmal

A Fail2ban egy daemon azon IP címek blokkolására amelyek jogosulatlanul próbálnak hozzáférni a szerverhez. Jellemzően a jelszavak kitalálásával az ftp-hez és ssh-hoz történő hozzáféréshez (ha a szolgáltatás fut a szerveren és elérhető lásd a VPS SSH hozzáférésének korlátozása cikket). Ez a vizsgálat folyamatosan történik és fogyasztja a szerver erőforrásait.

A fail2ban-ben megadhatja hány sikertelen kísérlet után adjon egy szabály a tűzfalhoz és mennyi ideig legyen blokkolva az IP cím. Megadható egy email cím is amelyre értesítést küld támadási kísérlet esetén.

Telepítés:

1 Ha a yum telepítve van és az RPMForge hozzá van adva, csak írja be:
yum install fail2ban
és a yum megoldja szükséges függőségeket.

2 Ha nincs yum, először le kell tölteni az rpm csomagokat (használhatja ezt a keresőt http://rpm.pbone.net/ vagy töltse le a csomagokat innen http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/ A telepítést ezután a szokásos módon kell elvégezni.

3 Használhatja a mi csomagunkat is (fail2ban.zip - letöltés) amelyben a konfiguráció módosításra került így a daemon elindítása után azonnal működik az ftp-n és az ssh-n (a konfiguráció külön a mi VPS szervereinkre módosítva). Csak telepítenie kell a daemon-t és biztosítani az automatikus indítását.
FIGYELEM: Csomagunk csak CentOS 5.5-el tesztelt, más verzióhoz az előző két pont szerint telepíthető.

Konfiguráció:
Ha nem használja a mi csomagunkat, el kell végezni néhány beállítást a következő fájlokban:

1. /etc/fail2ban/filter.d/proftpd.conf Cserélje az eredeti failregex részt (az eredeti nem működik) a következőre:

 failregex = ^(.)+proftpd(.)+[<HOST>](.)*no such user found from (.)* to (.)*$
        ^(.)+proftpd(.)+[<HOST>](.)*USER(.)*Login failed(.)*Incorrect password(.)*$
        ^(.)+proftpd(.)+[<HOST>](.)*SECURITY VIOLATION:(.)*login attempted(.)*$
        ^(.)+proftpd(.)+[<HOST>](.)*Maximum login attempts(.)*exceeded(.)*$

2. /etc/fail2ban/jail.conf Állítsa a proftp-iptables és a ssh-iptables részt a következő szerint:
 [ssh-iptables]
 
 enabled  = true
 filter   = sshd
 action   = iptables[name=SSH, port=ssh, protocol=tcp]
 logpath  = /var/log/secure
 maxretry = 3
 
 [proftpd-iptables]
 
 enabled  = false
 filter   = proftpd
 action   = iptables[name=ProFTPD, port=ftp, protocol=tcp]
 logpath  = /var/log/secure
 maxretry = 5

Ebben az esetben az IP címek blokkolásra kerülnek 3 sikertelen SSH és 5 sikertelen FTP kísérlet után.

Start, autostart és működés ellenőrzése:


A szolgáltatás ezzel a paranccsal indítható:

 /etc/init.d/fail2ban start

A szolgáltatás automatikus indulásának biztosításához (adja meg a következő parancsot):

 chkconfig --add fail2ban
 chkconfig fail2ban on

A funkció ellenőrzéséhez próbáljon meg többször szándékosan rossz jelszóval belépni az FTP klienssel. Miután elérte az értékhatárt IP címe ideiglenesen blokkolásra kerül. A blokkolás megszűnik a /etc/fail2ban/jail.conf fájlban beállított (alapértelmezett 10 perc) idő után (bantime  = 600). Az információk a műveletekről megtalálhatók a logokban /var/log/messages vagy /var/log/fail2ban.log (beállítás a /etc/fail2ban/fail2ban.conf fájlban - logtarget tétel)

Értesítések:
A program lehetővé teszi az információk elküldését email címére. Ezt meg kell adni a megfelelő szűrő ([ssh-iptables] vagy [proftpd-iptables]) action részében a következő sorral:

 sendmail[name=SSH, dest=EMAIL_PRIJEMCE, sender=fail2ban@VASEDOMENA]

FIGYELEM! A küldőnek és a feladónak létező email címet kell megadnia.

Az ssh rész így fog kinézni:

 [ssh-iptables]
 
 enabled  = true
 filter   = sshd
 action   = iptables[name=SSH, port=ssh, protocol=tcp]
        sendmail[name=SSH, dest=admin@domena.cz, sender=fail2ban@mujvps.cz]
 logpath  = /var/log/secure
 maxretry = 3

A fail2ban használatával több log is ellenőrizhető - ezeket engedélyezni kell a jail.conf fájlban. Fontos, hogy állítsa be a megfelelő maszkot (regexp) a /etc/fail2ban/filter.d/* -ban és a log elérési útját. További információkért tekintse meg a dokumentációt.

Add Feedback