Installation d'un serveur OpenVPN dans un conteneur OpenVZ
Suite à l’actualité récente autour d’Hadopi et de la neutralité du net, et n’ayant par principe pas envie de savoir que quelqu’un surveille ma connexion, j’ai décidé de faire passer toute ma connexion internet dans un tunnel VPN ( qui me permettra aussi de contourner le firewall de mon école ).
Je me suis aidé d’un tutoriel très bien fait pour une machine classique, que je vais donc compléter pour le faire fonctionner dans notre container OpenVZ.
Il est inutile que je recopie l’ensemble de la procédure qui est similaire.
Là où ça commence à se compliquer, c’est au moment de configurer le NAT, je vous laisse donc arriver là puis revenir ici ensuite.
Voici le tutoriel qui m’a aidé : http://blog.nicolargo.com/2010/10/installation-dun-serveur-openvpn-sous-debianubuntu.html.
Activation de TUN
OpenVPN utilise la fonction TUN/TAP, qui n’est pas activée sur les conteneurs.
On supposera que notre conteneur est le 101.
Commencez par arrêter le conteneur, puis exécutez ceci sur l’hyperviseur :
Démarrez maintenant le conteneur, puis exécutez ceci toujours sur l’hyperviseur :
Mise en place du routage
Classiquement, il faut utiliser la règle suivante afin d’avoir accès à l’internet depuis le VPN :
Or le module NAT n’est pas activé par défaut et le MASQUERADE n’est pas disponible dans un conteneur.
On va commencer par activer le module NAT sur les conteneurs en modifiant le fichier /etc/vz/vz.conf sur l’hyperviseur, il faut modifier la viable IPTABLES de cette façon :
Il se peut que j’ai activé des modules superflus, mais j’ai pas mal galéré pour avoir un truc fonctionnel.
Une fois fait, il faut relancer votre conteneur.
Il faut ensuite installer la règle suivante :
Où a.b.c.d est l’ip de votre machine.
Si comme moi, vous avez un autre firewall sur l’hyperviseur qui refait une écriture des paquets, il faut mettre l’ip de la machine virtuelle :
Mon firewall : http://www.fridu.org/hosting/79-virtualization-firewall.
Vous avez accès à tout l’internet extérieur et à votre réseau de machine virtuel.