Permitir tráfego IPv6 de entrada para um host e porta quando o prefixo IPv6 é dinâmico?

Permitir tráfego IPv6 de entrada para um host e porta quando o prefixo IPv6 é dinâmico?

Com o IPv4, você costumava fornecer a um host um endereço IP local estático na LAN e usar uma regra de firewall no firewall/roteador para encaminhar uma porta no IP (possivelmente dinâmico) voltado para a Internet usado pela rede para uma porta em um host específico, usando o endereço IPv4 da LAN estática do host como uma forma estável de identificar o host na regra de firewall.

Mas com o IPv6, cada host usa IPs de Internet roteáveis ​​reais, de modo que o tráfego de entrada do host já estará endereçado a ele e não há necessidade de NAT. Mas você ainda precisa escrever uma regra de firewall para dizer que o tráfego de entrada para um host e uma porta específicos deve ser permitido, enquanto o tráfego para outros hosts ou portas é bloqueado.

Mas se o prefixo sob o qual a rede atribui endereços IPv6 for dinâmico, como você se referiria a um host específico em uma regra de firewall para permitir o tráfego para ele? Você não pode simplesmente permitir o tráfego para seu endereço IPv6, porque na próxima semana ele terá um endereço IPv6 com um prefixo diferente, porque o ISP terá atribuído à rede um prefixo diferente.

Como você realmente configura um firewall para permitir o tráfego de entrada para esse host em alguma porta? Parece ip6tablesque há uma --destopção de correspondência por destino, mas isso apenas permite que você insira um endereço inteiro e não, por exemplo, um sufixo do endereço que você pode garantir que seja mantido estático para um host. Na página de manual:

       [!] -s, --source address[/mask][,...]
              Source  specification.  Address can be either a network name, a
              hostname, a network IP address (with /mask), or a plain IP  ad‐
              dress. Hostnames will be resolved once only, before the rule is
              submitted to the kernel.  Please note that specifying any  name
              to  be resolved with a remote query such as DNS is a really bad
              idea.  The mask can be either an ipv4 network mask  (for  ipta‐
              bles)  or  a  plain number, specifying the number of 1's at the
              left side of the network mask.  Thus, an iptables mask of 24 is
              equivalent to 255.255.255.0.  A "!" argument before the address
              specification inverts the sense of the address. The flag  --src
              is  an alias for this option.  Multiple addresses can be speci‐
              fied, but this will expand to multiple rules (when adding  with
              -A), or will cause multiple rules to be deleted (with -D).

       [!] -d, --destination address[/mask][,...]
              Destination  specification.   See  the  description  of  the -s
              (source) flag for a detailed description of  the  syntax.   The
              flag --dst is an alias for this option.

Existe uma maneira de lidar com isso ip6tables? Existe alguma outra camada ip6tablesque deveria gerar regras que mudam à medida que a rede é renumerada, que todos estão realmente usando? Existe algum tipo de ip6tablesplug-in que me permite combinar o tráfego que irá para um host específico, mesmo que o número da rede mude? Outros firewalls de sistema operacional lidam com isso de maneira diferente?

Responder1

ip6tablesaceita uma máscara de bits para o endereço. Ao contrário iptablesdo IPv4, esses bits não precisam necessariamente estar todos no início do endereço, então algo assim deve funcionar bem:

ip6tables -A INPUT -d ::1234:56ff:fe78:90ab/::ffff:ffff:ffff:ffff -j ACCEPT

Isso faria com que o ip6tables aceitasse todos os pacotes que vão para um endereço IPv6 que termina em ::1234:56ff:fe78:90ab, independentemente do prefixo.

informação relacionada