Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

DDoS , Iptables

Статус пользователя Vitaliy
сообщение 19.11.2013, 15:12
Сообщение #1


Стаж: 14 лет

Сообщений: 2431
Благодарностей: 526
Полезность: 609

Меценат Меценат

Добрый день.

2 дня продолжается атака ~400 Мбит
В данный момент спасаюсь фильтрами на роутере ДЦ
НО, при снятии фильтров все умирает
Хотя сервер включен в порт 1000 мбит, то есть по сути все хватает

Какие то варианты есть по поводу, настройки iptables или вообще чего то?
Железо не нагружено, в целом пакеты летят с размером 1000 +

Кто то подскажет что сделать можно?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
exec1337
сообщение 19.11.2013, 15:14
Сообщение #2
Стаж: 13 лет

Сообщений: 6490
Благодарностей: 2558
Полезность: 491

Если защизаете сайт, то могу предложить защиту (перенос).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Vitaliy
сообщение 19.11.2013, 15:17
Сообщение #3


Стаж: 14 лет

Сообщений: 2431
Благодарностей: 526
Полезность: 609

Меценат Меценат

Забыл указать, игровые сервера, в данном случае КС
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ctapkom
сообщение 19.11.2013, 15:36
Сообщение #4
Стаж: 16 лет

Сообщений: 143
Благодарностей: 55
Полезность: 21

я так понимаю у вас shared-канал, большинство ДЦ гарантируют 30% утилизации трафика, что в вашем случае - не превышает 300 мегабит, собственно забивают ваш шаред, никакие iptables в этом случае не помогут. Надо чтобы трафик свободно доходил, тогда есть смысл в некоторых правилах, например дроп UDP пакетов с состоянием new более 600-800 байт.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя andreivvs
сообщение 19.11.2013, 15:40
Сообщение #5
Стаж: 16 лет

Сообщений: 287
Благодарностей: 26
Полезность: 7

как вариант,который мне подходил при атаке меньше 1 Гб - fail2ban

если надо,могу попробывать вспомнить его настройку,ну или скинуть свою
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ctapkom
сообщение 19.11.2013, 15:43
Сообщение #6
Стаж: 16 лет

Сообщений: 143
Благодарностей: 55
Полезность: 21

Цитата(andreivvs @ 19.11.2013, 16:40) *
как вариант,который мне подходил при атаке меньше 1 Гб - fail2ban

если надо,могу попробывать вспомнить его настройку,ну или скинуть свою

fail2ban - это всего лишь перл скрипт, который парсит логи, применим только для сервисов вроде apache, ftp и т.п., но вряд ли поможет при udp-флуде. UDP-пакет штука такая, что летит, и не важно, получил клиент ответ, или нет, поэтому спасаться от этого можно только широкой полосой, и правильными фильтрами, желательно до сервера, например на шлюзе.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя andreivvs
сообщение 19.11.2013, 16:09
Сообщение #7
Стаж: 16 лет

Сообщений: 287
Благодарностей: 26
Полезность: 7

fail2ban отлавливает пакеты меньше определенного значения и банит ип с которого шли эти пакеты
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ctapkom
сообщение 19.11.2013, 16:28
Сообщение #8
Стаж: 16 лет

Сообщений: 143
Благодарностей: 55
Полезность: 21

Цитата(andreivvs @ 19.11.2013, 16:09) *
fail2ban отлавливает пакеты меньше определенного значения и банит ип с которого шли эти пакеты

fail2ban ничего сам не ловит, он реагирует только на записи в логах, кто пишет эти логи - ему вообще без разницы. Блокировка fail2ban работает на бане ip через iptables (если поднапрячься, можно настроить для этого дела и ipset). Вы вообще понимаете что такое бан ip при ддосе через, например, udp-спуфинг, когда адреса поддельные и летят рандомно? fail2ban - просто скрипт, который, по определенным алгоритмам, может блокировать IP-адреса. Если пытаетесь умничать, то пишите сразу рецепт с вашим fail2ban, посмеемся хоть =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
by Fan
сообщение 19.11.2013, 17:02
Сообщение #9
Стаж: 14 лет

Сообщений: 1904
Благодарностей: 556
Полезность: 0

Одно из двух, либо в мир обычная сотка, а гигабит на UA-IX, либо шареный очень неплохо канал.
Вообще, с такой атакой iptables бесполезен думаю будет, нагрузка будет огого.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ctapkom
сообщение 19.11.2013, 18:50
Сообщение #10
Стаж: 16 лет

Сообщений: 143
Благодарностей: 55
Полезность: 21

Цитата(by Fan @ 19.11.2013, 17:02) *
Одно из двух, либо в мир обычная сотка, а гигабит на UA-IX, либо шареный очень неплохо канал.
Вообще, с такой атакой iptables бесполезен думаю будет, нагрузка будет огого.

если флуд идет большими пакетами (600 и более байт), при 400 мегабитах - отбить iptables очень просто, тут важен пакетрейт, в этом случае он составит порядка 100к, что для сетевушки не критично. Если пакетрейт будет больше, например 200к, то без тюннинга прерываний сетевухи тут не обойтись.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
by Fan
сообщение 19.11.2013, 18:56
Сообщение #11
Стаж: 14 лет

Сообщений: 1904
Благодарностей: 556
Полезность: 0

Цитата(ctapkom @ 19.11.2013, 20:50) *
если флуд идет большими пакетами (600 и более байт), при 400 мегабитах - отбить iptables очень просто, тут важен пакетрейт, в этом случае он составит порядка 100к, что для сетевушки не критично. Если пакетрейт будет больше, например 200к, то без тюннинга прерываний сетевухи тут не обойтись.

Не забывайте, что тачка то груженая, сервера там и прочее. Неизвестно, насколько она нагружена. Параметры тачки мы тоже не знаем. Может какой то тазик атлон. Нагрузка будет в любом случае, но размер ее мы предугадать не сможем. К тому же, если трафик блочится на уровне машины, он никуда не девается. Размеров канала мы тоже не знаем в мир.

В общем гадание на кофейной гуще какое то получается.
ТС, больше инфы.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Vitaliy
сообщение 19.11.2013, 19:18
Сообщение #12


Стаж: 14 лет

Сообщений: 2431
Благодарностей: 526
Полезность: 609

Меценат Меценат

Intel i7 (4x3.4Ghz, HT)
50% нагружено

Пока не могу сказать про каналы, с ДЦ нету ответа
фишка в том что на шареде больше 400 мбит, то есть забить его он не может, конечно нужно еще уточнить парочку аспектов у ТП


Я сейчас еще все проверю)
И точнее скажу что буду наблюдать)

Отредактировал: Pro(X-Gamer)Pro, - 19.11.2013, 19:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя andreivvs
сообщение 19.11.2013, 19:41
Сообщение #13
Стаж: 16 лет

Сообщений: 287
Благодарностей: 26
Полезность: 7

перед тем,как начнешь смеяться,прочти что написал тс

Тут можешь смеяться

Код
iptables -N REJECT_FLOOD28
iptables -A REJECT_FLOOD28 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 28: ' --log-level info
iptables -A REJECT_FLOOD28 -j DROP
#
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 28 -j REJECT_FLOOD28


# Creation channel rejection flood udp 46
iptables -N REJECT_FLOOD46
iptables -A REJECT_FLOOD46 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 46: ' --log-level info
iptables -A REJECT_FLOOD46 -j DROP
#
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 46 -j REJECT_FLOOD46


Код
failregex= IPTABLES-FLOOD LENGTH (28|48): IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC=<HOST> DST=([0-9]{1,3}\.?){4} LEN=28


[ddos]
enabled = true
port = 27015,27025,27050,28000,29000
protocol = udp
filter = ddos
logpath = /var/log/messages.log
maxretry = 3
bantime = 6000
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ctapkom
сообщение 19.11.2013, 22:09
Сообщение #14
Стаж: 16 лет

Сообщений: 143
Благодарностей: 55
Полезность: 21

Цитата(andreivvs @ 19.11.2013, 20:41) *
перед тем,как начнешь смеяться,прочти что написал тс

Тут можешь смеяться

Код
iptables -N REJECT_FLOOD28
iptables -A REJECT_FLOOD28 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 28: ' --log-level info
iptables -A REJECT_FLOOD28 -j DROP
#
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 28 -j REJECT_FLOOD28


# Creation channel rejection flood udp 46
iptables -N REJECT_FLOOD46
iptables -A REJECT_FLOOD46 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 46: ' --log-level info
iptables -A REJECT_FLOOD46 -j DROP
#
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport your_port -m length --length 46 -j REJECT_FLOOD46


Код
failregex= IPTABLES-FLOOD LENGTH (28|48): IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC=<HOST> DST=([0-9]{1,3}\.?){4} LEN=28


[ddos]
enabled = true
port = 27015,27025,27050,28000,29000
protocol = udp
filter = ddos
logpath = /var/log/messages.log
maxretry = 3
bantime = 6000

Это просто тихий ужас. Логирование в iptables - это конечно хорошо, значит умеете (или думаете что умеете) пользоваться fail2ban, но хотел бы я на вас посмотреть после 1000 банов в iptables =)
Такая защита будет хуже самой атаки.
Более того, вы видимо совершенно не владеете такими понятиями, как состояние подключений, match-set и recent-update, та же задача решается в 3-4 строки стандартных правил iptables, без использования fail2ban.
Учите матчасть, подобное решение - очень кривой костыль, который "поможет" лишь против примитивного доса с десятком-другим ip.
P.S. пакет 28 байт - пустой пакет (не имеет датаграммы udp), его в принципе можно дропать уже при новой сессии, без кучи бесполезных цепочек. Правило пакета 46 байт - через простое ограничение, например по hash-limit - сократится число ложных срабатываний (длительный бан) + не будет глюков из-за переполнения таблицы банов.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ctapkom
сообщение 19.11.2013, 22:16
Сообщение #15
Стаж: 16 лет

Сообщений: 143
Благодарностей: 55
Полезность: 21

Цитата(Pro(X-Gamer)Pro @ 19.11.2013, 19:18) *
Intel i7 (4x3.4Ghz, HT)
50% нагружено

Пока не могу сказать про каналы, с ДЦ нету ответа
фишка в том что на шареде больше 400 мбит, то есть забить его он не может, конечно нужно еще уточнить парочку аспектов у ТП


Я сейчас еще все проверю)
И точнее скажу что буду наблюдать)

Если забить не может, и сетевая карта тянет (вы можете зайти на сервер, на нем работать во время атаки и т.п.), значит можно фильтровать. Было бы неплохо сделать дамп пакетов во время атаки:

/usr/sbin/tcpdump -vvv -n -c 10000 > /tmp/traf.log

и приложить файл /tmp/traf.log в теме

так же, напишите, что вам выдает эта команда:
cat /proc/interrupts | grep eth0
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Vitaliy
сообщение 19.11.2013, 23:41
Сообщение #16


Стаж: 14 лет

Сообщений: 2431
Благодарностей: 526
Полезность: 609

Меценат Меценат

ctapkom,
Днем снимали фильтры с роутера, не успевал зайти как все отваливалось
Посижу пока под фильтрами, поковыряю Debian
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя got123
сообщение 20.11.2013, 1:12
Сообщение #17
Стаж: 12 лет

Сообщений: 92
Благодарностей: 34
Полезность: 111

тебе нужна сетевушка со своим процессором для обработки траффика. гигабитные атаки у меня жрали не менее 35% cpu

Отредактировал: got123, - 20.11.2013, 1:14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xakep7
сообщение 20.11.2013, 1:13
Сообщение #18


Стаж: 14 лет

Сообщений: 503
Благодарностей: 468
Полезность: 938

Цитата(Pro(X-Gamer)Pro @ 20.11.2013, 4:41) *
ctapkom,
Днем снимали фильтры с роутера, не успевал зайти как все отваливалось
Посижу пока под фильтрами, поковыряю Debian

Посмотри сколько PPS льют.
В принципе 400 Мбит/с не так много. У меня и 980 Мбит/с лили я спокойно заходил на сервер.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя got123
сообщение 20.11.2013, 1:26
Сообщение #19
Стаж: 12 лет

Сообщений: 92
Благодарностей: 34
Полезность: 111

не могу найти в инете ссылку на карты интел со встроенной обработкой траффика.

Отредактировал: got123, - 20.11.2013, 1:37
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: