Fail2Ban zur Scan-Script-Abwehr einsetzen

Mein vServer gibt mir keinen Zugriff auf IP-Tables. Soweit so gut. Also habe ich versucht, mit einfachen Mitteln zu verhindern, dass Scriptkiddies meine Seite mit Skripten abgrasen. Der Versuch ist unten dokumentiert.

fail2ban/filter.d/apache-404.conf

Alle Zeilen, die einen 404-Fehler enthalten werden von fail2ban gezählt

# Option:  failregex
failregex = <HOST> - - \[.*\] "GET /.* HTTP/1\.[01]" 404 [0-9]+.*$

# Option:  ignoreregex
ignoreregex =

fail2ban/action.d/hostsdeny-apache.conf

IPs die mit dem hostsdeny-apache-Filter und der Jail-Config geschrieben werden, werden in die hosts.deny und eine (von mir erstellte) hosts-apache.deny geschrieben, die das Muster „[ip] - “ enthält.

 actionban = IP=<ip> &&
 printf %%b "ALL: $IP\n" >> <file>
 printf %%b "$IP - \n" >> <fileapache>

actionunban = IP=<ip>; && sed -i.old /ALL:\ $IP/d <file>
 IP=<ip> && sed -i.old /$IP/d <fileapache>

#
file = /etc/hosts.deny
fileapache = /etc/hosts-apache.deny

Config für das apache-404-Jail

Alle vHosts werden geloggt, jemand, der mehr als 10 404-Seiten innerhalb einer Minute produziert, wird für 10 Minuten gesperrt.

[apache-404]
enabled = true
banaction = hostsdeny-apache
port = http,https
filter = apache-404
logpath = /var/log/apache*/*access.log
bantime = 600
findtime = 60
maxretry = 10

Bis hierhin funktionierte das alles wunderbar.

Im Prinzip braucht man nun nur noch eine Möglichkeit, die IP-Liste im Apache abzufragen. Alternativ ist es auch möglich, den Apache mit einem TCP/IP-Wrapper zu starten um von den Settings in der hosts.deny zu profitieren.

Irgendwo fand ich etwas in der Richtung:

## apache2/conf.d/hostsdeny.conf
RewriteEngine on
RewriteMap    hosts-deny  txt:/etc/hosts-apache.deny
RewriteCond   ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND [OR]
RewriteCond   ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND
RewriteRule   ^/.*  -  [F]
Navigation

Impressum

Drucken/exportieren
In anderen Sprachen
Übersetzungen dieser Seite: