Назад | Перейти на главную страницу

Как заблокировать IP-адреса, которые вызывают чрезмерное количество ошибок 404 с помощью Fail2ban?

Я установил 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, которые замедляют его доступ.

Вы также избавитесь от мучений, связанных с просмотром журналов и сосредоточением внимания на фоновом шуме Интернета, а не на реальных посетителях, которые вам небезразличны.