Атаки типа «отказ в обслуживании» - это распространенная угроза, которую следует учитывать при размещении веб-сайта в Интернете. Хотя большинство уязвимостей системы безопасности можно предотвратить, избегая опасных привычек / приемов кодирования, защита DOS требует другого подхода.
В частности, меня не так беспокоят изощренные спамеры в сети с дорогим оборудованием (может быть, лучше моего собственного), которые будут принимать оплату за удаление сайтов. Я не могу себе представить, чтобы кто-то заплатил такую сумму денег только за то, чтобы ненадолго отключить мой сайт. Что меня больше беспокоит, так это «ленивые атаки», которые могут исходить от умных подростков, которые хотят проверить свою разрушительную силу на ничего не подозревающих сайтах, особенно тех, кто слышал о моем сайте и проектах на хакатонах и мероприятиях.
Эти «ленивые атаки» чрезвычайно дешевы и просты в исполнении и могут принимать форму простого скрипта браузера или программы флудинга, которая отправляет огромное количество запросов на серверы моего сайта. Мощная система (например, мой выделенный сервер) может быть отключена только слабой системой (например, сценарием световых ресурсов) путем использования слабых мест в более мощной системе и использования ее мощности для работы против самой себя.
В частности, я имею в виду, когда один и тот же пользователь постоянно делает запросы к серверу, которые почти не требуют усилий. Если отношение используемых ресурсов сервера к используемым клиентским ресурсам больше, чем, по крайней мере, соотношение доступных ресурсов сервера и клиента, то мой сайт можно очень легко закрыть.
if (Server Resources : Client Resources > Server Power : Client Power)
{
ServerDown();
}
Я не спрашиваю, как сделать мой сайт Apache DOS-доказательством, а скорее как это сделать. менее уязвим к дешевым, ленивым атакам DOS, ограничивая количество запросов, которые один клиент может отправить за определенный период времени, прежде чем его будут рассматривать как злоумышленника. Это особенно относится к сценариям php и другим страницам, которым требуется больше ресурсов для передачи содержимого клиенту.
Каков наилучший подход (таблица запретов mysql, настройки Apache, honeypot и т. Д.) Для защиты относительно небольшого сайта от дешевых DOS-атак? Первоначально задан на Stack Exchange
mod_reqtimeout ручки slowloris DoS-атаки, нацеленные httpd.
Он работает, устанавливая определенные тайм-ауты для отправки заголовка, тела сообщения http и различных диапазонов скорости.
Вы можете использовать определенные настройки, но, просто загрузив модуль, вы уже получаете хорошую настройку, чтобы избежать этого, проверьте официальную документацию об этом по адресу: http://httpd.apache.org/docs/2.4/mod/mod_reqtimeout.html
Что касается всплеска клиентских подключений или тому подобного, лучше всего использовать разумную настройку IDS / IPS + Firewall.