2

テスト環境は次のとおりです。

2 オペレーティング システム ubuntu サーバー 10.04 が VirtualBox にインストールされている

iptables v1.4.4

ip_conntrack モジュールがロードされました

これらは私のテストルールです:

    $IPTABLES -A INPUT -p TCP -m state --state NEW -j LOG --log-prefix "[-IPT-]NEW:"
    $IPTABLES -A INPUT -p TCP -m state --state ESTABLISHED -j LOG --log-prefix "[-IPT-]ESTABLISHED:"
    $IPTABLES -A INPUT -p TCP -m state --state RELATED -j LOG --log-prefix "[-IPT-]RELATED:"
    $IPTABLES -A INPUT -p TCP -m state --state INVALID -j LOG --log-prefix "[-IPT-]INVALID:"

使用して

hping3 -c 1 192.168.0.1 -p 80 [flags combination]

私は得る:

no flag     INVALID
syn         NEW
ack         NEW
rst         INVALID
fin         INVALID
syn ack INVALID
syn rst INVALID
syn fin INVALID
ack rst INVALID
ack fin INVALID
rst fin INVALID
syn ack rst INVALID
syn rst fin INVALID
ack rst fin INVALID
syn ack rst fin INVALID

私は、netfilter によって見られる最初のパケットが NEW (ユーザー ランド内) でなければならないというチュートリアルをさらに読みました。自分のコンピューターに動作しないものがあるかどうかわかりません。

次に、インターネット上には、接続状態と tcp フラグの両方を考慮してフィルタリングするルールがたくさんあります。これらはすべて間違っていますか?理由は非常に単純です: new と ! に一致するパケットをドロップしている場合。--syn、結果は苦痛です...多くのパケットが「ファイアウォール」を通過します(そのように命名できる場合)

新しいバージョンの iptables の動作が異なる可能性はありますか?

お使いのコンピュータで同じ結果が得られているか確認していただけますか? thx、感謝します!

4

1 に答える 1

3

あなたの結果を見ると、彼らは私が期待していた方法とほぼ同じです. モジュールに基づいて決定されたものもあれば、 TCP RFCconntrackで許可されている動作 (つまり、フラグの組み合わせ) に基づいていると思われるものもあります。

フラグがない場合、RFC に従って完全に無効になります。

SYN理由が次のように分類されていることをご存知だと思いますが、それはNEW非常に予想どおりです:)

ACKconntrackモジュール (afaik) は 3 ウェイ ハンドシェイクの 3 番目のステップまで接続の追跡を開始しないため、新しいものとして分類されます。

RSTとは両方ともFIN、ライブの現在の TCP 接続の一部としてのみ有効であるため、この拒否はconntrack、ここで接続を追跡するモジュールに基づいています。

TCPフラグを「新しい」パケットとして組み合わせると、場合によっては(たとえば、以前の接続である必要があります)、RFCに従って(再び)明らかに無効な組み合わせになる場合があります。たとえば、TCP セグメントにRSTandFINフラグを設定しないでください。 ACKandRSTを設定するには、現在の TCP 接続が既に設定されている必要がありconntrackます。 )。

Ubuntu 12.04 または RHEL で同じテストを実行してみましたか? 後で試すことができるかどうかを確認しますが、コンピューターは期待どおりに動作していると思います。いいテストですが:)

次に、インターネット上には、接続状態と tcp フラグの両方を考慮してフィルタリングするルールがたくさんあります。これらはすべて間違っていますか?

私はそうは思いませんが、ユースケースは人によって異なり、両方を組み合わせることで、人々は一般的に慎重になっていると思います. ただし、ほとんどの人は、あなたが持っているほど多くのテストを行っているわけではなく (称賛)、全員が理解しているわけでもありません。

新しいバージョンの iptables の動作が異なる可能性はありますか?

いいえ、私の知る限りではありません。

于 2012-08-23T11:11:49.487 に答える