2010-11-29 20 views
15

Comment puis-je rediriger un port vers un autre port local en utilisant ip6tables? par exemple. quelque chose comme ceci: ip6tables -t nat -A PREROUTING -j REDIRECT -p tcp --dport 443 --to-ports 8443REDIRECT un port dans ip6tables

Répondre

4

ip6tables ne prend pas en charge REDIRECT. (Normalement les gens l'utilisent dans un environnement NAT, et NAT n'est généralement pas supporté avec IPv6.)

Si tout ce que vous devez faire est de lier le port bas comme un utilisateur normal, pourquoi ne pas essayer la solution de contournement décrite dans this answer? Bien sûr, dans le cas de Tomcat, il semblerait que cela signifierait donner à n'importe quel processus Java cette capacité.

+7

Apparemment 'ip6tables' v1.4.18 et Linux support noyau v3.8' REDIRECT': https://sector7g.be/posts/ipv6-nat-pre-routing-with-iptables –

5

Eh bien, c'est une vieille question, mais depuis que je dois faire la même chose ... Voici ce que j'ai trouvé:

TPROXY 

This target is only valid in the mangle table, in the PREROUTING chain and user-defined chains which are only called from this chain. It redirects the packet to a local socket without changing the packet header in any way. It can also change the mark value which can then be used in advanced routing rules. It takes three options: 
--on-port port 
    This specifies a destination port to use. It is a required option, 0 means the new destination port is the same as the original. This is only valid if the rule also specifies -p tcp or -p udp. 
--on-ip address 
    This specifies a destination address to use. By default the address is the IP address of the incoming interface. This is only valid if the rule also specifies -p tcp or -p udp. 
--tproxy-mark value[/mask] 
    Marks packets with the given value/mask. The fwmark value set here can be used by advanced routing. (Required for transparent proxying to work: otherwise these packets will get forwarded, which is probably not what you want.) 

Ceci est valable pour ip6tables seulement, bien sûr. Donc je suppose que ceci est valable:

ip6tables -t mangle -A PREROUTING -p tcp --dport 443 -j TPROXY --on-port 8443 

Cependant, je ne l'ai pas essayé encore.

+0

Vous trouverez plus difficile que REDIRECT en IPv4 ... Le TPROXY a un comportement spécial dans la table mangle, vous aurez donc besoin d'utiliser des marques et un routage avancé. –

+0

Quelle version de netfilter est nécessaire pour "--on-ip"? ip6tables v1.4.8 (empaqueté avec Debian Squeeze) ne fonctionne pas. Merci d'avance ! – int2000

+1

Après une courte recherche dans /usr/share/doc/iptables/changelog.Debian.gz sur ma boîte de test, il semble qu'elle ait été incluse dans 1.4.11.1-1, comme mentionné dans http: //bugs.debian. org/cgi-bin/bugreport.cgi? bug = 529954 –