IPv6ファイアウォールルールがすべての接続をブロックしているように見える

IPv6ファイアウォールルールがすべての接続をブロックしているように見える

私の小規模サーバーにファイアウォールが必要だと判断したら、fermを使用してiptablesとip6tablesを設定しました(この質問ではfermタグを付ける必要がありますが、タグを生成することはできませんでした)。

ipv4とipv6に同じ規則を使用しますが、ファイアウォールを設定したら(すべてのポートで)、IPv6接続が機能しなくなり、IPv4に切り替える必要があります。なぜですか?

私の/etc/ferm.conf

domain (ip ip6) table filter {
    chain INPUT {
        policy DROP;

        # connection tracking
        mod state state INVALID DROP;
        mod state state (ESTABLISHED RELATED) ACCEPT;

        # allow local connections
        interface lo ACCEPT;

        # respond to ping
        proto icmp icmp-type echo-request ACCEPT;

        # allow SSH connections
        proto tcp dport ssh ACCEPT;

        # allow all my lovely server stuff
        proto tcp dport (http https smtp imap imaps) ACCEPT;

        # Teamspeak 3 Server
        proto tcp dport (10011 30033) ACCEPT;
        proto udp dport 9987 ACCEPT;

        # Prosody XMPP
        proto tcp dport (5222 5269) ACCEPT;

        # ident connections are also allowed
        proto tcp dport auth ACCEPT;

        # the rest is dropped by the above policy
    }

    # outgoing connections are not limited
    chain OUTPUT policy ACCEPT;

    # this is not a router
    chain FORWARD policy DROP;
}

IP6テーブル-vnL

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all      *      *       ::/0                 ::/0                 state INVALID
   24  8224 ACCEPT     all      *      *       ::/0                 ::/0                 state RELATED,ESTABLISHED
    0     0 ACCEPT     all      lo     *       ::/0                 ::/0
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0                 ipv6-icmptype 128
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:22
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:80
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:443
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:25
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:143
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:993
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:10011
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:30033
    0     0 ACCEPT     udp      *      *       ::/0                 ::/0                 udp dpt:9987
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:5222
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:5269
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:113

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 24 packets, 8224 bytes)
 pkts bytes target     prot opt in     out     source               destination

ベストアンサー1

問題は、ほとんどのICMPv6パケットを破棄することです。ネイバー検索(IPv4のARPと同じ)など、多くの基本的なIPv6機能はICMPv6に依存しています。 ICMPはIPプロトコル(IPv4とIPv6)の重要な部分ですが、間違ったICMPフィルタリングによる影響は、IPv4よりもIPv6でははるかに深刻です。すべてのICMPを許可してから、不要なICMPをフィルタリングする方が良いかもしれません。

詳細な背景情報については、以下を確認してください。RFC 4890

おすすめ記事