Я установил Fail2Ban v0.10.2 на Ubuntu 18.04 с Apache 2.4.29 и включил стандартные тюрьмы ssh и apache для базовой защиты с предупреждениями об уведомлениях по электронной почте, когда IP-адрес заблокирован.
Взглянув на документация, Мне не удалось найти подходящий фильтр, который помог бы в следующей ситуации:
Я хотел бы запретить IP-адреса, которые попадают на сервер и вызывают большое количество ошибок 404 из-за поддельных URL-запросов, что может быть типичным поведением спам-бота. Таким образом, в идеале блокируется IP-адрес, который вызывает более трех ошибок 404 подряд, за некоторыми исключениями для официальных сканеров поисковых систем.
Есть ли регулярное выражение по умолчанию для этой ситуации?
Буду признателен за вашу помощь в том, как это реализовать.
Рекомендую начать с реализации встроенного apache-noscript
фильтр для fail2ban. To do so, add the following lines to
/ etc / jail.local`
[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache2/*error.log
maxretry = 3
bantime = 600
настройте время блокировки по своему вкусу и рассмотрите возможность реализации recidiv
фильтр / тюрьма для рецидивистов.
Примечание: возможна ошибка с регулярное выражение фильтра
Я рекомендую настроить apache, чтобы ничего не регистрировать в тех местах, где вы часто получаете сообщение 404. Таким образом, ЦП и дисковый ввод-вывод, сохраненные для записи журналов, могут быть использованы для ваших реальных посетителей.
Время ЦП / ввода-вывода также экономится, когда вам не нужно fail2ban для сканирования журналов.
Каждый реальный посетитель избавлен от правил IP / nftables, которые замедляют его доступ.
Вы также избавитесь от мучений, связанных с просмотром журналов и сосредоточением внимания на фоновом шуме Интернета, а не на реальных посетителях, которые вам небезразличны.