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.

관련 정보