fail2ban IP blokkolás beállítása

Fórumok

Sziasztok,

régebben nyitottam egy topicot (http://hup.hu/node/124609) és fel is tettem a fail2ban, de nem vagyok biztos a működésében.

Ugyanis írtátok, hogy, ha valakit blokkol, akkor ide (/etc/hosts.deny) kellene gyűjteni a blokkolt IP címeket, de "sajnos" nem gyűlnek az IP címek (egyetlen egy sem került be). Pedig vannak próbálkozásaim is. Ezt a fail2ban.log file mutatja is, hogy "ban"-olja ezeket.

Kérdésem, hogy a /etc/hosts.deny kerüljenek a blokkolások mit kellene beállítanom a fail2ban configjában?

Üdv.

KALMI

Hozzászólások

Nekem iptables-hez van egy saját szabály rendszerem. Abba kerülnek, és az iptables -L parancs listázza az összes tiltottat (amíg lenem jár az ideje)

--
openSUSE 12.2 x86_64

Ha valóban a hosts.deny alapján szeretnéd a bant, úgy a fail2ban konfigjában engedélyezted a hostsdeny actiont? És ha igen, mégsem működik? Ahogy lajos22 írta is fentebb, az alap az iptables-multiport.

"Kérdésem, hogy a /etc/hosts.deny kerüljenek a blokkolások mit kellene beállítanom a fail2ban configjában?"
Ha biztosan ezt szeretnéd, és nem jó neked a default iptables-multiport, akkor a banaction mellé hostsdeny kerüljön. Megadhatod globálisan, vagy csak akár egyedileg is.

Igen van:

---
iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain fail2ban-ssh (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere

---

~# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-ssh tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 22

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain fail2ban-ssh (1 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 0.0.0.0/0

Gondolom ez még kevés lesz....

pl:

2013-08-06 15:02:44,966 fail2ban.actions: WARNING [ssh] Ban 117.34.4.32
2013-08-06 15:12:45,662 fail2ban.actions: WARNING [ssh] Unban 117.34.4.32

Ez azt jelenti, hogy ismét próbálkozhat a fenti IP-ről? Hogyan lehet egy IP-t a fail2ban-al végérvényesen letiltani? pl: valamilyen szabály alapján (pl: 3 próbálkozik, utánna 10 perc, ismét 3 próbálkozás örökre)

Javaslom, nézd át a konfigot, nem bonyolult.

"Ez azt jelenti, hogy ismét próbálkozhat a fenti IP-ről?"
Mivel a konfigban be van állítva (ill. a default is ez), hogy 10 percig tart a ban, így igen, 10 perc után feloldja a korlátozást.

"Hogyan lehet egy IP-t a fail2ban-al végérvényesen letiltani?"
A manualban olvasható, hogy negatív számot kell megadni bannolási időtartamként.

"pl: valamilyen szabály alapján (pl: 3 próbálkozik, utánna 10 perc, ismét 3 próbálkozás örökre)"
Írhatsz saját scriptet, programot ami ezt kezeli, és megadhatod actionként.

Milyen leírásra gondolsz?
A manual a weben: MANUAL 0 8

A dokumentációt tartalmazó szokásos helyen is találsz leírásokat. Van pl. néhány Debian-specifikus információ, ebben a Troubleshooting rész alatt van az időzítésekről két rövid rész (ami természetesen nem Debian-specifikus beállítási lehetőség, és a végén visszahivatkozik a manualra):

$ zless /usr/share/doc/fail2ban/README.Debian.gz

Ha a script kell, akkor kapsz egyet, anno csináltam egy ilyet, előkapartam:
http://pastebin.com/LLJ749YJ
Azt csinálja, hogy a fail2ban logokból kiszedi a bannolt ip-ket. Ami kettőnél többször szerepel benne, azt betolja egy fájlba, ezt mondjuk egy másik scriptel be tudod tolni tűzfalba örökre.
(az eredeti script kicsit nagyobb volt és több funkciót látott el, gyorsan átszabtam, hogy csak ez a funkció maradjon benne, ha hibát ejtettem, akkor javítsd :) )

Szabad kritizálni? ;)
Az az "awk" minek oda? Egy cut nem lett volna "olcsóbb"?
Illetve ha már grep+awk, a grep-et nem tudtad volna kihagyni és egyből az awk-ban szűrni?
(rég volt, lehet, hogy csak én nem látom át a probléma lényegét, de hasonló esetben kb. második próbálkozás után már perl-ben tartottam :)) )