しばらくすると、IPv6アドレスのサーバー接続が失われるという問題が発生しました。これは、デフォルトポリシーによってDHCPv6クライアントパケット(ポート546)が破棄されたためであることがわかりましINPUT
たDROP
。これこの問題に関する私の質問は次のとおりです。私のルールは次のとおりです。
-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クライアントパケットを許可するには次の規則を追加する必要があります。ESTABLISHED
OUTPUT
ACCEPT
-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詳細については。