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:
Telepítés Debian GNU/Linuxon:
apt install fail2ban
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 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
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.
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 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.
Példa:
fail2ban-client set sshd unbanip 192.168.10.3
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
grep janos /var/log/auth.log