Hi zusammen,
hat jemand vielleicht eine bessere Lösung als die ich bisher gefunden habe um eine IP aus dem Regelwerk von IPTables zu entfernen? Es kann ja durchaus mal sein das ein Benutzer sich selbst aussperrt und dann meldet das er nicht mehr reinkommt. Als Beispiel nehme ich hier mal den pureftpd.
Bisher läuft es bei mir folgendermaßen. Der Benutzer sperrt sich aus und im fail2ban Log erscheint folgende Meldung:
2009-12-13 00:37:17,064 fail2ban.actions: WARNING [pureftpd] Ban xxx.xxx.xxx.xxx
Wenn man sich die IPTables-Chain betrachet findet man dort folgendes:
Jetzt gibt es aber folgendes Problem wo ich mit der Lösung leider nicht so wirklich weiter komme. Wenn jetzt dieser Benutzer wieder das Passwort so oft wie im maxretry der fail2ban Konfiguration angegen eingibt, wird er nicht wieder gebant und im fail2ban Log erscheinen folgender Einträge, der maxretry steht auf 3:
2009-12-13 01:47:07,120 fail2ban.actions: WARNING [pureftpd] xxx.xxx.xxx.xxx already banned
2009-12-13 01:47:18,120 fail2ban.actions: WARNING [pureftpd] xxx.xxx.xxx.xxx already banned
2009-12-13 01:47:07,120 fail2ban.actions: WARNING [pureftpd] xxx.xxx.xxx.xxx already banned
2009-12-13 01:47:18,120 fail2ban.actions: WARNING [pureftpd] xxx.xxx.xxx.xxx already banned
Es scheint als ob fail2ban nicht überprüft ob der Eintrag im Regelnwerk der Firewall noch vorhanden ist und diesen irgendwo anders speichert. Ich weiß nicht was fail2ban bei unban anders macht, weil in der Datei /etc/fail2ban/action.d/iptables.conf wird die Regel genau wie in meinem Script entfernt.
Jetzt gibt es das Programm fail2ban-client und ich dachte hiermit würde man den Eintrag richtig entfernen können, aber das scheint wohl in der Version 8.3.0 noch nicht zu funktionieren und wird erst später in der Version 9.0.0 implementiert werden. In der Manpage kam ich nicht wirklich weiter. Dazu habe ich auch fail2ban.org folgendes gefunden:
![Confused :confused: :confused:](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Viele Grüße
~Tim
hat jemand vielleicht eine bessere Lösung als die ich bisher gefunden habe um eine IP aus dem Regelwerk von IPTables zu entfernen? Es kann ja durchaus mal sein das ein Benutzer sich selbst aussperrt und dann meldet das er nicht mehr reinkommt. Als Beispiel nehme ich hier mal den pureftpd.
Bisher läuft es bei mir folgendermaßen. Der Benutzer sperrt sich aus und im fail2ban Log erscheint folgende Meldung:
2009-12-13 00:37:17,064 fail2ban.actions: WARNING [pureftpd] Ban xxx.xxx.xxx.xxx
Wenn man sich die IPTables-Chain betrachet findet man dort folgendes:
Um die Regeln jetzt schnell löschen zu können, habe ich mir ein kleines Script geschreiben, damit ich nicht immer die volle Syntax zum entfernen der Regeln angeben muss. Ich zeige es mal, vielleicht können es andere auch gebrauchen.root@mail:~# iptables -n -L fail2ban-pureftpd
Chain fail2ban-pureftpd (1 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 0.0.0.0/0
DROP all -- xxx.xxx.xxx. 0.0.0.0/0
Das Script wird jetzt über einen Alias in der .bashrc aufgerufen, der Alias hier auch noch zum nachbasateln.root@mail:~/security/iptables/fail2ban# cat fail2ban-unban-ftp.sh
#.......................................................
# iptables unban-actionscript - pureftpd
# version 0.1 - 11.12.2009
#.......................................................
# variables
sourceip=$1
iptables -D fail2ban-pureftpd -s $sourceip -j DROP
Zum aufrufen nach einem neuen Login, danach wird die .bashrc neu eingelesen, alternativ auch mit #source ~/.bashrc, reicht jetzt # unban xxx.xxx.xxx.xxxalias unban='/root/security/iptables/fail2ban/./fail2ban-unban-ftp.sh'
Jetzt gibt es aber folgendes Problem wo ich mit der Lösung leider nicht so wirklich weiter komme. Wenn jetzt dieser Benutzer wieder das Passwort so oft wie im maxretry der fail2ban Konfiguration angegen eingibt, wird er nicht wieder gebant und im fail2ban Log erscheinen folgender Einträge, der maxretry steht auf 3:
2009-12-13 01:47:07,120 fail2ban.actions: WARNING [pureftpd] xxx.xxx.xxx.xxx already banned
2009-12-13 01:47:18,120 fail2ban.actions: WARNING [pureftpd] xxx.xxx.xxx.xxx already banned
2009-12-13 01:47:07,120 fail2ban.actions: WARNING [pureftpd] xxx.xxx.xxx.xxx already banned
2009-12-13 01:47:18,120 fail2ban.actions: WARNING [pureftpd] xxx.xxx.xxx.xxx already banned
Es scheint als ob fail2ban nicht überprüft ob der Eintrag im Regelnwerk der Firewall noch vorhanden ist und diesen irgendwo anders speichert. Ich weiß nicht was fail2ban bei unban anders macht, weil in der Datei /etc/fail2ban/action.d/iptables.conf wird die Regel genau wie in meinem Script entfernt.
Jetzt gibt es das Programm fail2ban-client und ich dachte hiermit würde man den Eintrag richtig entfernen können, aber das scheint wohl in der Version 8.3.0 noch nicht zu funktionieren und wird erst später in der Version 9.0.0 implementiert werden. In der Manpage kam ich nicht wirklich weiter. Dazu habe ich auch fail2ban.org folgendes gefunden:
Hat da jemand Erfahrung mit gesammelt und kann vielleicht helfen?I also love Fail2ban (great work guys), maybe I'm missing something but is there a way to unban an IP using fail2ban-client? If not could you add this feature?
Thank youYou're right :/ You can't unban an IP address using fail2ban-client. This will be added in the next development branch (0.9). Be patient
--Lostcontrol 23:23, 21 March 2007 (CET)
Viele Grüße
~Tim
Zuletzt bearbeitet: