Флуд не дойдёт. Новая опция на сайте

Топ-2 честных онлайн казино за 2020 год:

Устоять любой ценой: методы борьбы с DoS/DDoS-атаками

Содержание статьи

Твое утро начинается с чтения багрепортов и анализа логов. Ты ежедневно
обновляешь ПО и ежечасно дорабатываешь правила брандмауэра. Snort твой лучший
друг, а Zabbix — невидимый помощник. Ты построил настоящий бастион, к которому
не подобраться ни с одной стороны. Но! Ты совершенно беззащитен против самой
коварной и подлой атаки на свете — DDoS.

Трудно сказать, когда впервые появился термин DoS-атака. Специалисты говорят
о 1996-м, попутно намекая, что до широких масс этот тип атак «дошел» только в
1999 году, когда один за другим попадали web-сайты Amazon, Yahoo, CNN и eBay.
Еще раньше DoS-эффект использовали для тестирования устойчивости систем и
каналов связи. А если копнуть глубже и воспользоваться термином DoS для
обозначения явления, то становится ясно, что он существовал всегда, со времен
первых мейнфреймов. Вот только задумываться о нем как о средстве устрашения
начали гораздо позже.

Говоря простым языком, DoS-атаки — это некоторый вид злонамеренной
деятельности, ставящей своей целью довести компьютерную систему до такого
состояния, когда она не сможет обслуживать правомерных пользователей или
правильно выполнять возложенные на нее функции. К состоянию «отказ в
обслуживании» обычно приводят ошибки в ПО или чрезмерная нагрузка на сетевой
канал или систему в целом. В результате чего ПО, либо вся операционная система
машины, «падает» или же оказывается в «зацикленном» состоянии. А это грозит
простоями, потерей посетителей/клиентов и убытками.

Анатомия DoS-атак

DoS-атаки подразделяются на локальные и удаленные. К локальным относятся
различные эксплойты, форк-бомбы и программы, открывающие по миллиону файлов или
запускающие некий циклический алгоритм, который сжирает память и процессорные
ресурсы. На всем этом мы останавливаться не будем. А вот удаленные DoS-атаки
рассмотрим подробнее. Они делятся на два вида:

  1. Удаленная эксплуатация ошибок в ПО с целью привести его в нерабочее
    состояние.
  2. Flood — посылка на адрес жертвы огромного количества бессмысленных (реже
    – осмысленных) пакетов. Целью флуда может быть канал связи или ресурсы
    машины. В первом случае поток пакетов занимает весь пропускной канал и не
    дает атакуемой машине возможность обрабатывать легальные запросы. Во втором
    — ресурсы машины захватываются с помощью многократного и очень частого
    обращения к какому-либо сервису, выполняющему сложную, ресурсоемкую
    операцию. Это может быть, например, длительное обращение к одному из
    активных компонентов (скрипту) web-сервера. Сервер тратит все ресурсы машины
    на обработку запросов атакующего, а пользователям приходится ждать.

В традиционном исполнении (один атакующий — одна жертва) сейчас остается
эффективным только первый вид атак. Классический флуд бесполезен. Просто потому
что при сегодняшней ширине канала серверов, уровне вычислительных мощностей и
повсеместном использовании различных анти-DoS приемов в ПО (например, задержки
при многократном выполнении одних и тех же действий одним клиентом), атакующий
превращается в надоедливого комара, не способного нанести какой бы то ни было
ущерб. Но если этих комаров наберутся сотни, тысячи или даже сотни тысяч, они
легко положат сервер на лопатки. Толпа — страшная сила не только в жизни, но и в
компьютерном мире. Распределенная атака типа «отказ в обслуживании» (DDoS),
обычно осуществляемая с помощью множества зомбифицированных хостов, может
отрезать от внешнего мира даже самый стойкий сервер, и единственная эффективная
защита — организация распределенной системы серверов (но это по карману далеко
не всем, привет Google).

Методы борьбы

Опасность большинства DDoS-атак – в их абсолютной прозрачности и
«нормальности». Ведь если ошибка в ПО всегда может быть исправлена, то полное
сжирание ресурсов — явление почти обыденное. С ними сталкиваются многие
администраторы, когда ресурсов машины (ширины канала) становится недостаточно,
или web-сайт подвергается слэшдот-эффекту (twitter.com стал недоступен уже через
несколько минут после первого известия о смерти Майкла Джексона). И если резать
трафик и ресурсы для всех подряд, то спасешься от DDoS, но потеряешь добрую
половину клиентов.

Выхода из этой ситуации фактически нет, однако последствия DDoS-атак и их
эффективность можно существенно снизить за счет правильной настройки
маршрутизатора, брандмауэра и постоянного анализа аномалий в сетевом трафике. В
следующей части статьи мы последовательно рассмотрим:

  • способы распознавания начинающейся DDoS-атаки;
  • методы борьбы с конкретными типами DDoS-атак;
  • универсальные советы, которые помогут подготовиться к DoS-атаке и
    снизить ее эффективность.

В самом конце будет дан ответ на вопрос: что делать, когда началась
DDoS-атака.

Борьба с flood-атаками

Итак, существует два типа DoS/DDoS-атак, и наиболее распространенная из них
основана на идее флуда, то есть заваливания жертвы огромным количеством пакетов.
Флуд бывает разным: ICMP-флуд, SYN-флуд, UDP-флуд и HTTP-флуд. Современные
DoS-боты могут использовать все эти виды атак одновременно, поэтому следует
заранее позаботиться об адекватной защите от каждой из них.

Лучшие онлайн казино на русском языке:

1. ICMP-флуд.

Очень примитивный метод забивания полосы пропускания и создания нагрузок на
сетевой стек через монотонную посылку запросов ICMP ECHO (пинг). Легко
обнаруживается с помощью анализа потоков трафика в обе стороны: во время атаки
типа ICMP-флуд они практически идентичны. Почти безболезненный способ абсолютной
защиты основан на отключении ответов на запросы ICMP ECHO:

Или с помощью брандмауэра:

# iptables -A INPUT -p icmp -j DROP —icmp-type 8

2. SYN-флуд.

Один из распространенных способов не только забить канал связи, но и ввести
сетевой стек операционной системы в такое состояние, когда он уже не сможет
принимать новые запросы на подключение. Основан на попытке инициализации
большого числа одновременных TCP-соединений через посылку SYN-пакета с
несуществующим обратным адресом. После нескольких попыток отослать ответный
ACK-пакет на недоступный адрес большинство операционок ставят неустановленное
соединение в очередь. И только после n-ой попытки закрывают соединение. Так как
поток ACK-пакетов очень велик, вскоре очередь оказывается заполненной, и ядро
дает отказ на попытки открыть новое соединение. Наиболее умные DoS-боты еще и
анализируют систему перед началом атаки, чтобы слать запросы только на открытые
жизненно важные порты. Идентифицировать такую атаку просто: достаточно
попробовать подключиться к одному из сервисов. Оборонительные мероприятия обычно
включают в себя:

Увеличение очереди «полуоткрытых» TCP-соединений:

# sysctl -w net.ipv4.tcp_max_syn_backlog=1024

Уменьшение времени удержания «полуоткрытых» соединений:

# sysctl -w net.ipv4.tcp_synack_retries=1

Включение механизма TCP syncookies:

# sysctl -w net.ipv4.tcp_syncookies=1

Ограничение максимального числа «полуоткрытых» соединений с одного IP к
конкретному порту:

# iptables -I INPUT -p tcp —syn —dport 80 -m iplimit —iplimit-above
10 -j DROP

3. UDP-флуд.

Типичный метод захламления полосы пропускания. Основан на бесконечной посылке
UDP-пакетов на порты различных UDP-сервисов. Легко устраняется за счет отрезания
таких сервисов от внешнего мира и установки лимита на количество соединений в
единицу времени к DNS-серверу на стороне шлюза:

# iptables -I INPUT -p udp —dport 53 -j DROP -m iplimit —iplimit-above 1

4. HTTP-флуд.

Один из самых распространенных на сегодняшний день способов флуда. Основан на
бесконечной посылке HTTP-сообщений GET на 80-ый порт с целью загрузить
web-сервер настолько, чтобы он оказался не в состоянии обрабатывать все
остальные запросы. Часто целью флуда становится не корень web-сервера, а один из
скриптов, выполняющих ресурсоемкие задачи или работающий с базой данных. В любом
случае, индикатором начавшейся атаки будет служить аномально быстрый рост логов
web-сервера.

Методы борьбы с HTTP-флудом включают в себя тюнинг web-сервера и базы данных
с целью снизить эффект от атаки, а также отсеивание DoS-ботов с помощью
различных приемов. Во-первых, следует увеличить максимальное число коннектов к
базе данных одновременно. Во-вторых, установить перед web-сервером Apache легкий
и производительный nginx – он будет кэшировать запросы и отдавать статику. Это
решение из списка «must have», которое не только снизит эффект DoS-атак, но и
позволит серверу выдержать огромные нагрузки. Небольшой пример:

# vi /etc/nginx/nginx.conf
# Увеличиваем максимальное количество используемых файлов
worker_rlimit_nofile 80000;
events <
# Увеличиваем максимальное количество соединений
worker_connections 65536;
# Использовать эффективный метод epoll для обработки соединений
use epoll;
>
http <
gzip off;
# Отключаем таймаут на закрытие keep-alive соединений
keepalive_timeout 0;
# Не отдавать версию nginx в заголовке ответа
server_tokens off;
# Сбрасывать соединение по таймауту
reset_timedout_connection on;
>
# Стандартные настройки для работы в качестве прокси
server <
listen 111.111.111.111 default deferred;
server_name host.com www.host.com;
log_format IP $remote_addr;
location / <
proxy_pass http://127.0.0.1/;
>
location

* \.(jpeg|jpg|gif|png|css|js|pdf|txt|tar)$ <
root /home/www/host.com/httpdocs;
>
>

В случае необходимости можно задействовать nginx-модуль
ngx_http_limit_req_module, ограничивающий количество одновременных подключений с
одного адреса (http://sysoev.ru/nginx/docs/http/ngx_http_limit_req_module.html).
Ресурсоемкие скрипты можно защитить от ботов с помощью задержек, кнопок «Нажми
меня», выставления кукисов и других приемов, направленных на проверку
«человечности».

Универсальные советы

Чтобы не попасть в безвыходное положение во время обрушения DDoS-шторма на
системы, необходимо тщательным образом подготовить их к такой ситуации:

  1. Все сервера, имеющие прямой доступ во внешнюю сеть, должны быть
    подготовлены к простому и быстрому удаленному ребуту (sshd спасет отца
    русской демократии). Большим плюсом будет наличие второго,
    административного, сетевого интерфейса, через который можно получить доступ
    к серверу в случае забитости основного канала.
  2. ПО, используемое на сервере, всегда должно находиться в актуальном
    состоянии. Все дырки — пропатчены, обновления установлены (простой, как
    сапог, совет, которому многие не следуют). Это оградит тебя от DoS-атак,
    эксплуатирующих баги в сервисах.
  3. Все слушающие сетевые сервисы, предназначенные для административного
    использования, должны быть спрятаны брандмауэром ото всех, кто не должен
    иметь к ним доступ. Тогда атакующий не сможет использовать их для проведения
    DoS-атаки или брутфорса.
  4. На подходах к серверу (ближайшем маршрутизаторе) должна быть установлена
    система анализа трафика (NetFlow в помощь), которая позволит своевременно
    узнать о начинающейся атаке и вовремя принять меры по ее предотвращению.

Добавь в /etc/sysctl.conf следующие строки:

# vi /etc/sysctl.conf
# Защита от спуфинга
net.ipv4.conf.default.rp_filter = 1
# Проверять TCP-соединение каждую минуту. Если на другой стороне — легальная
машина, она сразу ответит. Дефолтовое значение — 2 часа.
net.ipv4.tcp_keepalive_time = 60
# Повторить пробу через десять секунд
net.ipv4.tcp_keepalive_intvl = 10
# Количество проверок перед закрытием соединения
net.ipv4.tcp_keepalive_probes = 5

Следует отметить, что все приемы, приведенные в прошлом и этом разделах,
направлены на снижение эффективности DDoS-атак, ставящих своей целью
израсходовать ресурсы машины. От флуда, забивающего канал мусором, защититься
практически невозможно, и единственно правильный, но не всегда осуществимый
способ борьбы заключается в том, чтобы «лишить атаку смысла». Если ты заимеешь в
свое распоряжение действительно широкий канал, который легко пропустит трафик
небольшого ботнета, считай, что от 90% атак твой сервер защищен. Есть более
изощренный способ защиты. Он основан на организации распределенной
вычислительной сети, включающей в себя множество дублирующих серверов, которые
подключены к разным магистральным каналам. Когда вычислительные мощности или
пропускная способность канала заканчиваются, все новые клиенты перенаправляются
на другой сервер (или же постепенно «размазываются» по серверам по принципу
round-robin). Это невероятно дорогая, но очень стойкая структура, завалить
которую практически нереально.

Другое более-менее эффективное решение заключается в покупке дорогостоящих
хардварных систем Cisco Traffic Anomaly Detector и Cisco Guard. Работая в
связке, они могут подавить начинающуюся атаку, но, как и большинство других
решений, основанных на обучении и анализе состояний, дают сбои. Поэтому следует
хорошенько подумать перед тем, как выбивать из начальства десятки тысячи
долларов на такую защиту.

Кажется, началось. Что делать?

Перед непосредственным началом атаки боты «разогреваются», постепенно
наращивая поток пакетов на атакуемую машину. Важно поймать момент и начать
активные действия. Поможет в этом постоянное наблюдение за маршрутизатором,
подключенным к внешней сети (анализ графиков NetFlow). На сервере-жертве
определить начало атаки можно подручными средствами.

Наличие SYN-флуда устанавливается легко — через подсчет числа «полуоткрытых»
TCP-соединений:

# netstat -na | grep «:80\ » | grep SYN_RCVD

В обычной ситуации их не должно быть совсем (или очень небольшое количество:
максимум 1-3). Если это не так — ты атакован, срочно переходи к дропанью
атакующих.

С HTTP-флудом несколько сложнее. Для начала нужно подсчитать количество
процессов Apache и количество коннектов на 80-ый порт (HTTP-флуд):

# ps aux | grep httpd | wc -l
# netstat -na | grep «:80\ » | wc -l

Значения, в несколько раз превышающие среднестатистические, дают основания
задуматься. Далее следует просмотреть список IP-адресов, с которых идут запросы
на подключение:

# netstat -na | grep «:80\ » | sort | uniq -c | sort -nr | less

Однозначно идентифицировать DoS-атаку нельзя, можно лишь подтвердить свои
догадки о наличии таковой, если один адрес повторяется в списке слишком много
раз (да и то, это может говорить о посетителях, сидящих за NAT’ом).
Дополнительным подтверждением будет анализ пакетов с помощью tcpdump:

# tcpdump -n -i eth0 -s 0 -w output.txt dst port 80 and host IP-сервера

Показателем служит большой поток однообразных (и не содержащих полезной
информации) пакетов от разных IP, направленных на один порт/сервис (например,
корень web-сервера или определенный cgi-скрипт).

Окончательно определившись, начинаем дропать неугодных по IP-адресам (будет
гораздо больше эффекта, если ты сделаешь это на маршрутизаторе):

# iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp —destination-port http -j
DROP

Или сразу по подсетям:

# iptables -A INPUT -s xxx.xxx.0.0/16 -p tcp —destination-port http -j
DROP

Это даст тебе некоторую фору (совсем маленькую; зачастую IP-адрес источника
спуфится), которую ты должен использовать для того, чтобы обратиться к
провайдеру/хостеру (с приложенными к сообщению логами web-сервера, ядра,
брандмауэра и списком выявленных тобой IP-адресов). Большинство из них, конечно,
проигнорируют это сообщение (а хостинги с оплатой трафика еще и порадуются —
DoS-атака принесет им прибыль) или просто отключат твой сервер. Но в любом
случае это следует сделать обязательно, – эффективная защита от DDoS возможна
только на магистральных каналах. В одиночку ты справишься с мелкими нападками,
направленными на истощение ресурсов сервера, но окажешься беззащитным перед
более-менее серьезным DDoS’ом.

Борьба с DDoS во FreeBSD

Уменьшаем время ожидания ответного пакета на запрос SYN-ACK (защита от
SYN-флуда):

Превращаем сервер в черную дыру. Так ядро не будет слать ответные пакеты при
попытке подключиться к незанятым портам (снижает нагрузку на машину во время
DDoS’а на случайные порты):

# sysctl net.inet.tcp.blackhole=2
# sysctl net.inet.udp.blackhole=1

Ограничиваем число ответов на ICMP-сообщения 50-ю в секунду (защита от
ICMP-флуда):

Увеличиваем максимальное количество подключений к серверу (защита от всех
видов DDoS):

Включаем DEVICE_POLLING — самостоятельный опрос сетевого драйвера ядром на
высоких нагрузках (существенно снижает нагрузку на систему во время DDoS’а):

  1. Пересобираем ядро с опцией «options DEVICE_POLLING»;
  2. Активируем механизм поллинга: «sysctl kern.polling.enable=1»;
  3. Добавляем запись «kern.polling.enable=1» в /etc/sysctl.conf.

Наивный Internet

Во времена своего рассвета DoS-атаки были настоящей катастрофой для серверов
и обычных рабочих станций. Web-сайт можно было легко завалить с помощью
одного-единственного хоста, реализующего атаку типа Smurf. Рабочие станции с
установленной ОС Windows падали, как доминошки, от атак типа Ping of Death, Land,
WinNuke. Сегодня всего этого не стоит опасаться.

Крупнейшие ботнеты

Kraken — 400 тысяч
компьютеров.
Srizbi — 315 тысяч
компьютеров.
Bobax — 185 тысяч компьютеров.
Rustock — 150 тысяч компьютеров.
Storm — 100 тысяч компьютеров.
Psybot — 100 тысяч ADSL-маршрутизаторов, основанных на Linux.
Ботнет BBC — 22 тысячи компьютеров.
Экспериментальный ботнет,
созданный компанией BBC.

След в истории

1997 год — DDoS-атака на web-сайт Microsoft. Один день молчания.
1999 год – «вне зоны действия» оказались web-сайты Yahoo, CNN, eBay и др.
Октябрь 2002 — атака на корневые DNS-серверы интернета. На некоторое время были
выведены из строя 7 из 13 серверов.
21 февраля 2003 года — DDoS-нападение на LiveJournal.com. Два дня сервис
находился в парализованном состоянии, лишь иногда подавая признаки жизни.

Интеллектуальные системы

Интересную альтернативу решениям Cisco выпускает компания Reactive Networks (www.reactivenetworks.com).
Их продукт под названием FloodGuard представляет собой аппаратный комплекс,
состоящий из детекторов и исполнительных модулей. Детекторы, установленные на
брандмауэрах, маршрутизаторах и свитчах, постоянно мониторят трафик и создают
его профиль на основе таких параметров, как объем пакетов, источник,
направление, тип и т.д. В случае возникновения аномалий детектор посылает все
подробности о произошедшем исполнительным модулям, располагающимся на
маршрутизаторах в разных сегментах сети. Получив сообщение от детектора,
исполнительные модули начинают действовать: они отыскивают паразитный трафик в
проходящих пакетах и, в случае удачи, оповещают об этом предыдущие по ходу
трафика модули и посылают им инструкции по активации фильтров на маршрутизаторах.
В результате, перед потоком флуд-трафика должен образоваться заслон, который
будет быстро перемещаться в сторону его источника.

Подробнее о протоколе NetFlow можно прочитать в статье «Поток
пакетов — на контроль!», опубликованной в июльском номере ][ за 2007 год.

Round-robin — алгоритм выравнивания нагрузки распределенной вычислительной
системы методом перебора ее элементов по круговому циклу.

В поставку OpenBSD входит утилита tcpdrop(8), с помощью которой можно
отбросить TCP-подключение (tcpdrop 192.168.1.1:80 192.168.1.12:26747).

ДДоС атака на сайт. Защита от DDoS

Решил написать обзорную статью на популярную в настоящее время тему, которой сам интересуюсь. Что такое современная ddos атака, как ее провести и как защитить сайт от ддос атак. Не скажу, что у меня есть какой-то большой реальный опыт в этой теме, но с небольшими атакам сталкивался и противостоял.

Введение

Как я уже сказал, большого опыта работы под ддос атаками у меня нет. Несколько раз я ловил ddos на свой сайт, несколько раз на сайты своих клиентов. Это были небольшие атаки, с которыми так или иначе можно было работать.

Мне интересна эта тема просто для общего развития. Я читаю статьи, смотрю доклады, знакомлюсь с сервисами по этой теме.

Что такое современная ddos атака

DDoS расшифровывается как Distributed Denial of Service — атака на информационную систему с целью довести ее до такого состояния, когда она не сможет обслуживать запросы клиентов, для которых она работает. Ддос атака может проводиться как на отдельный сайт, так и на сервер или сеть, обслуживающую масштабную информационную систему (например, ЦОД).

В чем же сущность ddos атаки? По своей сути это распределенная DoS (Denial of Service) атака. Отличие DoS от DDoS как раз в том, что DoS это просто одиночная атака, а DDoS это масштабная атака, состоящая из множества дос атак, выполняемых из разных мест.

Виды ддос атак

Для проведения ддос атак чаще всего используют ботнет. От размера ботнета зависит мощность атаки. Из определения понятно, что ddos — это когда много запросов направляют на какую-нибудь цель. А вот цели и типы запросов могут быть принципиально разные. Рассмотрю основные варианты ddos атак, которые встречаются в современном интернете. Их можно разделить на 2 основных типа:

  1. Атака на уровне L7, то есть на седьмом уровне модели OSI. Нагрузка на приложение. Обычно это HTTP Flood, но не обзательно. Атака может быть и на открытую в мир MySQL или другую базу, почтовый сервер или даже SSH. Данная атака направлена на то, чтобы как можно меньшим трафиком напрягать наиболее тяжелое и уязвимое место сервиса. Обычно вредоносные запросы маскируются под легитимные, что осложняет отражение.
  2. Уровень L3 L4, то есть сетевой и транспортный уровни модели OSI. Чаще всего это SYN или UDP flood. С помощью ддос атак этого типа стараются загрузить все каналы связи, чтобы таким образом помешать работе сервиса. Как правило, вредоносный трафик легко отличим от легитимного, но его так много, что фильтрация просто не справляется. Все входящие каналы забиваются флудом.

Рассмотрим подробнее конкретные цели для описанных выше атак. Начнем с L7 атак. В качестве цели могут использоваться следующие объекты:

  • Какая-то тяжелая страница на сайте. Атакующий простым просмотром сайта с помощью DevTools определяет наиболее тяжелые страницы. Чаще всего это поиск, большие каталоги товаров или заполняемые формы. Определив узкое место, туда направляется шквал запросов, чтобы положить сайт. Для эффективности, можно нагружать сразу все, что показалось тяжелым. С таким подходом можно и десятью запросами в секунду уронить неподготовленный сайт.
  • Загрузка файлов с сайта. Если вы размещаете более ли менее крупные файлы непосредственно на веб сервере, то через них его будет очень легко положить, если не настроить ограничения на скачивание. Обычными параллельными загрузками можно так нагрузить сервер, что сайт перестанет отвечать.
  • Атака на публичный API. Сейчас это очень популярный инструмент из-за его простоты и легкости использования. Защищать его сложно, поэтому он часто может быть целью ddos атак.
  • Любые другие приложения, которые доступны из инетрнета. Часто это почтовые программы, ssh сервер, серверы баз данных. Все эти службы можно нагрузить, если они смотрят напрямую в интернет.

С уровня L3, L4 обычно делают следующие ддос атаки:

  • UDP-flood. Это вообще классика. С подобными атаками сталкивались практчески все, кто держит открытыми dns и ntp сервисы. В них постоянно находят уязвимости, позволяющие использовать эти службы для ddos атак на сервера. Злоумышленники сканируют интернет, находят неправильно настроенные или уязвимые сервера, отправляют туда запросы, подделывая адрес источника. В ответ эти серверы шлют несколько запросов по поддельным адресам. Таким способом злоумышленники в несколько раз усиливают свои атаки.
  • SYN-flood. Тоже старый вид атак типа отказ от обслуживания. Злоумышленник отправляет большое количество SYN запросов на установку соединения. В общем случае, с помощью syn запросов забивают всю очередь на подключения. В итоге легитимные трафик перестает ходить, сервис не отвечает клиентам.

На основе описания основных типов ddos атак рассмотрим простые и очевидные способы противодействия.

Защита от ddos атак с помощью платных сервисов

Для проведения обычной DoS атаки могут использоваться какие-то программы или скрипты. Пртив таких атак не очень сложно защититься. Примеры таких программ я приведу отдельно. Если же идет масштабная ддос атака, то тут уже совсем другое дело.

Защита сайта от ddos атак может быть двух типов:

  1. Профессиональная защита с помощью платных сервисов и перенаправления трафика на них.
  2. Защита сервера от ддос своими силами.

Ниже я опишу различные методы защиты от ддос. Сразу скажу, что самостоятельно отбиться от серьезной атаки не получится. Вам могут тупо залить столько трафика, что все каналы связи будут загружены и хостер вас тут же отключит. Сам с этим несколько раз сталкивался. Никакие организационные меры не помогут. Но обо всем по порядку. Начнем с платных сервисов по защите.

Скрытие и защита реального ip адреса

Как же защитить свой сайт от ddos атаки? Первое и самое главное правило, если вам необходима качественная и профессиональная защита от DDoS — не раскрывайте свои прямые ip адреса. Если вас атакуют, а вам надо как можно быстрее защититься — сразу же выбирайте сервис по защите от ддос, настраивайте проксирование трафика через него, меняйте свои прямые IP адреса и ни в коем случае не светите их нигде. Иначе никакой платный сервис не поможет. Вам будут напрямую устраивать ddos атаку по ip, минуя защиту.

Простое сканирование портов по старому ip позволит определить все доступные службы на сервере и продолжить атаку на сервер напрямую по адресу, минуя защиту. Вам нужно разрешить подключения к своему серверу только с адресов службы защиты. Не забудьте закрыть и ssh службу фаерволом. Незащищенный сервер можно без проблем завалить через ssh обычным syn флудом и fail2ban не спасет. Там такой лог будет, что fail2ban сам положит сервер.

Реальный ip адрес можно определить через поддомены, которые вы забудете закрыть защитой, через заголовки писем email, если почта находится на том же сервере, где сайт, через http заголовки, если вы добавляли в них информацию об ip. Мест, где можно спалить свой реальный ip может быть много. Вам нужно потрудиться и закрыть все эти места. Пока этого не сделаете, профессиональная защита может быть неэффективной.

Также в интернете есть сервисы, которые по имени домена позволяют определить все их внешние ip адреса, которые ранее были засвечены. Если вы какое-то время были доступны в интернете под своим реальным ip адресом, он практически со 100% вероятностью уже засвечен и будет легко определен.

Какой сервис защиты от ддос атак выбирать, я не знаю. Конечно, начать проще всего с cloudflare, так как у них есть бесплатный тариф. Но там много ограничений, плюс надо немного разбираться в том, как работает этот сервис. В общем, бесплатно, без должного опыта защиты от ddos вы вряд ли что-то сделаете. Выбирайте кого-то еще. В качестве примера я уже привел StormWall выше. Начальный тариф там подъемный, можно начать с него.

Настройка firewall

Как я уже сказал выше, обязательно закройте фаерволом все, что только можно. Злоумышленники не должны ничего видеть на вашем реальном сервере. Просто перенести, к примеру, ssh на какой-то другой порт, отличный от 22 тут не подойдет. Закрывайте все и открывайте доступ только со своих доверенных адресов. Web трафик разрешайте только с серверов защиты. Их адреса вам предоставит поддержка.

Подробнее о настройке iptables, если используете этот фаервол, можете прочитаь в моем материале по теме.

Аренда хостинга с защитой от ddos

Желательным, но не обязательным шагом по защите сервера от ddos атаки — увеличение его производительности, либо переезд на специальные виртуальные серверы, которые изначально поддерживают защиту от ддос. Это не обязательно поможет, но если есть возможность, то нарастите мощности или переедьте в другое место. Это позволит вам прожить немного дольше и расширит зону для маневра.

Когда ваш сервер и так еле тянет нагрузку, а тут еще идет атака, он очень быстро загнется. Если мощности не хватает с достаточным запасом, то атакующие могут пройти защиту очень малым объемом трафика, который невозможно будет отличить от легитимного, и этого будет достаточно, чтобы сайт стал недоступен. Специализированный хостинг учитывает эти моменты и предлагает решения.

Настройка кэширования

Кешированием стоит заниматься сразу, а не тогда, когда вас уже атакуют. Тем не менее, если у вас не оптимизирован сайт или сервис, защитить его будет очень сложно. Как я уже написал выше, защита может пропускать часть трафика, который будет очень похож на легитимный. И этого трафика может хватить, чтобы загрузить до отказа сервер.

Вопрос кэширования достаточно сложный и сходу трудно будет предложить эффективные решения. Тем не менее, если для вас важно хоть что-то отвечать пользователям, а не показывать ошибку веб сервера, то закэшируйте в статику то, что должно даваться динамически. Пусть во время атаки хотя бы сохранится видимость того, что сайт работает. Это все равно лучше, чем полная остановка работы.

Иногда ддос атака может быть вызвана вполне законными способами. К примеру, ссылку на ваш сайт опубликовали где-то в очень популярном месте. И к вам пошел шквал настоящих пользователей. Они все реальные, но по сути вы получаете ддос атаку на свой сайт, которая может привести к его отказу и вы не получите прибыль, к примеру, с показа рекламы в эти моменты.

В таком случае, лучше будет быстро закэшировать посещаемые страницы и отдавать статику, несмотря на то, что не будут работать комментарии, какая-то лента и т.д. Главное, что пользователи смогут прочитать контент, посмотреть рекламу, а вы получить прибыль. Когда нагрузка спадет, сможете проанализировать ситуацию и выработать какое-то рабочее решение на будущее.

Вынести smtp на отдельный сервер

Не используйте web сервер в качестве почтового сервреа. По возможности, выносите функции отправки email сообщений куда-то на сторону. Это может быть как специальный почтовый сервис, так и ваш собственный, но настроенный отдельно. Это полезная практика не только во время ddos атак, но и в общем случае. Как настроить почтовый сервер можете прочитать в моих статьях.

Мало того, что через почтовый сервер можно легко узнать ваши реальные ip адреса, так это дополнительные точки для поиска уязвимостей и отказа. Лучше перестраховаться и минимизировать риски.

Я рассказал, как может быть настроена защита от ddos атак с помощью платных сервисов. В качестве примера привел компанию StormWall. Она достаточно известна, цены доступны, русская поддержка. Они выступают на различных мероприятиях и делятся знаниями. Вот пример отличного выступления, которое я сам в свое время с удовольствием посмотрел и взял их на примету.

Защита сайта от ддос своими силами

Давайте теперь рассмотрим, что мы сможем сделать сами, чтобы защитить свой сайт от распределенной атаки. Сразу скажу, что не очень много. Я немного разбирал эту тему в отдельной статье по защите web сервера от ddos. Там описано несколько простых и эффективных действий, которые позволят вам защититься от простенькой атаки, которую будет выполнять какой-то любитель или школьник из небольшого количества мест.

Если атака будет распределенная и масштабная, то своими силами вы ничего не сможете сделать. Вас просто будет отключать хостер, если вы используете обычный VPS или выделенный срервер, без защиты от ддоса. Я сам с этим несколько раз сталкивался. Что бы ты не делал, ничего не помогает. Как только трафика приходит слишком много, вас отключают, даже если сервер еще вполне себе тянет нагрузку. Необходимо обращаться в специализированные сервисы, переправлять весь трафик туда и проксировать его к себе уже очищенным.

Как сделать ддос атаку самому

Рассмотрим на примерах, как в принципе можно провести ddos атаку. «Чтобы поймать преступника, нужно думать как преступник». По понятным причинам, я расскажу только немного теории, без практических примеров, во избежание, так сказать. Хотя у меня и примеров то нет. Я сам никогда всерьез не занимался ddos атаками.

У Яндекса есть отличный инструмент для нагрузочного тестирования — Яндекс.Танк. Когда я с ним знакомился, решил нагрузить несколько первых попавшихся под руку сайтов. К моему удивлению, я положил все сайты, которые пробовал нагрузить 🙂 Сразу скажу, что это были небольшие блоги таких же любителей блоггинга, как и я.

Для того, чтобы сделать ddos атаку самому на неподготовленный сайт достаточно из 3-5 разных мест запустить Яндекс.Танк и указать в качестве целей набор наиболее тяжелых страниц. Обычному динамическому сайту сразу станет плохо. Когда владелец спохватится и начнет разбираться, он достаточно быстро забанит ваши ip адреса сам, либо с помощью хостера и на этом ваша ддос атака закончится.

Вам придется искать новые ip адреса для проведения очередной ддос атаки, что весьма хлопотно, а вот блокировать их будет легко. Дальше уже нужно включать голову и думать, как оперативно и легко менять ip адреса. В голову приходят готовые списки с прокси, скрипты, curl, python и т.д. Не буду дальше развивать эту мысль. В общем и целом, самому научиться ддосить на начальном уровне не так сложно. Достаточно базовых знаний linux и скриптинга.

Сразу скажу, что профессиональные службы по защите от ддос, наподобии StormWall или CloudFlare, такие ваши атаки отметут, даже не заметив. Это может быть интересно только в качестве саморазвития. Все современные и эффективные ddos атаки делают с помощью ботнет сетей.

Программы для ddos атак

Я решил сделать раздел с описанием программ для ддос вот с какой целью. Если вам это интересно, то наверняка вы будете искать в интернете подобные программы, как это делал я в свое время. Сразу предупреждаю, что сами эти программы и сайты, которые их распространяют, набиты вирусами и прочими вредоносами. Будьте очень внимательны и осторожны при поиске программ.

Подобные программы рекомендуется использовать, чтобы проверить, как ваш сайт будет работать под их натиском. Если вам будут организовывать ddos, то возможно начнут именно с таких простых средств. Так что имеет смысл после настройки защиты посмотреть, а как она реально работает.

Ddos программы делятся на 3 типа:

  1. Программы для проведения syn и udp флуда.
  2. Программные комплексы для создания своего ботнета.
  3. Stresser сервисы.

Программы для проведения syn и udp флуда

Из первых наиболее популярны:

  • Server Flooder. Простая программа, которая может долбить запросами конкретный ip адрес и порт. Защита от такой программы очень простая — баним ip адрес при большом количестве запросов от него. Где скачать нормальный Server Flooder не знаю. В большинстве мест вместо него в архивах будут вирусы, так что аккуратнее.
  • Loic. Программа старая. Умеет спамить http запросами, а так же флудить tcp и udp пакетами. Скачать loic можно на sourceforge.
  • MummyDDOS. Такой же tcp флудер, как и первые два.

Программные комплексы для создания своего ботнета

В публичный доступ попадают какие-то старые поделки, которые потеряли актуальность из-за того, что их детектят все современные антивирусы. Использовать их можно только в каких-то академических целях на подконтрольных вам машинах. Реально собрать свой ботнет для проведения мощных ddos атак с помощью публичных бесплатных программ невозможно.

К таким ботнетам относятся Zemra Botnet, Dirt Jumper, Solar и т.д. Все это есть в свободном доступе. Можете для общего развития установить и посмотреть, как все это работает.

Stresser панели

Современные, удобные, функциональные инструменты для проведения ddos атак. К сожалению 🙁 Stresser — это некий сервис с web панелью, личным кабинетом. Вы оплачиваете услугу по доступу к ddos панели и можете использовать ее некоторое оплаченное время. Стоимость для простых атак невысокая. Буквально за 3-5 долларов в день вы можете два-три раза устраивать сайту достаточно мощный ддос на 3-5 минут каждый день. Иногда этого времени достаточно, чтобы хостер снял сайт с обслуживания.

В бэкенде у таких панелей обычный ботнет. Есть панели с тестовым доступом для проведения мощной ддос атаки полностью бесплатно. Да, она будет кратковременная, но все равно может навредить ресурсу. Работают такие панели вполне легально, предоставляя свой доступ якобы для тестирования надежности ресурсов. А то, что их используют для ddos атак, это уже их не касается.

Заключение

На этом у меня все по теме ddos атак. Как обычно, хотелось написать больше и с примерами, но получилось и так длинная статья. Думаю, конкретные примеры по проведению ddos своими силами и противодействию им опишу отдельно.

Если у вас есть замечания, дополнения, интересные ссылки на доклады, видео, сервисы по защите, делитесь в комментариях.

Флуд не дойдёт. Новая опция на сайте

В течение 6 лет с момента основания 4pda нашей отличительной особенностью было качественное модерирование всего объема информации.
На текущий момент информационные объемы 4pda настолько выросли, что существующая система модерации Кураторами и Модераторами уже не справляется.

Мы придумали простой и понятный способ, как всем нам вместе улучшить качество информации которую мы получаем — «Пользовательская Модерация» или «ПоМод».

Теперь мы внедрили этот механизм по всему форуму, кроме «трепалочных разделов»

Как это работает?

  • Каждый пост будет иметь собственный рейтинг полезности.
  • Группа пользователей «Друзья 4pda» — получит возможность изменять рейтинг постов, тем самым оказывая влияние на его отображение другим пользователям.
  • По достижении постом определенного минусового рейтинга, он будет сворачиваться постоянно для всех и станет доступен только по специальной ссылке. (При голосовании в минус он разово сворачивается для вас).
  • Через некоторое время все «заминусованные» посты будут обработаны Куратором темы или Модераторами. Скорее всего, все они будут удалены.

Ограничения

  • Пользовательская Модерация изначально будет доступна лишь группе «Друзья 4pda» и выше. После анализа эффективности мы возможно расширим круг групп, которым будет доступа данная возможность.
  • Изменить рейтинг поста можно только один раз! Отнеситесь пожалуйста к этой возможности с ответственностью.
  • Все действия по изменению рейтинга логгируются и будут обрабатываться специальными роботами с целью выявления злоупотреблений. Нарушители будут блокироваться.

Причины изменения рейтинга поста

Минусуем:

  • флуд, оффтопик
  • хамство, мат, оскорбления
  • конфликт
  • спам, коммерция
  • явные нарушения правил

Плюсуем:

  • полезная информация
  • нужно добавить в FAQ

Остальное можно обрабатывать по старинке, через жалобы.

Важно! Мы искренне хотим, чтобы этот инструмент помогал другим людям и экономил нам всем время и силы, а потому будем относиться к людям, кто злоупотребляет этой возможностью, как к неуважению других людей и ресурса в целом. Надеемся на ваше понимание в этом!

UPD:

  1. Кнопочки яркие специально для первоначального привлечения внимания к данному инструменту. В будущем нормализуем.
  2. Добавили видимость произошедшего действия, т.е. после выставления рейтинга, кнопки заменяются текстом с указанием того, какой рейтинг вы выставили.
  3. После голосования в минус пост сворачивается. Для вас он останется свернутым и при перезагрузке страницы (если вы заминусовали, мы это уважаем).
  4. 26.04.2020 (0:24) Рейтинг поста начнет отображаться для пользователей только после голосования.

Сообщение отредактировал tab — 27.08.19, 16:24

Рейтинг казино по бонусам и размеру Джекпотов:
Добавить комментарий