Борьба с ддос

Есть и такой ОС.

Модератор: weec

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
gvv2012
рядовой
Сообщения: 10
Зарегистрирован: 2012-02-24 23:29:13

Борьба с ддос

Непрочитанное сообщение gvv2012 » 2012-11-19 22:43:18

Есть сервак на хостинге, работает под Centos 6.2. Вся борьба с ддос ложится на фаервол, sysctl и некоторые параметры apache, nginx. Иногда бывают периоды, когда сутки сайты на серваке тупят сильно, потом отпускает и все работает отлично. Оперативная память при тупеже фактически не занята, ее 12 Гб, а процессор Xeon X3430 может прыгать на четырех ядрах до 100%. К примеру лог сайта вырос до 350Мб, в среднем добавляется 2000 строчек в секунду, еще один сайт имеет 90 Мб логов. То, что это ддос сомнений нет, досят, что самое интересное на протяжении суток по Росии с 00:00.
Есть несколько идей, посоветуйте есть ли смысл хоть одной из них:
1. Перед сервером поставить комп с FreeBSD (на нем pf), который возьмет фильтрацию на себя, а основной сервер только будет обрабатывать http и mysql запросы
2. Дополнительно у хостинга заказать еще один физический порт и рознести самые тяжелые сайты на физические интерфейсы (остальное поднять на виртуальных, распределив по данным интерфейсам)
3. Поменять сервак на более мощный, с возможностью установки второго проца
4. Купить Cisco, хотя я думаю большинство ее функций можно организовать и на компе с FreeBSD
5. Или же не спешить и еще поковырять Centos, хотя уже закончатся скоро идеи куда ковырять

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Борьба с ддос

Непрочитанное сообщение skeletor » 2012-11-20 14:15:53

я бы для начала усилил защиту:
1) на уровне web сервера (для nginx - limit zone, для apache - mod_evasive, а лучше вообще убрать apache)
2) на уровне подбора паролей, перебора страниц - fail2ban
3) на уровне бана в файервол - применять не банально iptables, а модуль ipset (при большом количестве блокирующих правил iptables может и сам подвесить сервак)
4) покрутить конечно sysctl+ulimit
5) проанализировать логи, что за запросы идут, понять, какого рода идёт DDoS

Честно говоря ваши методы защиты не дадут, а лишь выльются в дополнительные затраты.

Но так же нужно иметь ввиду, что если у вас канал 100 мбит, и его полностью забивают мусором - то здесь реально ничего не сделаешь.

gvv2012
рядовой
Сообщения: 10
Зарегистрирован: 2012-02-24 23:29:13

Re: Борьба с ддос

Непрочитанное сообщение gvv2012 » 2012-11-20 15:46:19

1. mod_evasive стоял, но из-за него некоторые сайты не отображали весь контент
2. использую свою скрипт, который заносит IP в черный список, превысившие лимит
3. список как раз динамический и реализован на ipset, есть еще один список вечно забаненых
4. sysctl уже не однократно ковырял, может есть какие либо наброски по этому вопросу буду очень рад, может я глюки ловлю, всякое бывает
5. в логах запросы идут как бы нормальные, браузерные, но когда в секунду с браузера возникает порядка 20 соединений, то явно это не обычный пользователь. Особенно интересно, что IP то с сетей всех стран мира. Я очень сильно сомневаюсь, что в Китае, Коста Рике или США будет интересен русскоязычный ресурс.
Раньше уходил в штопор проц, было понятно, что делать, а теперь и проц нормально, а опаратива и вовсе на холостых, а ssh даже тупит.
Пробую iptraf скорость тоже вроди от 5 до 15 Мбит, как бы не забит канал.
Можно подумать, что админа кривые руки, значит так настроил, но такое счастье в основном сайты работают быстро, но тупо в один момент целые сутки штопор. Может раз в две недели быть, может в три. До 00:00 поработало и опять сервак показывает себя шустро и качественно.

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Борьба с ддос

Непрочитанное сообщение skeletor » 2012-11-20 15:55:58

Касательно 4-го пункта, вот мои наброски http://skeletor.org.ua/?p=1742 http://skeletor.org.ua/?p=956 .
Читайте вдумчиво. Я думаю если ограничить cpu/mem для того же юзера www, то при всём желании DDoS'ера ляжет апач, но сервак будет работать. Как вариант - поставьте связку nginx+apache, если от апача нельзя избавится ну и в вдобавок на nginx'e сделайте limit zone.

gvv2012
рядовой
Сообщения: 10
Зарегистрирован: 2012-02-24 23:29:13

Re: Борьба с ддос

Непрочитанное сообщение gvv2012 » 2012-11-20 15:59:06

я могу ограничить количество процесов apache, тогда страницы отдаваться не будут, а сервак будет работать

gvv2012
рядовой
Сообщения: 10
Зарегистрирован: 2012-02-24 23:29:13

Re: Борьба с ддос

Непрочитанное сообщение gvv2012 » 2012-11-20 16:01:54

и связка у меня стоит, как особенность у меня apache работает под пользователями и тут бок nginx начинает матюки гнуть, надо php_fpm, а уменя 5.2 php, а обновится я не могу, большинство сайтов у меня на joomla 1.5, а модулей у них просто не мерено. Поэтому сейчас на связке работает только главный сайт.
За конфиг спасибо попробую еще голову поломать, хотя сегодня проблем вообще нет. Только вчера страницы по 5-15 секунд открывались, сервак не ложится, но сильно тупит.

gvv2012
рядовой
Сообщения: 10
Зарегистрирован: 2012-02-24 23:29:13

Re: Борьба с ддос

Непрочитанное сообщение gvv2012 » 2012-11-20 16:16:00

как по мне то лучше не DROP ставить, а REJECT с параметром tcp-reset. После дропа остаются соединения, пока по времени жизни не умирают. А последнее делает их сброс.
Я конечно извиняюсь, может нагло себя веду, просто реально уже сегодня башка трещит от поиска наиболее подходящего решения.
Последний раз редактировалось gvv2012 2012-11-20 16:17:43, всего редактировалось 1 раз.

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Борьба с ддос

Непрочитанное сообщение skeletor » 2012-11-20 16:17:40

gvv2012 писал(а):я могу ограничить количество процесов apache
я не считаю, что это лучше, чем ограничить по ресурсам. пускай запустит столько, сколько сможет. У вас 1 процесс может выжрать очень много (вплоть до всех ресурсов сервера), в случае кривого запроса или бага. А если ограничить по ресурсам - то в таком случае ядро просто его прибъёт, без последствий для всего сервера.

gvv2012
рядовой
Сообщения: 10
Зарегистрирован: 2012-02-24 23:29:13

Re: Борьба с ддос

Непрочитанное сообщение gvv2012 » 2012-11-20 16:21:34

для меня открытие страниц основная проблема, сайты находятся на биржах ссылок и не очень приятный момент, когда можно в бан попасть. По ssh я хоть и иногда с тупежом всегда подключаюсь, на крайняк через минут 10 к серваку можно достучатся с помощью KVM.

Я с fail2ban не работал, если не трудно можете подсказать основные принципы его работы. По чему он банит: лог, количество соединений.
Хочется услышать мнение адекватного человека

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Борьба с ддос

Непрочитанное сообщение skeletor » 2012-11-20 16:29:17

gvv2012 писал(а):как по мне то лучше не DROP ставить, а REJECT с параметром tcp-reset. После дропа остаются соединения, пока по времени жизни не умирают. А последнее делает их сброс.
Я конечно извиняюсь, может нагло себя веду, просто реально уже сегодня башка трещит от поиска наиболее подходящего решения.
Всё нормально, но вынужден с вами не согласится и вот почему: при большом наплыве ваш REJECT просто забъёт исходящий трафик пакетами RST. DROP-же ничего не будет отправлять в ответ. Как итог, максимум вреда, что мы можем получить от DROP - это просто много не убитых соединений (при желании, можно сократить время их жизни), которые не так много потребляют ресурсов, чем потребуется отправить одновременно 1000 RST на разные хосты.
Тот же ping ответ (echo-reply) на 1000 хостов одновременно может для сервера стоять неплохого подвисания (конечно, много зависит от разных параметров, но главное суть).
gvv2012 писал(а):для меня открытие страниц основная проблема, сайты находятся на биржах ссылок и не очень приятный момент, когда можно в бан попасть. По ssh я хоть и иногда с тупежом всегда подключаюсь, на крайняк через минут 10 к серваку можно достучатся с помощью KVM.

Я с fail2ban не работал, если не трудно можете подсказать основные принципы его работы. По чему он банит: лог, количество соединений.
Хочется услышать мнение адекватного человека
Не знаю, я для вас адекватный человек или нет, но скажу так.
Суть такова - есть демон, который парсит указанные логи на предмет указанных regexp'ов и при указанном количестве совпадение выполняет определённую команду (чаще всего банит через файервол+отправляет сообщение на email). Это общие принципы. Все параметры настраиваются и изменяются по желанию.

gvv2012
рядовой
Сообщения: 10
Зарегистрирован: 2012-02-24 23:29:13

Re: Борьба с ддос

Непрочитанное сообщение gvv2012 » 2012-11-20 16:35:12

Мне кажется, что fail2ban примитивная защита, его я понял еще и надо допиливать, чтобы он начал с ipset работать.

А может быть обратная ситуация, отказ сервера по количеству открытых соеденений.

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Борьба с ддос

Непрочитанное сообщение skeletor » 2012-11-20 16:44:41

Неправильно поняли. fail2ban предоставляет инструмент, а реализация полностью ложится на администратора: какие правила и фильтры напишите, так и будет работать. Ну а допиливать для работы с ipset - да, надо. По умолчанию работает только с iptables.
gvv2012 писал(а):А может быть обратная ситуация, отказ сервера по количеству открытых соеденений.
Естественно, что перед этим нужно увеличить это, а так же сопутствующие компоненты. Тупо в лоб действовать нельзя, надеясь, что fail2ban сам изменит нужные параметры в sysctl.

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

Re: Борьба с ддос

Непрочитанное сообщение bagas » 2012-11-21 14:39:33

fail2ban не способен отразить ддос с выше 15тыс.
можно посмотреть метод через nginx+testcoockie
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Аватара пользователя
agat
мл. сержант
Сообщения: 138
Зарегистрирован: 2009-10-27 1:21:55
Откуда: Солнечная система, планета Земля, Россия
Контактная информация:

Re: Борьба с ддос

Непрочитанное сообщение agat » 2013-01-20 1:17:28

я прикрутил geoip к iptables и забанил целые страны
ну зачем китайцу рускоязычный ресурс?
geoip обновляю по cron

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

Re: Борьба с ддос

Непрочитанное сообщение bagas » 2013-01-20 9:29:07

Подключил этот сервис, пока что нормально.
Пока тестово подключил 3 домена, на двух доменах вчера был ддос примерно 2 mpps, ддос отразился нормлаьно.
http://ddosinsurance.org/
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.