Мы видим проблему, описанную здесь - 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