Назад | Перейти на главную страницу

Как сбросить поддельные tcp-пакеты через iptables?

Мы видим проблему, описанную здесь - http://archives.neohapsis.com/archives/bugtraq/2002-10/0266.html

Короче говоря, нам нужно отбрасывать поддельные пакеты, например, с установленными флагами SYN + FIN. Я могу отбросить этот конкретный пакет, добавив правило -

iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

Теперь комбинаций флагов могло быть намного больше. Так что я должен добавить их все или есть способ лучше?

Лучшее время для отбрасывания поддельных пакетов - это когда пакеты еще не отслеживаются, т.е. находятся в «сырой» таблице. Или, если быть точным: -t raw -A PREROUTING

Посетите следующую вики сообщества: советы и хитрости iptables с уважением. Один из «ответов» там уже содержит набор правил для отбрасывания поддельных пакетов.

Я предлагаю отбросить все НЕВЕРНЫЕ пакеты, если вы используете отслеживание соединений с: iptables -A FORWARD -m state --state INVALID -m comment --comment "DROP INVALID" -j DROP

Вы тоже можете увидеть: -A FORWARD -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -m comment --comment "Bad TCP Packet" -j DROP -A FORWARD -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -m comment --comment "Bad TCP Packet" -j DROP -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -m comment --comment "Bad TCP Packet" -j DROP -A FORWARD -p tcp -m tcp --tcp-flags FIN,RST FIN,RST -m comment --comment "Bad TCP Packet" -j DROP -A FORWARD -p tcp -m tcp --tcp-flags FIN,ACK FIN -m comment --comment "Bad TCP Packet" -j DROP -A FORWARD -p tcp -m tcp --tcp-flags ACK,URG URG -m comment --comment "Bad TCP Packet" -j DROP