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
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 !