Hogyan állítsunk be egy IPS-t (Fail2ban) a különböző támadások elleni védelem érdekében
Az IPS vagy Intrusion Prevention System egy olyan technológia, amelyet a hálózatbiztonságban használnak a hálózati forgalom vizsgálatára és a különböző támadások megelőzésére a rosszindulatú bemenetek észlelésével. A rosszindulatú bemenetek észlelése mellett, mint ahogy azt a Behatolásészlelő rendszer teszi, megvédi a hálózatot a rosszindulatú támadásoktól. Megakadályozhatja a hálózatot a brute force, a DoS (szolgáltatásmegtagadás), a DDoS (Distributed Denial of Service), az exploitok, a férgek, a vírusok és más gyakori támadások ellen. Az IPS közvetlenül a tűzfal mögött található, és riasztásokat küldhet, rosszindulatú csomagokat dobhat el, és blokkolhatja a sértő IP-címeket. Ebben az oktatóanyagban a Fail2ban-t, egy behatolás-megelőzési szoftvercsomagot fogjuk használni, hogy biztonsági réteget adjunk a különféle nyers erőszakos támadások ellen.
Hogyan működik a Fail2ban
A Fail2ban beolvassa a naplófájlokat (például /var/log/apache/error_log), és megkapja a sértő IP-címeket, amelyek túl sok sikertelen jelszót próbálnak kiadni, vagy kizsákmányolást keresnek. Alapvetően a Fail2ban frissíti a tűzfalszabályokat, hogy blokkolja a különböző IP-címeket a kiszolgálón. A Fail2ban szűrőket is biztosít, amelyeket egy adott szolgáltatáshoz használhatunk (pl. apache, ssh stb.).
Fail2ban telepítése
A Fail2ban nincs előre telepítve az Ubuntura, ezért használat előtt telepítenünk kell.
ubuntu@ubuntu:~$ sudo apt-get install fail2ban
A Fail2ban telepítése után indítsa el és engedélyezze a Fail2ban szolgáltatást a parancssor segítségével.
ubuntu@ubuntu:~$ sudo systemctl enable fail2ban
Most ellenőrizze a fail2ban szolgáltatás állapotát, és ellenőrizze, hogy elindult-e vagy sem.
A Fail2ban beállítása SSH-hoz
A Fail2ban-t az /etc/fail2ban/jail.conf fájl módosításával állíthatjuk be. A módosítás előtt készítsen biztonsági másolatot erről a fájlról.
Most beállítjuk a Fail2ban-t, hogy megakadályozza az sshd szolgáltatást a rosszindulatú bemenetektől. Nyissa meg az /etc/fail2ban/jail.local fájlt kedvenc szerkesztőjében.
Lépjen az [alapértelmezett] részre, és adja meg a konfigurációs paramétereket az [alapértelmezett] részben.
ignoreip = 127.0.0.1/8 192.168.18.10/32
bantime = 300
maxretry = 2
findtime = 600
Az ignoreip a cidr-maszk, IP-cím vagy DNS-állomás listája szóközzel elválasztva. Adja hozzá megbízható IP-címeit ehhez a listához, és ezek az IP-címek engedélyezőlistára kerülnek, és a fail2ban nem blokkolja őket még akkor sem, ha brute force támadást hajtanak végre a szerveren.
A bantime az az idő, amikor egy IP blokkolásra kerül, miután meghatározott számú sikertelen kísérletet tett a szerverre.
A maxretry a sikertelen próbálkozások maximális száma, amelyek után a fail2ban blokkolja az IP-címet meghatározott ideig.
A findtime az az időtartam, amely alatt, ha egy gazdagép maxretry sikertelen kísérletet tesz, a rendszer blokkolja.
A fenti paraméterek konfigurálása után most konfiguráljuk azt a szolgáltatást, amelyre a fenti szabályok vonatkozni fognak. Alapértelmezés szerint a Fail2ban előre definiált szűrőkkel rendelkezik a különböző szolgáltatásokhoz, így a szolgáltatásokhoz nem kell konkrét bejegyzéseket megadnunk. Csak különböző szolgáltatásokat engedélyezünk vagy tiltunk le a konfigurációs fájlban. Nyissa meg az /etc/fail2ban/jail.local fájlt kedvenc szerkesztőjében.
Keresse meg az [sshd] részt a fájlban, és írja be a következő paramétereket a szakaszba.
enable = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Az enabled meghatározza, hogy ezt a szolgáltatást a fail2ban védi-e vagy sem. Ha az engedélyezve igaz, akkor a szolgáltatás védett; ellenkező esetben nem védett.
A port a szolgáltatási portot határozza meg.
A szűrő a fail2ban által használt konfigurációs fájlra utal. Alapértelmezés szerint az /etc/fail2ban/filter.d/sshd.conf fájlt használja az ssh szolgáltatáshoz.
A logpath meghatározza a naplók elérési útját, a fail2ban figyelni fogja, hogy megvédje a szolgáltatást a különböző támadásoktól. Az ssh szolgáltatáshoz a hitelesítési naplók a /var/log/auth.log címen találhatók, így a fail2ban figyeli ezt a naplófájlt, és frissíti a tűzfalat a sikertelen bejelentkezési kísérletek észlelésével.
A maxretry a sikertelen bejelentkezési kísérletek számát határozza meg, mielőtt a fail2ban blokkolná őket.
A fail2ban fenti konfigurációjának alkalmazása után indítsa újra a szolgáltatást a módosítások mentéséhez.
ubuntu@ubuntu:~$ sudo systemctl status fail2ban.service
A Fail2ban tesztelése
A fail2ban-t úgy konfiguráltuk, hogy megvédje rendszerünket az ssh-szolgáltatás elleni brute force támadásoktól. Most sikertelen bejelentkezési kísérleteket teszünk a rendszerünkbe egy másik rendszerről, hogy ellenőrizzük, hogy a fail2ban működik-e vagy sem. Néhány sikertelen bejelentkezési kísérlet után ellenőrizni fogjuk a fail2ban naplókat.
Láthatjuk, hogy a sikertelen bejelentkezési kísérletek után az IP-t a fail2ban blokkolta.
A következő paranccsal megkaphatjuk az összes olyan szolgáltatás listáját, amelyekhez a fail2ban engedélyezve van.
A fenti ábra azt mutatja, hogy a fail2ban-t csak az sshd szolgáltatáshoz engedélyeztük. Az sshd szolgáltatásról további információkat kaphatunk, ha a fenti parancsban megadjuk a szolgáltatás nevét.
A Fail2ban automatikusan feloldja a tiltott IP-címet a bantime után, de a parancssor használatával bármikor feloldhatjuk a tiltott IP-címet. Ez nagyobb ellenőrzést biztosít a fail2ban felett. Az IP-cím tiltásának feloldásához használja a következő parancsot.
Ha olyan IP-címet próbál meg feloldani, amelyet a fail2ban nem blokkol, akkor csak azt jelzi, hogy az IP-cím nincs blokkolva.
Következtetés
Egy rendszergazdának vagy egy biztonsági mérnöknek nagy kihívást jelent a szerverek biztonságának fenntartása. Ha a szervert jelszó védi, nem nyilvános és privát kulcspár, akkor a szerver sebezhetőbb a brute force támadókkal szemben. Különböző jelszókombinációk alkalmazásával juthatnak be a rendszerébe. A Fail2ban egy olyan eszköz, amely korlátozhatja a támadókat abban, hogy különféle támadásokat indítsanak, beleértve a brute force támadásokat és a DDoS támadásokat a szerveren. Ebben az oktatóanyagban megvitattuk, hogyan használhatjuk a Fail2ban-t szerverünk védelmére a különböző támadásokkal szemben. A Fail2ban-t más szolgáltatások védelmére is használhatjuk, mint például az apache, az nginx stb.