Udp вирусы к нему
На днях возникла проблемма с udp flood dos, просто забивают канал в 100 мегабит, порты все закрыл, как знаю я что если udp пакет отправили то уже отправили и он прийдет всеравно на сетевую карту, может есть защита от такого рода атак?
Против DOS надо комплекс мер:
1. Включить в ядре поддержку GRKERNSEC_BLACKHOLE = y
2. Iptables + ipset - создать блокирующие правило по таблице IP адресов и добавлять туда спец скриптом чёрные IP (чёрный список). Можно разрешающее правило и добавить только разрешенные, например всю Россию (белый список).
3. Если ddos забивает весь канал без просвета, то отбить его сможет только вышестоящий пров на своём оборудовании! Пунктов 1-2 хватит чтобы при таком ddos продолжать обслуживать клиентов, но качество снизится.
У меня сервера нормально работали при ddos более 600Mb/s но через пару дней датацентры отказывают в хостинге, сильно другие клиенты страдают из-за забитого флудом канала. По этому считаю что флуд 100Mb/s и более, обязаны отбивать вышестоящие провайдеры, и сие надо законодательно закрепить!
По этому считаю что флуд 100Mb/s и более, обязаны отбивать вышестоящие провайдеры, и сие надо законодательно закрепить!
Может они и за тебя твои говносайтики настраивать должны? Что за бред.
может есть защита от такого рода атак?
Да, обратиться к специалистам.
Например, в qrator.
Фильтровать где-то до вашей сетевой карты, т.е. в сети провайдера. Свяжитесь с вашим провайдером, они зачастую идут на встречу (ведь им этот трафик совершенно не нужен).
Фильтруя UDP трафик будьте осторожны, есть большая вероятность отрезать DNS и узнать много нового о своей системе (в частности в скольких местах она оказывается зависит от DNS).
За трафик все равно платить придеться.
А куратору не придётся? По сути схема ведь будет та-же самая, только в случае с куратором трафик ещё нужно будет как-то пустить по обходному пути (через куратор).
Ключевой вопрос где дропнуть ddos трафик:
или мучая конечный сервер (цель атаки)
или на входе к провайдеру разгрузим сеть прова и сам сервер!
или кореневой провайдер дропнит входящий трафик, избавиви от твоего ddos всю сеть страны.
Прову надо всего одну запись ACL добавить на пограничный коммутатор чтобы избавить свою сеть и топикпастера от мучений..
Дропать ddos на конечном сервере можно но не оптимально.
Провайдер говорит что ничем помочь не может, точнее не провайдер а техническая поддержка.
ТП хостера у которого стоит сервер? Тогда qrator.
И я-бы задумался о переходе к другому хостеру.
Сами врятли чтото сделаете. В случае когда именно забит канал и сервак особой нагрузки не ощущает - труба-дело.
Но всетаки коечто посоветую из своего опыта:
2. Попросить провайдера/дата центр помочь бороться с атакой. Обычно среди атакующих есть 2-3-5 особо мощных хоста . остальное мелочевка. Выяснить их (tcpdump, iftop . etc) и попросить провайдера заблочить у себя на фаере.
3. Розпаралелить между 2-мя и более серваками сервисы которые крутятся на атакуемом серваке. В идеале построить простенькие прокси и розкидать их по миру :) Я так делал когда DDoS-или мой сайт. Настроил на двух dedicated серваках в разных концах мира nginx для проксирования трафика, и реальный сервер вообще убрал с DNS. Помогло выжить.
4. Обратиться в спец. конторы за платной помощью, есть много разных . я не пользовал, ничего сказать не могу.
Как вариант, можно взять пару IP-адрессов у провайдера и переехать сначала на один, потом на второй. Перенастройка ботнета занимает время, поэтому так можно частично что-то восстановить, однако координация действий с провайдером все равно необходима.
Похоже вы уперлись в первый уровень тех. поддержки, которая действительно ничем помочь не может - звоните столько раз сколько понадобится пока вас не переключат на инженера, в идеале на инженера, который имеет непосредственный доступ к пограничным раутерам или ответственен за внутреннюю сеть.
Просите выставить конкретный фильтр, какой именно фильтр вы должны сформулировать сами. Если мальчикам в суппорте парралельно на DDoS в сети своего работадателя, то для инженера за эту сеть ответсвенного это тоже головная боль. Бороться с вашей атакой они не будут, тем более существует практика одностороннего отключения клиентов в таких случаях, но добиться выставления на время фильтра вполне возможно.
Конечно, если вы дежржите шаред хостинг, то все сильно усложняется.
Знаете ли Вы, что по данным исследований, проведённых Arbor Networks, Verisign Inc. и некоторыми другими компаниями:
Все DDoS атаки можно разделить на три обширные группы:
- объёмные;
- атаки на уровне протоколов;
- атаки на уровне приложений.
Подробнее отдельные виды атак будут рассмотрены ниже, а пока — небольшой обзор групп.
На этом уровне аппаратная защита становится ощутимо эффективнее. Специально разработанные производителями таких устройств алгоритмы помогают отсортировать и отфильтровать трафик. Естественно, любые алгоритмы несовершенны, и какая-то часть паразитного трафика всё-таки прорвётся к Вам, а какая-то часть полезного может быть утеряна. Сторонние сервисы фильтрации также могут быть вполне эффективны.
К арсеналу борьбы с этой категорией атак, помимо упомянутых выше внешних сервисов и аппаратной защиты, можно также добавить встроенные программные алгоритмы, анализирующие запросы и создающие правила для фаервола по результатам такого анализа.
Существует немало видов DDoS атак, у каждой свой почерк и способы преодоления. Не все атаки можно ослабить или побороть. Иногда даже нет смысла пытаться, и проще переждать, грустно подсчитывая убытки. Изложить подробно механизмы противостояния каждому типу невозможно, об этом можно писать книги и защищать диссертации. Однако попробую представить описания сути наиболее распространённых видов атак и базовые принципы противодействия им.
Схож с UDP флудом. На хост-машину с максимальной частотой посылаются ping-запросы, принуждающие её давать эхо-ответы. Невинный инструмент проверки доступности сетевого узла становится злобным пожирателем системных ресурсов. Именно поэтому некоторые системные администраторы напрочь блокируют ICMP запросы на уровне фаервола. Сервер или любое другое сетевое оборудование будет вполне доступным, но пропинговать его Вы не сможете.
Весьма экзотический тип атаки, направленный в основном на сетевое оборудование. Атакующая сторона отправляет пустые Ethernet пакеты с разными MAC адресами. Свитч рассматривает такие пакеты как отдельные, и резервирует под каждый из них некое количество ресурсов. Насыщение ресурсов может привести к тому, что свитч перестанет отвечать на запросы, а в отдельных случаях — к полному сбою таблицы маршрутизации.
Особо изощрённый и узко специализированный тип атаки, позволяющий относительно малыми ресурсами (достаточно одного сервера) положить веб-сервер, не затронув другие протоколы. Атакующий сервер пытается открыть как можно больше HTTP соединений и держать их как можно дольше, понемногу отправляя частичные запросы. Лимит одновременных подключений на атакуемом сервере весьма быстро заканчивается, и он перестаёт принимать полезные запросы. Лечится отлавливанием и блокировкой таких затягивающихся соединений.
В данном типе пакеты с фальсифицированными IP отправителя рассылаются максимально возможному количеству машин. Ответы машин стекаются на IP жертвы, перегружая её сервер. Один из распространённых примеров — использование неверно настроенных DNS-серверов. DNS-серверам отправляются небольшие запросы якобы от IP жертвы. Размер ответа сервера в среднем в 10 раз превышает размер запроса. Таким образом, атакующий сервер, рассылающий 100 Мбит/с ложных запросов, может обрушить на атакуемый порядка гигабита паразитного трафика.
Общий принцип борьбы — поведенческий анализ и отсеивание подозрительных IP на уровне фаервола. Например, повышенная частота запросов, повтор маршрутов продвижения по сайту разными IP или запрос исключительно html документов выглядят подозрительными и свидетельствуют в пользу необходимости блокировки таких IP. Однако чем более сложный алгоритм заложен в атакующую программу, тем сложнее выявить паразитный трафик и тем больше ложноположительных срабатываний, блокирующих доступ к ресурсу реальным пользователям. Не все захотят с этим мириться.
Собственно, это нельзя назвать атакой. Этот вид DDoS-а происходит, когда ссылка на какой-то сайт попадает, например, в топовый новостной ресурс или популярный блог, вызывая резкий рост посещаемости, к которому сайт оказывается не готов. Широко известным в узких кругах примером является хабраэффект. Бороться с этим не нужно, скорее нужно радоваться, что Ваш сайт растёт. Ну, и пора задуматься об апгрейде.
К этому типу относят атаки, которые фиксируются впервые. Как и в случае с новыми вирусами, новыми бактериями и новыми паразитами, понадобится время, чтобы проанализировать атаку и подобрать эффективное лекарство.
Наиболее сложный вид атак. Атакующая сторона использует несколько разных типов и инструментов атаки, что существенно усложняет или даже делает невозможным идентификацию составляющих и подбор средств борьбы.
Безмерно доступно. На сегодняшний день существует немало свободно доступных в интернете приложений для проведения DDoS атак. Некоторые из них используют механизмы атак, которым сложно противодействовать, другие позволяют объединить всех пользователей в добровольный ботнет, что даёт возможность пользоваться чужими ресурсами для проведения атак и раздавать взамен свои. При этом таким на первый взгляд аматорским атакам бывает сложно противостоять даже хорошо подготовленным коммерческим системам.
Думаю, ответ известен всем. Чаще всего причиной служит недобросовестная конкуренция. Спектр атакуемых сайтов и ресурсов чрезвычайно широк. На сегодняшний день это не только финансовые учреждения, игровые сайты и интернет-магазины, зафиксированы случаи атак даже на правительственные сайты и службы доставки пиццы.
Широкая доступность инструментов для атак постепенно переводит их из разряда сугубо оружия экономической борьбы к более широкому применению, вплоть до идеологической борьбы, народного протеста, мести обиженного клиента неугодному сервису и банального интернет-вандализма. Лично мне пока верится слабо, но некоторые отчёты утверждают, что в последние годы именно идеологический хактивизм и интернет-вандализм возглавляют список, отодвинув конкурентную борьбу на более низкие позиции.
Мы совместно с нашими клиентами неоднократно сталкивались с проблемой DDoS разного типа и масштаба. Некоторые атаки лечились грамотной настройкой фаервола на сервере, другие же требовали аппаратной или внешней фильтрации. Бывало, что дата-центр просто нульрутил IP, т.к. входящий объём трафика внезапно превышал входящий канал не только сервера, но и всего шкафа в целом. Являясь провайдером услуг по аренде серверов, мы проповедуем политику, согласно которой пользователь и только он — главная заинтересованная в сохранности и доступности данных сторона. Таким образом, резервное копирование, своевременное устранение программных брешей в безопасности и наличие договорённости с сервисом защиты от DDoS — святые обязанности любого переживающего за свой проект человека.
Однако мы с удовольствием поделимся некоторыми полезными на наш взгляд рекомендациями. Если Ваш проект относится к тем категориям ресурсов, которые чаще всего оказываются под атакой, Вам стоит своевременно задуматься о нескольких простых и очевидных, но нередко игнорируемых шагах, которые помогут если не уберечься от атак, то хотя бы снизить их отрицательное влияние.
Изучите свою сеть. У любого сервиса есть некоторые характерные черты использования сети: типы и объём трафика, суточная кривая и т.п. Например, сайтам для взрослых характерен плавный рост трафика в вечернее время с постепенным спадом за полночь, плюс небольшой пик во время обеденного перерыва. Не поленитесь изучить стандартные характеристики и регулярно отслеживать текущую картину. Атаки редко приходят как по щелчку рубильника, чаще они приходят, как волна. Начинается всё с небольшого подъёма активности, который вскоре начинает активно нарастать. Если Вы сможете отловить начало волны, у Вас появится шанс заранее принять меры.
Знайте, что блокировать. Любой сервис обладает определённым набором основных портов, необходимых для его работы. Заблаговременно заблокируйте на фаерволе всё лишнее. Это позволит сузить поле для атаки. Если у Вас есть определённый список ключевых клиентов, позаботьтесь о добавлении их адресов в предопределённый белый список, чтобы в случае атаки не резать их запросы.
Знайте, где блокировать. Блокировать трафик на фаерволе или на роутере? Подключать аппаратный DDoS или внешний сервис фильтрации трафика? Если Вы предпочли не отдавать обеспечение защиты полностью на откуп сторонним сервисам, а проводить базовую диагностику и решать хотя бы часть проблем самостоятельно, не забудьте в плане ликвидации прописать диагностические процедуры и правила действий в тех или иных ситуациях. Это позволит избавиться от метода проб и ошибок тогда, когда на него совершенно нет времени.
Как я уже говорил, эти шаги не станут панацеей, но помогут свести к минимуму простой и убытки. Буду признателен за любые дополнения и рекомендации из личной практики.
Твое утро начинается с чтения багрепортов и анализа логов. Ты ежедневно
обновляешь ПО и ежечасно дорабатываешь правила брандмауэра. Snort твой лучший
друг, а Zabbix - невидимый помощник. Ты построил настоящий бастион, к которому
не подобраться ни с одной стороны. Но! Ты совершенно беззащитен против самой
коварной и подлой атаки на свете - DDoS.
Трудно сказать, когда впервые появился термин DoS-атака. Специалисты говорят
о 1996-м, попутно намекая, что до широких масс этот тип атак "дошел" только в
1999 году, когда один за другим попадали web-сайты Amazon, Yahoo, CNN и eBay.
Еще раньше DoS-эффект использовали для тестирования устойчивости систем и
каналов связи. А если копнуть глубже и воспользоваться термином DoS для
обозначения явления, то становится ясно, что он существовал всегда, со времен
первых мейнфреймов. Вот только задумываться о нем как о средстве устрашения
начали гораздо позже.
Говоря простым языком, DoS-атаки - это некоторый вид злонамеренной
деятельности, ставящей своей целью довести компьютерную систему до такого
состояния, когда она не сможет обслуживать правомерных пользователей или
правильно выполнять возложенные на нее функции. К состоянию "отказ в
обслуживании" обычно приводят ошибки в ПО или чрезмерная нагрузка на сетевой
канал или систему в целом. В результате чего ПО, либо вся операционная система
машины, "падает" или же оказывается в "зацикленном" состоянии. А это грозит
простоями, потерей посетителей/клиентов и убытками.
Анатомия DoS-атак
DoS-атаки подразделяются на локальные и удаленные. К локальным относятся
различные эксплойты, форк-бомбы и программы, открывающие по миллиону файлов или
запускающие некий циклический алгоритм, который сжирает память и процессорные
ресурсы. На всем этом мы останавливаться не будем. А вот удаленные DoS-атаки
рассмотрим подробнее. Они делятся на два вида:
- Удаленная эксплуатация ошибок в ПО с целью привести его в нерабочее
состояние. - Flood - посылка на адрес жертвы огромного количества бессмысленных (реже
– осмысленных) пакетов. Целью флуда может быть канал связи или ресурсы
машины. В первом случае поток пакетов занимает весь пропускной канал и не
дает атакуемой машине возможность обрабатывать легальные запросы. Во втором
- ресурсы машины захватываются с помощью многократного и очень частого
обращения к какому-либо сервису, выполняющему сложную, ресурсоемкую
операцию. Это может быть, например, длительное обращение к одному из
активных компонентов (скрипту) web-сервера. Сервер тратит все ресурсы машины
на обработку запросов атакующего, а пользователям приходится ждать.
В традиционном исполнении (один атакующий - одна жертва) сейчас остается
эффективным только первый вид атак. Классический флуд бесполезен. Просто потому
что при сегодняшней ширине канала серверов, уровне вычислительных мощностей и
повсеместном использовании различных анти-DoS приемов в ПО (например, задержки
при многократном выполнении одних и тех же действий одним клиентом), атакующий
превращается в надоедливого комара, не способного нанести какой бы то ни было
ущерб. Но если этих комаров наберутся сотни, тысячи или даже сотни тысяч, они
легко положат сервер на лопатки. Толпа - страшная сила не только в жизни, но и в
компьютерном мире. Распределенная атака типа "отказ в обслуживании" (DDoS),
обычно осуществляемая с помощью множества зомбифицированных хостов, может
отрезать от внешнего мира даже самый стойкий сервер, и единственная эффективная
защита - организация распределенной системы серверов (но это по карману далеко
не всем, привет Google).
Методы борьбы
Выхода из этой ситуации фактически нет, однако последствия DDoS-атак и их
эффективность можно существенно снизить за счет правильной настройки
маршрутизатора, брандмауэра и постоянного анализа аномалий в сетевом трафике. В
следующей части статьи мы последовательно рассмотрим:
- способы распознавания начинающейся DDoS-атаки;
- методы борьбы с конкретными типами DDoS-атак;
- универсальные советы, которые помогут подготовиться к DoS-атаке и
снизить ее эффективность.
В самом конце будет дан ответ на вопрос: что делать, когда началась
DDoS-атака.
Борьба с flood-атаками
Итак, существует два типа DoS/DDoS-атак, и наиболее распространенная из них
основана на идее флуда, то есть заваливания жертвы огромным количеством пакетов.
Флуд бывает разным: ICMP-флуд, SYN-флуд, UDP-флуд и HTTP-флуд. Современные
DoS-боты могут использовать все эти виды атак одновременно, поэтому следует
заранее позаботиться об адекватной защите от каждой из них.
Очень примитивный метод забивания полосы пропускания и создания нагрузок на
сетевой стек через монотонную посылку запросов ICMP ECHO (пинг). Легко
обнаруживается с помощью анализа потоков трафика в обе стороны: во время атаки
типа ICMP-флуд они практически идентичны. Почти безболезненный способ абсолютной
защиты основан на отключении ответов на запросы ICMP ECHO:
Или с помощью брандмауэра:
# iptables -A INPUT -p icmp -j DROP --icmp-type 8
Один из распространенных способов не только забить канал связи, но и ввести
сетевой стек операционной системы в такое состояние, когда он уже не сможет
принимать новые запросы на подключение. Основан на попытке инициализации
большого числа одновременных 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
Типичный метод захламления полосы пропускания. Основан на бесконечной посылке
UDP-пакетов на порты различных UDP-сервисов. Легко устраняется за счет отрезания
таких сервисов от внешнего мира и установки лимита на количество соединений в
единицу времени к DNS-серверу на стороне шлюза:
# iptables -I INPUT -p udp --dport 53 -j DROP -m iplimit --iplimit-above 1
Один из самых распространенных на сегодняшний день способов флуда. Основан на
бесконечной посылке HTTP-сообщений GET на 80-ый порт с целью загрузить
web-сервер настолько, чтобы он оказался не в состоянии обрабатывать все
остальные запросы. Часто целью флуда становится не корень web-сервера, а один из
скриптов, выполняющих ресурсоемкие задачи или работающий с базой данных. В любом
случае, индикатором начавшейся атаки будет служить аномально быстрый рост логов
web-сервера.
Методы борьбы с HTTP-флудом включают в себя тюнинг web-сервера и базы данных
с целью снизить эффект от атаки, а также отсеивание DoS-ботов с помощью
различных приемов. Во-первых, следует увеличить максимальное число коннектов к
базе данных одновременно. Во-вторых, установить перед web-сервером Apache легкий
и производительный nginx – он будет кэшировать запросы и отдавать статику. Это
решение из списка "must have", которое не только снизит эффект DoS-атак, но и
позволит серверу выдержать огромные нагрузки. Небольшой пример:
* \.(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-шторма на
системы, необходимо тщательным образом подготовить их к такой ситуации:
- Все сервера, имеющие прямой доступ во внешнюю сеть, должны быть
подготовлены к простому и быстрому удаленному ребуту (sshd спасет отца
русской демократии). Большим плюсом будет наличие второго,
административного, сетевого интерфейса, через который можно получить доступ
к серверу в случае забитости основного канала. - ПО, используемое на сервере, всегда должно находиться в актуальном
состоянии. Все дырки - пропатчены, обновления установлены (простой, как
сапог, совет, которому многие не следуют). Это оградит тебя от DoS-атак,
эксплуатирующих баги в сервисах. - Все слушающие сетевые сервисы, предназначенные для административного
использования, должны быть спрятаны брандмауэром ото всех, кто не должен
иметь к ним доступ. Тогда атакующий не сможет использовать их для проведения
DoS-атаки или брутфорса. - На подходах к серверу (ближайшем маршрутизаторе) должна быть установлена
система анализа трафика (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-флуд):
Значения, в несколько раз превышающие среднестатистические, дают основания
задуматься. Далее следует просмотреть список 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-адресам (будет
гораздо больше эффекта, если ты сделаешь это на маршрутизаторе):
Или сразу по подсетям:
Это даст тебе некоторую фору (совсем маленькую; зачастую 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'а):
- Пересобираем ядро с опцией "options DEVICE_POLLING";
- Активируем механизм поллинга: "sysctl kern.polling.enable=1";
- Добавляем запись "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).
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
Читайте также: