У меня есть следующая тюрьма, добавленная в файл jail.local:
[nginx-honeypot]
enabled = true
filter = nginx-honeypot
port = http,https
logpath = /var/log/nginx/access.log
maxretry = 1
bantime = 86400
Я создал фильтр nginx-honeypot.conf
внутри каталога filter.d следующим образом:
[Definition]
failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*"(?:/wp-login\.php|/\.env|/_ignition/execute-solution|/\.git/config|/\.well-known/security\.txt)"$
ignoreregex =
В моем /var/log/nginx/access.log
файл у меня есть следующая запись в журнале:
54.37.79.75 - - [21/Mar/2023:16:29:05 +0000] "GET /.env HTTP/1.1" 404 197 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36"
Когда я бегу sudo fail2ban-client status nginx-honeypot
Я получаю следующее:
Status for the jail: nginx-honeypot
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/nginx/access.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:
Так почему же эта запись не запрещена? Что-то не так с регулярным выражением? Обратите внимание, я бежал sudo fail2ban-client reload
после добавления джейла.