Ich versuche, fail2ban auf meinem Testserver zu konfigurieren . Ich möchte nur vorübergehend alle Skript-Bots blockieren, die versuchen, meine Site zu testen. Also alles das hat cgi-bin
, admin
, setup.php
und so weiter. Ich habe zuvor alles, was 404-Fehler erzeugt, mit etwas wie grep "HTTP/1.1\" 404" access.log | awk '{print $7 } ' | sort | uniq -c | sort -n
in meinem access.log überprüft.
Ich habe sichergestellt, dass keine meiner URLs einen dieser Teile enthält.
Also habe ich nach der Installation etwas erstellt jail.local
und nichts damit gemacht jail.conf
. Meine Datei sieht folgendermaßen aus (ich möchte die IP für 10 Minuten blockieren):
[DEFAULT]
ignoreip = 127.0.0.1
bantime = 600
destemail = myemail
banaction = iptables-multiport
action = %(action_mwl)s
[apache-script-bots]
enabled = true
port = http,https
filter = apache-script-bots
logpath = /var/log/apache2/access.log
maxretry = 1
Ich habe auch apache-script-bots.conf
in einem filter.d
Ordner erstellt, der nur Folgendes enthält:
[Definition]
failregex = (admin|setup.php|main.php|w00tw00t|web-console|.jsp|manager|cgi-bin)
ignoreregex =
Beim Neustart von fail2ban zeigt es mir, dass alles in Ordnung ist. Aber wenn ich versuche zu testen, ob mein Gefängnis funktioniert, indem ich versuche, es auszulösen mit: mydomain/main.php
Ich sehe, dass ich nicht eingesperrt bin.
Wenn ich den Status von fail2ban überprüfe, wird mir mitgeteilt, dass mein Gefängnis funktioniert
fail2ban-client status
Status
|- Number of jail: 2
`- Jail list: ssh, apache-script-bots
Ich gehe davon aus, dass das Problem im regulären Ausdruck liegt, kann aber nicht verstehen, warum.