Weboldal keresés

A Fail2ban használata a Linux-szerver biztonságához


A szerver biztonságának javítása kell, hogy legyen az egyik legfontosabb prioritás a linuxos kiszolgálók kezelésekor. A szervernaplók áttekintésével gyakran találkozhat különféle brute force bejelentkezési kísérletekkel, webözönekkel, kihasználáskereséssel és sok mással.

Egy behatolásgátló szoftverrel, például a fail2ban segítségével megvizsgálhatja a szervernaplókat, és további iptables szabályokat adhat hozzá a problémás IP-címek blokkolásához.

Olvassa el még: A Fail2Ban telepítése az SSH védelmére CentOS/RHEL 8 rendszeren

Ez az oktatóanyag bemutatja a fail2ban telepítését és az alapvető konfigurációk beállítását, hogy megvédje Linux rendszerét a brute force támadásoktól.

Követelmények

A Fail2ban pythonban van írva, és az egyetlen követelmény a python telepítése:

  • A Fail2ban ág 0.9.x verziójához Python >=2.6 vagy Python >=3.2 szükséges
  • A Fail2ban ág 0.8.x Python >=2.4-et igényel
  • Root hozzáférés a rendszerhez
  • Opcionálisan iptables vagy showwall és sendmail

A Fail2Ban telepítése Linux rendszereken

A fail2ban telepítése viszonylag egyszerű:

Telepítse a Fail2Ban-t a CentOS/RHEL rendszeren

Először frissítse a csomagokat, engedélyezze az Epel tárolót, és telepítse a fail2ban alkalmazást az ábra szerint.

yum update
yum install epel-release
yum install fail2ban

Telepítse a Fail2Ban-t Debian/Ubuntu rendszerre

Először frissítse a csomagokat, és telepítse a fail2ban alkalmazást az ábra szerint.

apt-get update && apt-get upgrade -y
apt-get install fail2ban

Opcionálisan, ha engedélyezni szeretné a levelezési támogatást (levélértesítésekhez), telepítheti a sendmailt.

yum install sendmail                   [On CentOS/RHEL]
apt-get install sendmail-bin sendmail  [On Debian/Ubuntu]

A fail2ban és a sendmail engedélyezéséhez használja a következő parancsokat:

systemctl start fail2ban
systemctl enable fail2ban
systemctl start sendmail
systemctl enable sendmail

A Fail2ban konfigurálása Linux rendszereken

Alapértelmezés szerint a fail2ban az /etc/fail2ban/ könyvtárban található .conf fájlokat használja, amelyek először kerülnek beolvasásra. Ezeket azonban felülbírálhatják az ugyanabban a könyvtárban található .local fájlokkal.

Így a .local fájlnak nem kell tartalmaznia a .conf fájl összes beállítását, hanem csak azokat, amelyeket felül akar bírálni. A módosításokat a .local fájlokban kell elvégezni, nem a .conf fájlban. Ez megakadályozza a változtatások felülírását a fail2ban csomag frissítésekor.

Ennek az oktatóanyagnak a céljára átmásoljuk a meglévő fail2ban.conf fájlt a fail2ban.local fájlba.

cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local

Most már elvégezheti a módosításokat a .local fájlban kedvenc szövegszerkesztője segítségével. A szerkeszthető értékek a következők:

  • naplózási szint – ez a naplózandó részletességi szint. A lehetséges opciók a következők:

    • KRITIKAI
    • HIBA
    • FIGYELEM
    • ÉRTESÍTÉS
    • INFO
    • DEBUG
  • logtarget – naplózza a műveleteket egy adott fájlban. Az alapértelmezett érték a /var/log/fail2ban.log. Ezt azonban módosíthatja a következőre:

    • STDOUT – bármilyen adat kiadása
    • STDERR – bármilyen hiba kiírása
    • SYSLOG – üzenet alapú naplózás
    • Fájl – kimenet fájlba
  • socket – könyvtár, amelybe a socket fájl kerül.
  • pidfile – a pidfile helye.

A Fail2ban jail.local konfigurálása

A fail2ban egyik legfontosabb fájlja a jail.conf, amely meghatározza a börtönöket. Itt adhatja meg azokat a szolgáltatásokat, amelyeknél engedélyezni kell a fail2ban-t.

Amint azt korábban említettük, a .conf fájlok a frissítések során módosíthatók, ezért érdemes létrehozni egy jail.local fájlt, ahol alkalmazni tudod a módosításokat.

Egy másik módja ennek, ha egyszerűen másolja a .conf fájlt a következővel:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

CentOS vagy Fedora használata esetén módosítania kell a háttérrendszert a jail.local fájlban a következőről: „auto”-ról „systemd”-re.

Ha Ubuntu/Debiant használ, nincs szükség erre a módosításra, még akkor sem, ha ők is systemd-t használnak.

A jail fájl alapértelmezés szerint engedélyezi az SSH-t a Debian és az Ubuntu esetén, de nem a CentOS rendszeren. Ha engedélyezni szeretné, egyszerűen módosítsa a következő sort a /etc/fail2ban/jail.local fájlban:

[sshd]
enabled = true
Kitiltás és újrapróbálkozási idők

Beállíthatja azt a körülményt, amely után az IP-cím blokkolva legyen. Ebből a célból a fail2ban a bantime, a findtime és a maxretry használatát használja.

  • bantime – ez a másodpercek száma, ameddig egy IP-cím tiltva marad (alapértelmezett 10 perc).
  • findtime – a bejelentkezési kísérletek között eltelt idő a gazdagép kitiltása előtt. (alapértelmezett 10 perc). Más szóval, ha a fail2ban úgy van beállítva, hogy blokkoljon egy IP-címet 3 sikertelen bejelentkezési kísérlet után, akkor ezt a 3 kísérletet a keresési időn belül (10<) meg kell tenni perc).
  • maxretry – a tiltás alkalmazása előtt végrehajtandó próbálkozások száma. (alapértelmezett 3).
IP-cím engedélyezési listája

Természetesen bizonyos IP-címeket szeretne engedélyezőlistára tenni. Az ilyen IP-címek beállításához nyissa meg az /etc/fail2ban/jail.local fájlt kedvenc szövegszerkesztőjével, és törölje a megjegyzéseket a következő sorból:

ignoreip = 127.0.0.1/8  ::1

Ezután megadhatja a figyelmen kívül hagyni kívánt IP-címeket. Az IP-címeket szóköztől vagy vesszőtől el kell választani.

E-mail figyelmeztetések

Ha e-mailben szeretne értesítést kapni az eseményről, a következő beállításokat kell megadnia az /etc/fail2ban/jail.local oldalon:

  • destemail – e-mail cím, ahová az értesítést kapja.
  • Feladónév – a feladó, akit látni fog az üzenet fogadásakor.
  • feladó – e-mail cím, ahonnan a fail2ban küldi az e-maileket.

Az alapértelmezett mta (levéltovábbító ügynök) sendmail.

Ha e-mailes értesítéseket szeretne kapni, módosítania kell az „művelet” beállítást a következőről:

Action = %(action_)s

Ezek egyikére:

action = %(action_mw)s
action = %(action_mwl)s
  • %(action_mw)s – kitiltja a gazdagépet, és e-mailt küld a whois jelentéssel.
  • %(action_mwl)s – kitiltja a gazdagépet, megadja a whois-információkat és minden lényeges információt a naplófájlból.

További Fail2ban Jail konfiguráció

Eddig az alapvető konfigurációs lehetőségeket néztük meg. Ha börtönt szeretne konfigurálni, engedélyeznie kell azt a jail.local fájlban. A szintaxis nagyon egyszerű:

[jail_to_enable]
. . .
enabled = true

Ahol a jail_to_enable kifejezést a tényleges börtönre kell cserélni, például: „sshd”. A jail.local fájlban a következő értékek lesznek előre meghatározva az ssh szolgáltatáshoz:

[sshd]

port = ssh
logpath = %(sshd_log)s

Engedélyezheti a szűrőt, amely segít azonosítani, ha a napló egy sora hibás. A szűrő értéke valójában egy hivatkozás egy fájlra, amelynek szolgáltatásneve és utána .conf. Például: /etc/fail2ban/filter.d/sshd.conf.

A szintaxis a következő:

filter = service

Például:

filter = sshd

A meglévő szűrőket a következő könyvtárban tekintheti meg: /etc/fail2ban/filter.d/.

Használja a fail2ban-klienst

A Fail2ban egy klienssel érkezik, amely az aktuális konfiguráció áttekintésére és módosítására használható. Mivel számos lehetőséget kínál, a kézikönyvet a következőkkel nézheti át:

man fail2ban-client 

Itt láthat néhány alapvető parancsot, amelyet használhat. A fail2ban aktuális állapotának vagy adott börtönhöz tartozó állapotának áttekintéséhez a következőket használhatja:

fail2ban-client status

Az eredmény ehhez hasonlóan fog kinézni:

Egyéni börtön esetén futhat:

fail2ban-client status sshd

Az alábbi képernyőképen látni fogja, hogy szándékosan sikertelen voltam több bejelentkezésben, így a fail2ban blokkolhatja azt az IP-címet, amelyről csatlakozni próbáltam:

Következtetés

A Fail2ban egy kiváló, jól dokumentált behatolásgátló rendszer, amely extra biztonságot nyújt Linux rendszerének. Kell egy kis idő, amíg megszokja a beállítását és szintaxisát, de ha megismeri, nyugodtan módosíthatja és kiterjesztheti a szabályait.