Aș dori să blochez orice solicitare de obținere către /.git, /wp-login,/remote/login/, așa că am creat următorul filtru care include și alte solicitări.
badagents = 360Spider|ZmEu|Auto Spider 1.0|zgrab/[0-9]*\.[0-9a-zA-Z]*|Wget\(.*\)|MauiBot.*|AspiegelBot.*|SemrushBot.* |PHP/.*
failregex = ^.+?:\d+ <HOST> -.*"(GET|POST|HEAD).*HTTP.*(?:%(badagents)s)"$
^.+?:\d+ <HOST> -.*"(GET|POST|HEAD) /+wp-login\.php.*$
^.+?:\d+ <HOST> -.*"(GET|POST|HEAD) /.git/HEAD.*$
^.+?:\d+ <HOST> -.*"GET /.git/.*$
^.+?:\d+ <HOST> -.*"(GET|POST|HEAD) /wp-login/.*$
^.+?:\d+ <HOST> -.*"(GET|POST|HEAD) /.git/objects/.*$
^.+?:\d+ <HOST> -.*"(GET|POST|HEAD) //.git/objects/.*$
^.+?:\d+ <HOST> -.*"(GET|POST|HEAD) /remote/login/.*$
^.+?:\d+ <HOST> -.*"(GET|POST|HEAD) /wp/wp-includes/.*$
^.+?:\d+ <HOST> -.*"GET /wp/wp-includes/.*$
^.+?:\d+ <HOST> -.*"GET /wp/wp-login.php/.*$
^.+?:\d+ <HOST> -.*"GET /test/wp-includes/.*$
^.+?:\d+ <HOST> -.*"GET /config/getuser/.*$
De asemenea, am atașat asta la jail.local meu cu
[interdicție o singură dată]
activat = adevărat
port =http,https
logpath = /var/log/nginx/access.log
/var/log/nginx/prod_test.log
filtru = ban o singură dată
bantime = 300
maxretry = 1
timp de găsire = 10
Am testat acest lucru încercând să accesez /.git pe adresa URL de mai mult de 10 ori, dar tot nu am fost interzis. De ce eșuează acest lucru. Cred că problema este la failregex. De ce am nevoie pentru a adăuga un plus pentru ca fail2ban să funcționeze?
Un eșantion de jurnal arată astfel
3.17.11.219 - - [05/Oct/2021:12:33:15 +0000] „GET //.git/objects/a5/920b6c86cc2d972bde9578c0a5d848dff67354 HTTP/1.1” curl/1.170.11.