Tartalomjegyzék

< Secure Linux

Fail2ban

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:

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:

/etc/fail2ban/jail.d/sshd.local
[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

Felhasználó ellenőrzése

grep janos /var/log/auth.log