Я настраиваю Fail2Ban на своем веб-сервере Ubuntu, чтобы он не стал жертвой DoS / DDoS. Я не хочу использовать Cloudflare, потому что мне нужно перенаправить свой DNS и использовать их сертификат SSl.
В настоящее время я нашел в сети скрипт, который проверяет наличие более одного HTTP HEAD
запросов в секунду или более 1 запроса на xmlrpc.php
в секунду. Я не думаю, что это достаточная защита, поскольку это не единственные типы запросов, которые люди могут использовать для выполнения DDoS-атаки.
Я хочу ограничить количество GET
/ POST
запросы с заданным IP-адресом могут выполняться в коротком окне, но я не уверен, как мне установить ограничение, поскольку большие страницы, загружающие много Javascript, CSS или изображений, сделают много GET
запросы в короткие сроки. Стоит ли мне смотреть на ограничение GET
/ POST
запросы, или я должен искать что-то еще? Зачем?
Может быть трудно увидеть разницу между хорошими и плохими парнями, просто проверив скорость запросов в секунду. Вам нужно будет запустить сценарий в своей среде, чтобы узнать, сколько запросов с одного IP-адреса за 5 минут (пример) является «нормальным» для вашего веб-сайта, прежде чем принимать окончательное решение.
Как только вы выясните нормальную скорость, появится возможность подсчитывать GET и / или POST (в зависимости от анализа вашего файла журнала) с помощью вашего скрипта.
Тем не менее, можно найти другие подозрительные действия в файлах журнала для фильтрации, такие как сканирование сценариев или исполняемых файлов и т. Д. (GET / POST, который «надеюсь» вызывает ошибку на хорошо настроенном веб-сервере ;-))
я использовал этот внешний отказ-2-бан-ссылка на моих собственных системах.
Хорошая настройка - проверить несколько соединений в течение 1 секунды. Я считаю, что 100 подключений за 1 секунду - это что-то очень подозрительное и должно быть заблокировано.
Поскольку вы используете Apache, я также рекомендую использовать mod_evasive вместе с fail2ban.
С помощью mod_evasive.
С помощью fail2ban.