iptables tcp flood

Cent OS, Scientific Linux

Модератор: Модераторы разделов

spool
Сообщения: 126
ОС: CentOS 6.6

iptables tcp flood

Сообщение spool »

Здравствуйте. Флудят сервак tcp пакетами вида
Spoiler
# tcpdump tcp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
17:36:16.207365 IP xxx.xxx.xxx.xxx.http > 103.177.106.17.8361: Flags [S.], seq 1608668911, ack 2974154753, win 14600, options [mss 1460], length 0
17:36:16.207380 IP 111.62.158.169.8983 > xxx.xxx.xxx.xxx.http: Flags [S], seq 1045757952, win 0, length 0
17:36:16.207392 IP xxx.xxx.xxx.xxx.http > 111.62.158.169.8983: Flags [S.], seq 3160858137, ack 1045757953, win 14600, options [mss 1460], length 0
17:36:16.207441 IP 211.215.28.46.49206 > xxx.xxx.xxx.xxx.http: Flags [S], seq 666435584, win 0, length 0
17:36:16.207457 IP xxx.xxx.xxx.xxx.http > 211.215.28.46.49206: Flags [S.], seq 2181153379, ack 666435585, win 14600, options [mss 1460], length 0
17:36:16.207460 IP 61.137.137.107.54725 > xxx.xxx.xxx.xxx.http: Flags [S], seq 1933901824, win 0, length 0
17:36:16.207471 IP xxx.xxx.xxx.xxx.http > 61.137.137.107.54725: Flags [S.], seq 4106986880, ack 1933901825, win 14600, options [mss 1460], length 0
17:36:16.207494 IP 21.8.123.151.23922 > xxx.xxx.xxx.xxx.http: Flags [S], seq 558563328, win 0, length 0
17:36:16.207506 IP xxx.xxx.xxx.xxx.http > 21.8.123.151.23922: Flags [S.], seq 3449016905, ack 558563329, win 14600, options [mss 1460], length 0
17:36:16.207521 IP 95-43-150-250.btc-net.bg.62826 > xxx.xxx.xxx.xxx.http: Flags [S], seq 859570176, win 0, length 0
17:36:16.207533 IP xxx.xxx.xxx.xxx.http > 95-43-150-250.btc-net.bg.62826: Flags [S.], seq 411438657, ack 859570177, win 14600, options [mss 1460], length 0
17:36:16.207565 IP dialup-4.201.139.46.Dial1.Manchester1.Level3.net.18737 > xxx.xxx.xxx.xxx.http: Flags [S], seq 1165950976, win 0, length 0
17:36:16.207579 IP xxx.xxx.xxx.xxx.http > dialup-4.201.139.46.Dial1.Manchester1.Level3.net.18737: Flags [S.], seq 1347282867, ack 1165950977, win 14600, options [mss 1460], length 0
17:36:16.207608 IP 192.90.33.148.38447 > xxx.xxx.xxx.xxx.http: Flags [S], seq 2965700608, win 0, length 0
17:36:16.207622 IP xxx.xxx.xxx.xxx.http > 192.90.33.148.38447: Flags [S.], seq 1061161104, ack 2965700609, win 14600, options [mss 1460], length 0
17:36:16.207625 IP n219078040008.netvigator.com.15495 > xxx.xxx.xxx.xxx.http: Flags [S], seq 228392960, win 0, length 0

Где xxx.xxx.xxx.xxx - адрес моего сервера. Пытался заблочить с помощью iptables --length 0, но эффекта никакого. Подскажите, пожалуйста, как можно заблочить эти пакеты.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21409
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables tcp flood

Сообщение Bizdelnick »

spool писал(а):
16.02.2015 18:42
ытался заблочить с помощью iptables --length 0,

Команду покажите, и её вывод, если есть.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
spool
Сообщения: 126
ОС: CentOS 6.6

Re: iptables tcp flood

Сообщение spool »

iptables -I INPUT -p tcp -m tcp -m length --length 0 -j DROP

Но в инете прочел, что tcp пакеты не могут быть 0, т.к. в теле там что-то есть на некоторое кол-во байт. Но вот я не знаю, как вычислить именно тот размер.

и её вывод

в iptables -L -n -v показывает по 0 заблоченные пакеты и сервер все равно тормозит.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21409
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables tcp flood

Сообщение Bizdelnick »

Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
spool
Сообщения: 126
ОС: CentOS 6.6

Re: iptables tcp flood

Сообщение spool »

Bizdelnick
Вы уверены, что это именно syn флуд? Просто читал, что там должно быть открыто n syn соединений во время флуда, но у меня такого не наблюдалось.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21409
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables tcp flood

Сообщение Bizdelnick »

spool писал(а):
16.02.2015 20:03
Вы уверены, что это именно syn флуд?

spool писал(а):
16.02.2015 18:42
Flags [S]

Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
spool
Сообщения: 126
ОС: CentOS 6.6

Re: iptables tcp flood

Сообщение spool »

Bizdelnick
Благодарю. Попробую.
Спасибо сказали:
spool
Сообщения: 126
ОС: CentOS 6.6

Re: iptables tcp flood

Сообщение spool »

Подскажите еще, пожалуйста, как можно зафильтровать флуд подобными пакетами

Код: Выделить всё

20:53:14.569328 IP 91.214.85.243.53174 > ххх.ххх.ххх.ххх.http: Flags [.], ack 1141088, win 4173, length 0
20:55:22.781443 IP 94.231.189.14.51202 > ххх.ххх.ххх.ххх.http: Flags [.], ack 282581, win 260, options [nop,nop,sack 1 {284001:296781}], length 0
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21409
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables tcp flood

Сообщение Bizdelnick »

Как-то так, наверное: iptables -I INPUT -p tcp ! --syn -m conntrack --state NEW -j DROP
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
spool
Сообщения: 126
ОС: CentOS 6.6

Re: iptables tcp flood

Сообщение spool »

Bizdelnick
Но это правило, как я понимаю, будет блокировать и пакеты от валидных пользователей?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21409
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables tcp flood

Сообщение Bizdelnick »

Не будет. Если TCP-соединение не установлено, от нормального клиента может прийти только SYN.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
spool
Сообщения: 126
ОС: CentOS 6.6

Re: iptables tcp flood

Сообщение spool »

Подскажите еще, пожалуйста, почему при

Код: Выделить всё

iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A syn-flood -j DROP

файлы по фтп передаются очень и очень медленно, хотя в tcpdump на 21 порт я не видел syn пакетов.
Даже если добавить перед этими правилами

Код: Выделить всё

-p tcp --dport 21 -j RETURN

то это все равно не дает никакого эффекта. Ну или как можно оптимизировать вышеприведенное правило для нормальной работы с фтп? Заранее спасибо.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21409
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables tcp flood

Сообщение Bizdelnick »

spool писал(а):
22.02.2015 11:54
файлы по фтп передаются очень и очень медленно, хотя в tcpdump на 21 порт я не видел syn пакетов.

Пассивный режим? Там должны открываться соединения на другие порты. Видимо, число соединений упирается в лимит. Возможно, для этих портов надо добавить исключение.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
spool
Сообщения: 126
ОС: CentOS 6.6

Re: iptables tcp flood

Сообщение spool »

Bizdelnick
Благодарю. В конфиг vsftpd добавил

Код: Выделить всё

pasv_min_port=50200
pasv_max_port=50299

и правило

Код: Выделить всё

iptables -A INPUT -p tcp -m multiport ! --dports 21,50200:50299 --syn -j syn-flood

Теперь все работает нормально.
Спасибо сказали: