0

Iptables фильтруем по TTL

TTL — (time to live), по сути время жизни. Он помогает узнать через сколько маршрутизаторов прошел пакет до того как попал к вам. При прохождении через каждый маршрутизатор TTL уменьшается на 1.

Фильтровать по TTL мне пришлось в результате сильного syn-flood’а со спуфингом ip-адресов.

В моем случае пришлось убрать все правила из iptables, так как при таком количестве пакетов iptables сильно нагружает процессор.

Чтобы определить ttl можно просмотреть вывод tcpdump с ключом -v

tcpdump -i eth1 -v -n  'tcp[ 13 ]==2' and dst host xxx.xxx.xxx.xxx
23:53:53.408276 xx:xx:xx:xx:xx:xx > xx:xx:xx:xx:xx:xx, ethertype IPv4 (0x0800), length 60: (tos 0x0, ttl 251, id 37644, offset 0, flags [none], proto TCP (6), length 40) 35.134.171.58.26353 > xxx.xxx.xxx.xxx.80: S, cksum 0x6fc5 (correct), 974258176:974258176(0) win 0
23:53:53.408350 xx:xx:xx:xx:xx:xx > xx:xx:xx:xx:xx:xx, ethertype IPv4 (0x0800), length 60: (tos 0x0, ttl 251, id 37017, offset 0, flags [none], proto TCP (6), length 40) 41.152.196.11.22497 > xxx.xxx.xxx.xxx.80: S, cksum 0x732a (correct), 651821056:651821056(0) win 0
23:53:53.408352 xx:xx:xx:xx:xx:xx > xx:xx:xx:xx:xx:xx, ethertype IPv4 (0x0800), length 60: (tos 0x0, ttl 251, id 6708, offset 0, flags [none], proto TCP (6), length 40) 71.24.39.128.3945 > xxx.xxx.xxx.xxx.80: S, cksum 0x6b68 (correct), 4129226752:4129226752(0) win 0
23:53:53.408446 xx:xx:xx:xx:xx:xx > xx:xx:xx:xx:xx:xx, ethertype IPv4 (0x0800), length 60: (tos 0x0, ttl 251, id 14924, offset 0, flags [none], proto TCP (6), length 40) 163.15.109.218.16370 > xxx.xxx.xxx.xxx.80: S, cksum 0x7806 (correct), 380043264:380043264(0) win 0
23:53:53.408453 xx:xx:xx:xx:xx:xx > xx:xx:xx:xx:xx:xx, ethertype IPv4 (0x0800), length 60: (tos 0x0, ttl 251, id 48784, offset 0, flags [none], proto TCP (6), length 40) 209.92.51.235.43769 > xxx.xxx.xxx.xxx.80: S, cksum 0xacbb (correct), 2190213120:2190213120(0) win 0
23:53:53.408454 xx:xx:xx:xx:xx:xx > xx:xx:xx:xx:xx:xx, ethertype IPv4 (0x0800), length 60: (tos 0x0, ttl 251, id 10990, offset 0, flags [none], proto TCP (6), length 40) 114.169.90.53.62036 > xxx.xxx.xxx.xxx.80: S, cksum 0x6433 (correct), 3156344832:3156344832(0) win 0

добавляем правило в iptables

iptables -A INPUT -p tcp -m ttl --ttl-eq=251 -j DROP

При большом syn-flood’е только это конечно вам не поможет, нужно еще крутить настройки tcp и сетевой карты.

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

XpycT

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *