Я спросил вопрос по ИТ-безопасности StackExchange о защите от DoS-атак. Одним из ответов была установка Fail2Ban.
Я поговорил с людьми, которые администрируют сервер, и они сказали мне, что Fail2ban установлен по умолчанию, чтобы отслеживать неудачные попытки входа в систему по SSH. Они спросили, хочу ли я, чтобы он смотрел другие службы на сервере.
Какие сервисы я должен был наблюдать в Fail2ban, чтобы защититься от DoS-атак?
Будет ли это только HTTP-сервисы - наблюдать за множеством запросов с одного IP в течение x времени?
Один из атакованных создавал большое количество соединений с базой данных MySQL с помощью команды sleep
.
Fail2Ban наиболее эффективен при запрете IP-адресов за «неудачные попытки». Таким образом, это действительно не самый подходящий инструмент для отслеживания реальных DoS-атак. Я установил Fail2Ban для просмотра файла журнала ошибок Apache httpd. IP-адреса, у которых в течение 5 минут было 20 «плохих» запросов, забанены на 5 минут. Это сокращает количество скриптовых детишек и тому подобное, но действительно не защищает от целенаправленной атаки.
Mod_evasive и mod_security cam помогают сократить потенциальные векторы DoS, но, не зная, как работает ваш сайт, я не мог предложить никаких решений серебряной пули.
Существует довольно распространенное заблуждение, что выполнение каких-либо блоков может предотвратить или, по крайней мере, значительно облегчить DoS-атаку. Хотя это может быть верно в отношении простых и грубых атак, в действительности для действительно эффективных DoS-атак не требуется ответа от атакуемой системы. Желаемый эффект достигается простым заполнением системы входящими пакетами, причем даже неважно, что это за пакеты. Это работает по двум причинам.
Из этого должно быть очевидно, что fail2ban или что-то еще, кроме своего рода, может в лучшем случае иметь лишь минимальный эффект на те атаки, которые действительно ожидают ответа от цели.
У меня fail2ban на моих серверах настроен на бан на 15 минут после 5 неудачных попыток с исключенными диапазонами IP-адресов для внутренних пользователей. У меня было много попыток входа в систему из Китая, ничего не нацеленного, но все еще около 5-10 тысяч в день между 1:00 и 6:00. Каким бы полезным он ни был, он не повлияет на DoS.
DoS необходимо обрабатывать на уровне 3 или 4 по периметру вашей сети. Если атака попадет на сервер, ваш сервер будет отключен.
См. Эту статью о том, как защитить Apache с помощью fail2ban, включая настраиваемое правило для DoS-атак. https://komunity.komand.com/learn/article/server-administration/how-to-protect-ssh-and-apache-using-fail2ban-on-ubuntu-linux/