Proxy transparent pour le trafic IPv6 sous Linux
Question
Lors de la maintenance de réseaux, il est souvent utile de faire fonctionner un proxy transparent. Par proxy transparent, j'entends un proxy qui "détourne" les connexions sortantes et les fait passer par un service local. Plus précisément, je lance un pare-feu Linux avec squid configuré de sorte que toutes les connexions TCP / IP acheminées sur le port 80 soient relayées par squid.
Ceci est réalisé en utilisant la table 'nat' d'iptables, en utilisant IPv4.
Mais iptables pour IPv6 n’a pas de table "nat", je ne peux donc pas utiliser la même implémentation. Quelle technique puis-je utiliser pour mettre en proxy de manière transparente le trafic pour les connexions IPv6?
La solution
La règle TPROXY dans iptables est un moyen viable de le faire. La documentation est disponible ici:
- http://wiki.squid-cache.org/Features/Tproxy4#IPv6_Support
- http://www.mjmwired.net/kernel/Documentation/networking /tproxy.txt
Ceci devrait être pris en charge par Squid (> = version 3.2). Utilisation de - enable-linux-netfilter
et de la règle iptables -t mangle -j TPROXY
.
Autres conseils
iptables a une cible QUEUE, que vous pouvez utiliser pour distribuer des paquets dans l’espace utilisateur. Je ne suis pas sûr, mais peut-être que quelque chose pourrait être mis en œuvre là-bas.
Après cela, vous pouvez essayer d’ajouter quelque chose au noyau pour effectuer la redirection.
Vous ne pouvez pas. Citant squid-cache.org :
La NAT n’existe tout simplement pas dans IPv6. Par Conception.
Etant donné que transparence / interception est en fait une fonctionnalité acquise par tordant secrètement les routes NAT à l'intérieur aller et retour sur eux-mêmes. C'est assez logique qu'un protocole sans NAT ne peut pas faire la transparence et interception de cette façon.
Voici une implémentation:
Une autre sorte de bidouille moche:
- MARQUEZ tout le trafic avec iptables (semble-t-il, il y a une cible CONNMARK pour IPv6)
- route tout le trafic marqué vers le périphérique tun
- faire un NAT d'espace utilisateur dans le démon à l'écoute sur le périphérique tun
- ...
Écrivez votre propre implémentation de NAT dans la pile IPv6.