Я хотел бы, чтобы fail2ban выступил против этих строк и заблокировал приведенный пример IP-адреса:
[Tue Dec 08 12:17:13.622175 2015] [:error] [pid 30390] [client 62.210.88.201:38139] script '/var/www/html/httptest.php' not found or unable to stat
[Tue Dec 08 13:22:25.363614 2015] [:error] [pid 30386] [client 62.210.88.201:54141] script '/var/www/html/httptest.php' not found or unable to stat
[Tue Dec 08 14:36:01.790899 2015] [:error] [pid 28831] [client 62.210.88.201:42431] script '/var/www/html/httptest.php' not found or unable to stat
Fail2ban был успешно настроен для защиты других служб на этом компьютере, но я не могу заставить его работать с этими линиями.
[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 2
Это просто потому, что «port = http, https» и должно быть «ports = all»?
Соответствующий фильтр "apache-noscript.conf" был изменен следующим образом.
^%(_apache_error_client)s script '/\S*httptest\S*(\.php|\.asp|\.exe|\.pl)\S*' not found or unable to stat\s*$
Нет port
часть не проблема. port
используется для определения того, к какому порту применяется запрет после совпадения с правилом регулярного выражения.
Я предполагаю, что ваше регулярное выражение не работает так, как должно быть. Вы можете использовать fail2ban-регулярное выражение команду, чтобы проверить, действительно ли она работает, и при необходимости исправить ее. Вот пример команды:
fail2ban-regex '/var/log/apache*/*access.log' /etc/fail2ban/filter.d/apache-noscript.conf
Вы также можете использовать следующую команду, чтобы увидеть статус тюрьмы:
fail2ban-client status