Fail2Ban Frage

Unifex

New Member
Ich versuche mich gerade in wenig in die Konfiguration des Programms einzuarbeiten um z.B. eigene Regeln zu schreiben.

Die How To´s im Internet haben mir bisher nicht weitergeholfen.

Vielleicht kann mir ja mal jemand anhand eines Praxisbeispiel einen funktionieren Filter schreiben.

Wie ich das verstanden habe, kann ich bestimmte Log´s nach gewissen Strings absuchen lassen.

Im error.log (var/log/nginx) z.B. habe ich jemanden, der permanent nach Verzeichnissen sucht, die es nicht gibt.

Dort steht z.B.
Code:
2013/09/15 07:56:29 [error] 14383#0: *75431 FastCGI sent in stderr: "Unable to open primary script: /usr/share/nginx/html/phpMyAdmin-2.7.0-pl1/scripts/setup.php (No such file or directory)" while reading response header from upstream, client: 198.204.250.82, server: localhost, request: "GET //phpMyAdmin-2.7.0-pl1/scripts/setup.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "xxx.76.123.243"

oder

HTML:
2013/09/15 07:56:30 [error] 14383#0: *75433 FastCGI sent in stderr: "Unable to open primary script: /usr/share/nginx/html/phpMyAdmin-2.6.8/scripts/setup.php (No such file or directory)" while reading response header from upstream, client: 198.204.250.82, server: localhost, request: "GET //phpMyAdmin-2.6.8/scripts/setup.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "xxx.76.123.245"

Wie müsste jetzt ein Filter aussehen bei Fail2Ban, der den "Angreifer" mal für 24 Stunden auf die Strafbank setzt?
 
Last edited by a moderator:
Also ganz grob könnte ein Filter wie folgt aussehen:
/etc/fail2ban/filter.d/nginx-not-found.conf
Code:
[evtl. Header includes usw. wie bei den anderen Filter]

failregex = (.*)No such file or directory(.*) host: "<HOST>"
                (.*)"Unable to open primary script:(.*) host: "<HOST>"

in der /etc/fail2ban/jail.conf, bzw. jail.local:
Code:
[nginx-not-found]

enabled  = true
port       = 80
filter      = nginx-not-found
logpath  = /var/log/nginx/error.log
maxretry= 2
bantime = 86400

Das müsstest du natürlich noch testen, ob die Filter so auch greifen und keine false-positives ergeben:

Code:
fail2ban-regex /var/log/nginx/error.log /etc/fail2ban/filter.d/nginx-not-found.conf
 
Back
Top