Tartalom
Ismertető
A Fail2Ban egy behatolás megelőzési program, amely védi a szerver számítógépeket a brute-force típusú támadásoktól. Python programnyelvben fejlesztették ki, és a POSIX rendszereken fut, ahol van csomagvezérlő rendszer, vagy helyileg telepített tűzfal, mint például: iptables, TCP Wrapper.
A Fail2Ban a log fájlokat (pl.: /var/log/auth.log, /var/log/apache/access.log, stb) felügyeli, amiken különböző szűrő szkripteket futtatva mintákat keres a támadások, illetve a próbálkozások felderítésére. Ha a log fájlban a szűrőkben meghatározott darabszámú mintákat megtalálja, akkor a rendszer tűzfalát használva letiltja a támadó IP-címét a megadott időpontig. Ezek a minták lehetnek például belépési kísérletek a különböző szerver szolgáltatásokba (FTP, SSH, SMTP, stb), vagy akár az Apache-on keresztül próbál valaki támadásokat végrehajtani a web szerver ellen. A konfigurációs fájlokban lehet meghatározni a próbálkozások számát, és az időszeletet, amin belül össze kell gyűlnie a megadott mintáknak, és hogy mennyi ideig legyen érvényben a blokkolás, hogy a program védelmi rendszere működésbe lépjen.
A Fail2Ban alapvetően úgy van konfigurálva, hogy a blokkolt támadásokat a megadott idő elteltével feloldja, hogy ne zárhasson ki valódi kapcsolatokat, amik átmenetileg rosszul lettek beállítva. Azonban általában néhány percnyi tiltási idő elegendő ahhoz, hogy megakadályozza a hálózati kapcsolat elárasztását a rosszindulatú kísérletektől, valamint a további próbálkozásoktól.
A védelmi rendszer többféle műveletet hajthat végre, ha egy rosszindulatú IP-címet észlel:
- Frissítheti a tűzfal szabályait (pl Netfilter, iptables)
- TCP Wrapper hosts.deny tábláját módosíthatja
- Email értesítéseket küldhet
- Bármi egyebet végrehajthat, amit egy Python szkriptben el lehet végezni.
Így tehát a rendszergazdák meghatározhatják, hogy az adott támadási típusok esetén milyen műveleteket hajtson végre a program.
Az alapkonfiguráció tartalmazza az Apache, Lighttpd, sshd, vsftpd, gmail, Postfix és a Courier Mail szerverek szűrőit. A szűrőkben reguláris kifejezésekkel lehet meghatározni a nem kívánatos tevékenységek mintáit. A szűrő és a hozzá tartozó művelet kombinációja "Jail" (börtön) -ként ismert, ami meghatározza, hogy mi történjen a rosszindulatú IP-címmel. Az alapkonfigurációval szállított Jail-eken kívül létrehozhatók további Jail beállítások, amik olyan hálózati tevékenységhez kapcsolódnak, amelyek naplófájlokat hoznak létre. Ezáltal a Fail2Ban hatékonyan együtt tud működni a legtöbb hálózati szolgáltatással.
Jail-ok
Az alapkonfiguráció jail beállításai a /etc/fail2ban/jail.conf fájlban vannak definiálva, amik tetszés szerint módosíthatók. Azonban a rendszer a fájl mellett kínál még egy egy felülíró fájlt is: /etc/fail2ban/jail.local, amiben célszerűbb elvégezni az egyedi beállításokat (eredetiek módosítása, újak felvitele), és az eredetieket érintetlenül hagyni. Így bármilyen hiba esetén könnyen visszaállítható az eredeti beállítás.
Ezekben a jail fájlokban egy bejegyzés jellemzően így néz ki:
[apache] enabled = true port = http,https filter = apache-auth logpath = /var/log/apache*/*error.log findtime = 3600 maxretry = 3 bantime = 86400
Ahol a szögletes zárójelben kell meghatározni a szekciót, amiről szól a beállítás. Ezt követően jönnek a paraméterek:
- enabled: Engedélyezve van-e a szűrőszabály (jail)
- port: Mely portokat figyeli
- filter: szűrőfájl neve.
- logpath: Ebben a log fájlban keresi a mintákat.
- findtime: Ekkora időszeletet figyel, ebben kell összegyűlnie a meghatározott számú mintának
- maxretry: És ennyi a meghatározott maximális mintaszám a legelsőt követően.
- bantime: Tiltás időtarama, másodpercekben meghatározva
A szűrőfájlok pedig a /etc/fail2ban/filter.d könyvtárban tárolódnak, innen olvassa be őket a rendszer.
A Fail2Ban tehát a Linux szerverek védelmi vonalának igen fontos része, aminek a segítségével hatékonyan lehet felvenni a harcot a támadások ellen.
Kapcsolódó tartalom:
- Fail2Ban (manual és súgó oldal)
- Hogyan engedélyezzük a Fail2Ban program szűrőit az ISPConfig-os szerverkörnyezetben
- Hogyan oldjuk fel blokkolt IP címünket, ha kitiltottuk magunkat szerverünk valamelyik szolgáltatásából
- SSH védelem erősítése további Fail2Ban szűrőmintával a Debian 8 (Jessie) rendszeren
- Hogyan tartsuk távol szerverünk weboldalaitól a nem kívánatos robotokat
- Hogyan védekezzünk az "Access denied for user root@ip-cím (using password: YES/NO)" típusú adatbázis kiszolgálónkat érő támadásokkal szemben a Fail2Ban segítségével
- Mit tegyünk, ha a Matomo webanalitikai rendszerünk "AH01630: client denied by server configuration" típusú Apache hibákat generál, ami miatt a Fail2Ban letiltja az IP-címünket?
- Hogyan védekezzünk a nagy mennyiségben érkező 404 vagy egyéb 4xx HTTP hibakódokat eredményező támadásokkal szemben Fail2Ban segítségével
- 275 megtekintés