Как бороться с DDoS-атакам или защита от ddos
Начало:
что это такое? DDoS или защита от ddos
Давайте разбираться:
По «ненашенски»- это: DistributedDenial of Serviceattack – т. е. в переводе: «распределенная атака на какой-либо сервис с целью принуждения его отказа от обслуживания пользователей» — получается, это попытка(и) сделать какой-либо сервис, как правило – интернет-сайт, недоступным для пользователей, путем бомбардирования его большим количеством трафика из множественных источников. В конечном итоге искомый сервер, обслуживающий нужный сайт, запросто перестает нормально функционировать, не справляясь с моментально возникшей большой перегрузкой.
По Самой стандартной «схеме» в таком «грязном» деле – требуется просто «замучить» систему сервера таким количеством новых запросов и соединений, чтобы сеть не могла справляться с большим их потоками, или же стала очень медлительной, что с ней не было возможности работать.
Тех. характеристики ddos атаки
Если перейти на конкретику, то DDoS атаки делается с помощью специальных «ботов», т.е. программами, которые используют бреши в системе конкретного сайта. Примером может послужить, система, не заточенная на управление огромным числом запаралеленных соединений, может выйти из строя созданием огромного количества этих самых соединений. В состоянии активности их требуется поддерживать, час от часу пересылая через них скромные объемы трафика. Следующий из вариантов – завалить систему огромным количеством запросов или сделать эти самые запросы достаточно трудоемкими и тяжелыми. Как Вы уже поняли мы пишем, не о «живых» соединениях, поэтому ботами довольно просто отправить громаднейшее количество запросов и очень быстро создать большое количество новых соединений.
Далее мы приведем тех. характеристики некоторых DDoS атак, по ним они распознаются, учитывая данные тех характеристики, с ними можно справиться:
Трафик как правило поступает с фиксированного количества IP-адресов, которые предназначены для атак. В конечном результате все такие адреса производят ,большое количество запросов и соединений, не похожего на количество соединений реального пользователя ПК.
Справочно: Такой поведение не всегда говорит о том, что проводится DDoS атака. Похожиедействия можно видеть при использовании forward-прокси (разумеется анонимного), т.к его IP-адрес на сервере нужен для «идентификации» обслуживаемого пользователя. Но, число запросов и заходов от незнакомого «прокси» будет меньше в разы, чем при атаке.
Так как мы говорим о ботах, которые производят трафик, «перегревающий» сервер сайта, интенсивность данного трафика намного выше, чем сможет делать реальный пользователь ПК.
Заголовок приложения User-Agent бывает виден в «неестественной» конфигурации.
Бывает, что атаку можно распознать и по заголовку «Referer».
Какие возможности у NGINX или NGINXPlus в борьбе с DDoS-атакой
Большинство характеристик NGINX или же NGINXPlus оказывают большую помощь для решения вопросов, как утихомирить DDoS-атаку. Действует эти сервисы по 2-м направлениям:
1. Через управление трафиком входящим на сайт
2. Через контроль распределения трафика по серверам (внутренним).
«Ограничение» по частоте запросов
Можно произвести регулировку частоты запросов (входящих) через NGINX или же NGINXPlus до числа, характерного при работе «реальных» пользователей. Например, Вы предполагаете, что на главную страницу Вашего сайта пользователи обычно заходят каждые 10 секунд. Основываясь на этом, можно просто настроить оборудование на данную частоту запросов к данной странице т.е – 600 в минуту.
Директива «limit_req_zone» отвечает за формирование общей зоны памяти «one», предназначенной для хранения «установленного» количества запросов по определенному ключу. В этом случае — это IP-адрес клиента «($binary_remote_addr)».
А Директива «limit_req» в блоке «/login.html» посылает к этой самой зоне памяти.
Ограничиваем количество соединений
Можно ограничить число соединений, которые исходят от одного подозрительного IP-адреса. Конечно же предварительно оценив их количество, характерное для реального человека. К примеру, Вы можете установить количество не более 10-ти заходов с одного IP в такую область — как «/store/» сайта.
Здесь также, директива «limit_conn_zone» формирует всю общую «зону» памяти «add» для сохранения всех запросов по определенному ключу – клиентскому IP-адресу «$binary_remote_addr. limit_conn» в теле самого «/store/» посылает к зоне памяти и производит устанавливку ограничения 10-ти соединениям с каждого клиентского IP.
Закрываем медленные соединения
Можно полностью закрыть все соединения, которые отсылают данные очень редко, это может являться признаком того, что их основная цель – быть открытыми долгое временя и мешать новым соединениям. Этот, тип хакерской программы для хакерской атаки называется — «Slowloris». Тут Директива «client_body_timeout» производит контроль времени ожидания NGINX между всеми записями в боди клиента. А, директива «client_header_timeout» делает все то же самое, но для «заголовков». По умолчанию в двух случаях эти цифры равны 60 секундам.
Здесь мы этот интервал устанавливам на число в 5 секунд.
Вносить некоторые IP-адреса в «черный список»
Если Вам удалось распознать IP, которые используются для атак, можно вносить их в «черный список» с помощью директивы «deny», NGINX и NGINXPlus более не будет реакции на запросы с данных адресов.
Пример:
Вы определили, что пиратская атака идет из области 132.132.132.1 через адрес 132.132.132.24:
А коль адресов не один:
А здесь будет продолжение статьи — как бороться с DDoS-атакам или защита от ddos атак. А пока Вы можете почитать сколько стоит oculus rift