Ouvrir/translation des ports derrière OpenVPN

C’est bien beau d’avoir un VPN mais des fois on a besoin que les clients puissent utiliser des services un peu exotiques. On appel ces protocoles les dirty protocols (Bittorent en fait partis). Or il est impossible d’utiliser ces protocoles dernière un NAT vu que le serveur VPN ne sait pas vers quel machine il doit rediriger le trafic entrant.
Sur une Box (qui utilise aussi NAT) uPnP ou autre permet d’ouvrir les ports de manière dynamique. Mais personnellement je préfère tout gérer de bout en bout, donc je préfère faire une redirection de port.
Pour cela il faut que notre client OpenVPN ait toujours la même adresse IP car notre règle de redirection de port va s’appuyer sur une adresse IP destination.
Pour cela je vous redirige vers cet article.

Iptables

Legende

Cas d’utilisation des différentes chaines Iptable

Maintenant que nous une adresse IP statique côté client il faut faire la redirection de port. On va donc travailler dans la table NAT et dans la chaine PREROUTING car c’est la chaine qui permet de modifier une adresse IP/port destinataire.

Ce qui donne cette commande :

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 32936 -j DNAT --to-destination 10.0.0.6:32936

Là ça transforme tout les paquets TCP a destination de votre serveur OpenVPN et avec le port destination 3296 en un paquets qui auras pour destination 10.0.0.6 et pour port 32936. Puis le paquet va être routé via la table de routage de votre serveur OpenVPN.

Vous pouvez remplacer TCP par UPD.
Bittorent utilise UDP ET TCP

Vous avez donc bien fait votre redirection de port !

Remi

A propos de Rémi ANGENIEUX

Maintenant ingénieur en informatique et réseaux, j'ai commencé très tôt cette discipline. Dès l'âge de 12 ans j'ai appris le PHP. Grâce a ma capacité d'autodidacte j'ai pu rapidement apprendre de nombreuses technologies, consolidées par la suite grâce à une formation à l'IUT d'Annecy puis une école d'ingénieur à Grenoble-INP-ESISAR.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML :

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>