IPv6が正しく機能するためのデフォルトのiptablesルールは何ですか?

IPv6が正しく機能するためのデフォルトのiptablesルールは何ですか?

しばらくすると、IPv6アドレスのサーバー接続が失われるという問題が発生しました。これは、デフォルトポリシーによってDHCPv6クライアントパケット(ポート546)が破棄されたためであることがわかりましINPUTDROPこれこの問題に関する私の質問は次のとおりです。私のルールは次のとおりです。

-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -s IP_OF_ANOTHER_HOST -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-P INPUT DROP

このルールで十分だと思います。特に、私のチェーンのデフォルトポリシーは許可RELATEDと接続なので、DHCPv6クライアントパケットを許可するには次の規則を追加する必要があります。ESTABLISHEDOUTPUTACCEPT

-A INPUT -m conntrack --ctstate NEW -m udp -p udp --dport 546 -d fe80::/64 -j ACCEPT

問題は、不要なルールを追加したくなく、ルールをできるだけ単純にしたいということです。

それでは、IPv6が正しく機能するために設定する必要がある基本的なルールは何ですか? DHCPv6サーバーポート547も有効にする必要がありますか?すべてのICMPv6パケットを許可できますか?

ベストアンサー1

デフォルトのルールはネットワークによって異なります。ネットワークは DHCPv6 の代わりに SLAAC を使用することも、トンネリング、ICMP 処理などによって異なる問題が発生することもあります。

-A INPUT -m conntrack --ctstate NEW -m udp -p udp --dport 546 -d fe80::/64 -j ACCEPT

DHCPv6 クライアントに適用されます。 DHCPクライアントはDHCPサーバーではない可能性があるため、サーバーポート547トラフィックを許可しないでください。パケットは、DHCP サーバーのポート 547 からクライアントのポート 546 に送信されます。クライアントはブロードキャスト(または実際にはIPv6でマルチキャスト)し、サーバーはクライアントが応答するためにブロードキャストした場所とは無関係のアドレスからブロードキャストするため、接続追跡は適用されません。

rootポートでリッスンする必要があるため、<1024クライアントシステムの任意のユーザーが基本的に悪意のあるサービスを開始してはいけないため、かなり安全です(DoSネットワークアクセスは可能ですか?)。fe80リンクはローカルトラフィックであるため、他のサブネット上のリモートの悪意のあるユーザーはトラフィックをそのポートにルーティングできません。 (サブネットに悪意のあるユーザーがいる場合は、ネットワークの使用など、処理する必要がある他のより重要な問題がある可能性があります)機器は不良DHCPサーバーから保護されています)。

ICMPv6は、許可または拒否したい項目によって非常に複雑になる可能性がありますが、これは単純なIPv6クライアントの接続追跡のデフォルトを使用して処理できます。バラよりRFC 4443そしてRFC 4890詳細については。

おすすめ記事