iptables para encaminhamento de porta de endereço ipv6 para porta localhost

4

Digamos que eu queira redirecionar 2a00: 1450: 400c: c01 :: 71 na porta 443 para a porta 12345 do localhost.

Como fazer isso com o Iptables?

Atualizar

Okey, é o Weechat que executa uma retransmissão SSL em uma porta > = 1000. Pode fazer conexões com IPv4 e IPv6 nesta porta. Então eu quero ligar um IPv6 definido: Porta [2a00: 1450: 400c: c01 :: 71]: 443 para IPv6 localhost Porta [:: 1]: 12345

    
por Markus 01.07.2014 / 20:23

3 respostas

8

Você pode causar problemas, porque com o IPv6 você não deve usar NAT, mas a partir do kernel Linux 3.8 você pode fazer:

ip6tables -t nat -A PREROUTING -p tcp -m tcp \
          -d 2a00:1450:400c:c01::71 --dport 443 -j REDIRECT --to-ports 12345
    
por 01.07.2014 / 21:24
2

Esta resposta é aplicável à versão original da pergunta, antes de ser editada. Para a pergunta atualizada, a resposta dada por @SanderSteffann é aplicável.

Você não pode fazer isso com iptables , porque iptables está manipulando apenas o IPv4 e não o IPv6. Você não pode fazer isso com ip6tables , porque ip6tables está lidando apenas com IPv6 e não com IPv4.

Existem conversores de protocolo, que podem converter entre IPv4 e IPv6. Mas eles podem impor limitações a quais IPs podem converter, porque o IPv4 e o IPv6 não possuem o mesmo número de endereços IP.

A combinação de um tradutor de protocolo para alterar o endereço IP com iptables para alterar o número da porta pode ser possível. Mas eu não aconselharia o uso de tal combinação, em particular não sem conhecer detalhes sobre suas necessidades específicas.

De qualquer forma, o servidor não teria acesso imediato a informações sobre o endereço IPv6 do cliente, porque não há como incorporar todo o endereço IPv6 dentro do endereço IPv4 do cliente visível para o servidor.

Com base na quantidade limitada de informações fornecidas, eu daria o mesmo conselho que o @MichaelHampton fez, apenas execute o serviço na porta apropriada em primeiro lugar. Se isso não for uma opção, faça uma pergunta melhor. Explique que serviço você tentou executar, como tentou ouvi-lo na porta correta e como ele falhou.

    
por 01.07.2014 / 20:44
0

este trabalhou para mim, semelhante a @Sander Steffann, mas sem o ip addr codificado, apenas a interface

ip6tables -t nat -I PREROUTING -i eth0 -p tcp -m tcp --dport 22 -j REDIRECT --to-ports 2222
    
por 13.11.2017 / 15:00

Tags