Weboldal keresés

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 update -y

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 start fail2ban

ubuntu@ubuntu:~$ sudo systemctl enable fail2ban

Most ellenőrizze a fail2ban szolgáltatás állapotát, és ellenőrizze, hogy elindult-e vagy sem.

ubuntu@ubuntu:~$ sudo systemctl status fail2ban

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.

ubuntu@ubuntu:~$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

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.

ubuntu@ubuntu:~$ sudo nano /etc/fail2ban/jail.local

Lépjen az [alapértelmezett] részre, és adja meg a konfigurációs paramétereket az [alapértelmezett] részben.

[DEFAULT]

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.

ubuntu@ubuntu:~$ sudo nano /etc/fail2ban/jail.local

Keresse meg az [sshd] részt a fájlban, és írja be a következő paramétereket a szakaszba.

[sshd]

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 restart fail2ban.service

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.

ubuntu@ubuntu:~$ cat /var/log/fail2ban.log

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.

ubuntu@ubuntu:~$ sudo fail2ban-client status

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.

ubuntu@ubuntu:~$ sudo fail2ban-client status sshd

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.

ubuntu@ubuntu:~$ sudo fail2ban-client set sshd unbanip 192.168.43.35

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.

ubuntu@ubuntu:~$ sudo fail2ban-client set sshd unbanip 192.168.43.35

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.

Kapcsolódó cikkek: