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

Как лучше всего обнаруживать DoS и DDoS в Fail2Ban?

Я настраиваю 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.