Netfilter 接続トレースは、特定のパケットを conntrack エントリと「関連」したものとして識別するように設計されています。
私はICMPおよびICMPv6エラーパケットのTCPおよびUDPのconntrackエントリの完全な詳細を探しています。
IPv6ファイアウォールの場合、RFC 4890は破棄しないでくださいICMPv6パケットを明確に説明しています。
http://www.ietf.org/rfc/rfc4890.txt
4.3.1。廃棄できないトラフィック
通信の設定と維持に重要なエラーメッセージ:
Destination Unreachable (Type 1) - All codes Packet Too Big (Type 2) Time Exceeded (Type 3) - Code 0 only Parameter Problem (Type 4) - Codes 1 and 2 only Appendix A.4 suggests some more specific checks that could be performed on Parameter Problem messages if a firewall has the
必要なパケット検査機能。
Connectivity checking messages: Echo Request (Type 128) Echo Response (Type 129) For Teredo tunneling [RFC4380] to IPv6 nodes on the site to be possible, it is essential that the connectivity checking messages are
ファイアウォール経由で許可されています。 IPv4ネットワークでは、保護されたネットワークに対する攻撃検出のリスクを最小限に抑えるために、ファイアウォールにエコー要求メッセージを削除することが一般的な方法です。セクション3.2で説明したように、IPv6ネットワークではポートスキャンのリスクがはるかに少なく、IPv6エコー要求メッセージをフィルタリングする必要はありません。
4.3.2。一般的に削除しないトラフィック
セクション4.3.1にリストされているエラーメッセージに加えて:
Time Exceeded (Type 3) - Code 1 Parameter Problem (Type 4) - Code 0
Linux ホーム ルータの場合、RFC 4890 ICMPv6 パケットの通過を許可しながら WAN インターフェイスを保護するには、次のルールで十分ですか? (ip6tables - 保存形式)
*filter
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
付録:もちろん、NDPとDHCP-PDには追加の規則が必要です。
-A INPUT -s fe80::/10 -d fe80::/10 -i wanif -p ipv6-icmp -j ACCEPT
-A INPUT -s fe80::/10 -d fe80::/10 -i wanif -p udp -m state --state NEW -m udp --sport 547 --dport 546 -j ACCEPT
つまり、RFC 4980に準拠するために次の規則を安全に削除し、「関連」規則のみを維持できますか?
-A INPUT -i wanif -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT
-A INPUT -i wanif -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
-A INPUT -i wanif -p icmpv6 --icmpv6-type ttl-exceeded -j ACCEPT
-A INPUT -i wanif -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT
ベストアンサー1
私は答えがわかりませんが、自分で見つけることができます。
次の規則を使用してください(会計目的で空のチェーン「NOOP」を作成)。
*filter
...
:NOOP - [0:0]
...
-A INPUT -i wanif -p icmpv6 --icmpv6-type destination-unreachable -j NOOP
-A INPUT -i wanif -p icmpv6 --icmpv6-type packet-too-big -j NOOP
-A INPUT -i wanif -p icmpv6 --icmpv6-type ttl-exceeded -j NOOP
-A INPUT -i wanif -p icmpv6 --icmpv6-type parameter-problem -j NOOP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i wanif -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT
-A INPUT -i wanif -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
-A INPUT -i wanif -p icmpv6 --icmpv6-type ttl-exceeded -j ACCEPT
-A INPUT -i wanif -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT
...
時には後でip6tables-save -c
カウンターを使用して上記のルールを確認してください。 「関連」行の上のNOOPルールのカウンタは0より大きいが、その下のACCEPTルールのカウンタが0の場合、「関連」一致がそのエントリを受け入れたことがわかります。一部のNOOPルールのカウンタが0の場合、特定のicmpv6タイプRELATEDがこれを実行しているかどうかはまだわかりません。一部のACCEPT行のカウンタが0より大きい場合、その明示的な規則が実際に必要です。