Я бы хотел, чтобы 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*$
Нет части порта
не является проблемой. Порт
используется для определения того, к какому порту применяется запрет после согласования правила регекса. Полагаю, ваш регекс работает не так, как должен. Вы можете использовать команду fail2ban-regex, чтобы проверить, действительно ли он работает и при необходимости исправить его. Вот пример команды:
fail2ban-regex '/var/log/apache*/*access.log' /etc/fail2ban/filter.d/apache-noscript.conf
Вы также можете использовать следующую команду, чтобы увидеть состояние тюрьмы:
fail2ban-client status