無効なパケットをブロックするためにTCPパケットを変更できますが、UDPパケットは変更できない理由

無効なパケットをブロックするためにTCPパケットを変更できますが、UDPパケットは変更できない理由

ある日、私はiptablesデスクトップを強化するためのルールを探してこの記事を見つけました[1]。ある時点で、ガイドでは、無効なTCPパケットをブロックするためにtcpモジュールとこれらの規則を使用することについて説明します。

iptables -A INPUT -p tcp -m tcp --tcp-flags ALL FIN,PSH,URG -j DROP

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

iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j DROP

上記のコマンドでEnterキーを押すと、ルールが正常に適用されました。次に、tcp各コマンドの一部をudpたとえば3番目のコマンドを実行した場合に置き換えようとします。

iptables -A INPUT -p udp -m conntrack --ctstate NEW -m udp ! --udp-flags FIN,SYN,RST,ACK SYN -j DROP

これにより、これらのルールが UDP パケットに対して無効であるというエラーが返されます。 Debianオペレーティングシステム、カーネルバージョン4.9.xを使用しています。

私がオンラインで読んだ記事

  1. https://www.booleanworld.com/length-guide-iptables-linux-firewall/

ベストアンサー1

TCPはステートフルプロトコルで、UDPはステートレスプロトコルであるため使用できませんctstate

特定のポートでUDPトラフィックを許可または許可しません。

--udp-flags FIN,SYN,RST,ACK SYNそれも純粋にうるさいだけだ。

つまり、iptables設定を急ぐ前にTCP / IPとUDPに慣れてください。

おすすめ記事