Pergunta

Quando manutenção de redes, muitas vezes é uma coisa conveniente fazer para executar um proxy transparente. Por proxy transparente quero dizer um proxy que conexões e os executa saída 'seqüestra' através de um serviço local. Especificamente corro um Linux firewall com lulas configurado de modo que todas as ligações TCP / IP Fowarded na porta 80 são aproximada pela lula.

Esta é conseguido usando a tabela de iptables 'Nat', usando IPv4.

Mas iptables para IPv6 não tem uma tabela 'Nat', então eu não posso usar a mesma aplicação. O que é uma técnica que pode ser usada para o tráfego de forma transparente proxy para conexões IPv6?

Foi útil?

Solução

Uma forma viável de fazer isso é com a regra TPROXY em iptables, a documentação está disponível aqui:

Isto deve ser apoiado Squid (> = versão 3.2). Usando --enable-linux-netfilter e do Estado iptables -t mangle -j TPROXY.

Outras dicas

iptables tem um alvo QUEUE, que você pode usar para entregar pacotes para userspace. Não estou certo, mas talvez algo poderia ser implementado lá.

Passado isso, você poderia tomar uma facada em acrescentar algo para o kernel para fazer o redirecionamento.

Você não pode. Citando squid-cache.org :

NAT simplesmente não existe em IPv6. De Projeto.

Dado que a transparência / interceptação é realmente uma característica adquirida por secretamente torcendo rotas NAT dentro para fora e para trás sobre si mesmos. É bastante lógico que um protocolo sem NAT não pode fazer transparência e interceptação dessa forma.

Aqui está uma implementação:

http://www.suse.de/~krahmer/ip6nat/

Outro tipo de gambiarra:

  • MARK todo o tráfego com iptables (parece, não é alvo CONNMARK para IPv6)
  • rota todos marcados tráfego para o dispositivo tun
  • fazer NAT espaço do usuário na escuta daemon no dispositivo tun
  • ...

Escreva a sua própria implementação de NAT na pilha IPv6.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top