< Secure Linux

Fail2ban

Szerző: Sallai András

Copyright © Sallai András, 2019

CC Attribution-Share Alike 4.0 International

Web: http://szit.hu

A fail2banról

A fail2ban naplóállományokat elemez, majd IP cím alapján tiltásokat léptet életbe automatikusan. A naplóállományokban túl sok sikertelen jelszó vagy expolit, vagy egyéb próbálkozások után kutat a program. A fail2ban elsősorban a tűzfalszabályok frissítésével működik. Többféle szolgáltatás számára beállítható, mint például apache, ssh, courier stb.

A fail2ban Debian GNU/Linux esetén csomagból telepíthető. Webhelye a következő linken érhető el:

https://www.fail2ban.org/

Telepítés

Telepítés Debian GNU/Linuxon:

apt install fail2ban

Ellenőrzés

Elindul egy szerver folyamat; ellenőrizzük:

ps ax

pgrep -a fail2ban

pstree
pstree -c

A fail2ban unix socketet használ, ellenőrizzük:

ss -lx | grep fail2ban

A szolgáltatás kezelése

A szerver szolgáltatásként kezelhető a systemctl paranccsal.

Nézzük meg státuszát:

systemctl status fail2ban

Leállítás:

systemctl stop fail2ban

Indítás:

systemctl start fail2ban

Újraindítás:

systemctl restart fail2ban

Beállítások

A beállításokat a /etc/fail2ban könyvtárban találjuk:

ls /etc/fail2ban

Az egyes szolgáltatásokhoz tartozó alapbeállítások a jail.conf állományban találhatók. Nézzünk bele:

grep ^[^#] /etc/fail2ban/jail.conf

Az ini fájlokhoz hasonló a fájl felépítése. Szögletes zárójelben megadott szekciókat tartalmaz. A [DEFAULT] szekció tartalmazza az alapbeállításokat.

Soha ne szerkesszük a jail.conf állományt.
Néhány beállítás
bantime = 10m	10 percig tiltunk
maxretry = 5	maximum 5 sikertelen próbálkozás lehet
enabled = false	alapértelmezetten nincs engedélyezve szolgáltatás
findtime = 10m	ennyi idő alatt kell összegyűlnie a sikertelen próbálkozásoknak.
Néhány nem kötelező elem
port = http,https	milyen portokat figyeljen
filter = apache-auth	milyen szűrőfájlt használjon; a szűrőfájlok a /etc/fail2ban/filter.d könyvtárban találhatók
logpath = /var/log/apache2/*error.log	Hol található a naplófájl

Az sshd démon figyelése Debian 10 rendszeren alapértelmezetten engedélyezve van a következő fájlban:

/etc/fail2ban/jail.d/defaults-debian.conf

Az alapértelmezések felülírásához készíthetünk egy másolatot a jail.conf állományról, jail.local néven a /etc/fail2ban könyvtáron belül, de ennél sokkal letisztultabb megoldást, ha a /etc/fail2ban/jail.d/ könyvtárat használjuk. Készítsünk tetszőleges néven állományt, .local kiterjesztéssel. Legyen a példa kedvéért sshd.local

cd /etc/fail2ban/jail.d/
nano sshd.local

A fájl tartalmában szabályozzuk újra az SSH démon beállításait:

[sshd] enabled = true bantime = 2m maxentry = 3 findtime = 10m

Az aktualizáláshoz újra kell indítani a fail2ban szolgáltatást:

systemctl restart fail2ban

A működés tesztelése

A fail2ban teszteléséhez telepítsük az OpenSSH szervert:

apt install ssh

Egy másik gépről próbáljunk meg bejelentkezni valamilyen felhasználóval, mindig rossz jelszót megadva. Például janos felhasználóval a 192.168.10.2 gépre:

ssh janos@192.168.10.2

Az ötödik sikertelen bejelentkezés után már a hibaüzenet sem jelenik meg.

Nézzük meg a célszerveren a tűzfalszabályokat:

iptables -L

Egy új lánc látható:

f2b-sshd

Az f2b-sshd láncon pedig egy tiltó szabály. A tiltás 10 percig működik.

Tiltás megszüntetése

Példa:

fail2ban-client set sshd unbanip 192.168.10.3

Fehér lista

Tegyük a kívánt szekcióba:

ignoreip = 192.168.10.1 192.168.20.0/24

Indítsuk újra a fail2bant:

systemctl restart fail2ban