発信DNSを許可するためによく使用される次の2つのiptablesルールを見てみましょう。
iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53
-m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --sport 53 --dport 1024:65535
-m state --state ESTABLISHED -j ACCEPT
私の質問は次のとおりです。UDPのESTABLISHED状態をどの程度正確に理解すべきですか UDPはステートレスです。
ここに私の直観があります-これが間違っているかどうか、どこで知りたいですか:
マニュアルページはこれを教えてくれます:
状態
このモジュールは、接続追跡と組み合わせると、 このパケットの接続追跡状態。 --state ...
それで、iptablesは基本的に、発信パケットに使用されたポート番号を記憶し(UDPパケットの場合は他に何を記憶できますか?)、その後、短い時間内に返送される最初の着信パケットを許可しますか?攻撃者はポート番号を推測する必要があります(本当に難しいですか?)
競合の回避について:
カーネルは、(他のサービスまたは以前の発信UDPパケットによって)ブロックされているポートを追跡し、これらのポートが時間枠内で新しい発信DNSパケットに使用されないようにしますか?(時間枠内で誤ってそのポートでサービスを開始しようとした場合、どうなりますか?その試みは拒否/ブロックされますか?)
上記のテキストですべてのエラーを見つけてください:-)ありがとう、
クリス