Configurer VPNTunnel sous Ubuntu

Date: 30/09/2010 | Catégories: Open-source,Planet-libre,Reseau,Systeme | Tags: ,,,,

VPNTunnel est un service VPN permettant d'accéder à Internet de manière complètement anonyme. Comme tous les services de VPN en ligne, il propose de créer une liaison chiffrée entre votre machine et des serveurs (ici localisés en Suède) qui ne garderons aucunes informations sur votre trafic. Nous allons voir dans ce billet comment configurer une machine sous Ubuntu pour la rendre invisible à Hadopi aux mouchards d'Internet...

Pourquoi VPNTunnel ?

Comme vous pouvez le voir sur leur site, ce service est payant (environ 5€ par mois, avec un tarif dégressif sur des abonnements longues durées). Ils existent des solutions gratuites (voir le Wiki de Korben sur le sujet), mais pour en avoir testé, aucune n'est à l'heure actuelle assez stable pour une utilisation quotidienne.

Parmi les offres payantes, VPNTunnel a pour moi deux avantages:

  • le prix
  • l'utilisation d'OpenVPN, une solution libre et parfaitement intégré à GNU/Linux

Enregistrement sur le site VPNTunnel

On commence par prendre un abonnement (par exemple sur 3 mois, soit 14€) en allant sur leur site.

On clique en suite sur Order (1), puis on sélectionne l'offre/la durée d'abonnement désirée  (2), le mode de paiement (par exemple Paypal !) puis le mail de contact sur lequel les login/password seront envoyés (3), puis le nom de login souhaité (4). On finalise en cliquant sur Continue.

Après quelques secondes (c'est beau l'internet...), vous devriez recevoir un mail avec votre compte:

Configuration de votre machine Ubuntu

Avec le compte reçu par mail, vous pouvez vous connecter sur l'interface d'administration de votre VPN (le formulaire d'authentification se trouve en haut à droite de leur site).

Pour celà on va dans le menu "Software" de l'interface d'administration:

On va ensuite récupérer les deux fichiers nécessaires à la configuration de notre VPN en cliquant sur les liens:

  • (1) Config: téléchargement des fichiers openvpn-XX.conf (fichier de configuration openvpn)
  • (2) Download VPN certificate: téléchargement du fichier ca-XX.crt (Certificat racine CA)

On installe les pré-requis système en saisissant les lignes suivantes dans un terminal:

sudo aptitude install openvpn resolvconf network-manager-openvpn

sudo mkdir /etc/openvpn/keys

Puis on copie les deux fichiers préalablement téléchargés dans les répertoires suivants:

sudo cp *.conf /etc/openvpn/

sudo cp *.crt /etc/openvpn/keys/

sudo ln -s /etc/openvpn/openvpn-NL.conf /etc/openvpn/openvpn.conf

Déclaration du VPN en utilisant le Network Manager

On commence par cliquer sur l'icone Network Manager > Connexion VPN > Configurer le VPN:

On clique ensuite sur le bouton Import:

On sélectionne ensuite le fichier de configuration OpenVPN: /etc/openvpn/openvpn.conf.

Puis on saisi les informations manquantes (nom du tunnel (1), login (2), password (3), fichier ca.crt (4)):

Le nouveau tunnel VPN devrait apparaître dans le Network Manager:

Connexion au VPN

Il suffit de cliquer sur l'icône Network Manager > Connexions VPN > Vpntunnel:

Si tout est ok (sinon lire le chapitre suivant...), l'icône Network Manager devrait se modifier et faire apparaître un cadenas:

Cela vous signale que vous êtes connecté à Vpntunnel et que vous pouvez commencer à surfer / télécharger de manière anonyme.

Pour le vérifier, le plus simple est de se rendre sur le site WhatsMyIp:

L'adresse 178.73.209.150 correspond bien à une adresse Suédoise comme nous l'indique un Whois:

# whois 172.73.209.150

inetnum: 178.73.192.0 - 178.73.255.255

netname: SE-PORTLANE-20100322

descr: Power och Random T-Lane AB

country: SE

org: ORG-PS39-RIPE

admin-c: PN1967-RIPE

tech-c: PN1967-RIPE

status: ALLOCATED PA

mnt-by: RIPE-NCC-HM-MNT

mnt-lower: MNT-PORTLANE

mnt-routes: MNT-PORTLANE

source: RIPE # Filtered

Et si cela ne marche pas ?

Si comme moi vous rencontrez le message suivant lors de la connexion à votre VPN:

"La connexion VPN a échoué car il n'y avait pas de secret VPN valides"

Il suffit de modifier le fichier /etc/dbus-1/system.d/nm-openvpn-service.conf en ajoutant:

<policy user="at_console">

<allow own="org.freedesktop.NetworkManager.vpnc"/>

<allow send_destination="org.freedesktop.NetworkManager.vpnc"/>

</policy>

Ce qui donne donc:

<busconfig>

<policy user="root">

<allow own="org.freedesktop.NetworkManager.openvpn"/>

<allow send_destination="org.freedesktop.NetworkManager.openvpn"/>

</policy>

<policy user="at_console">

<allow own="org.freedesktop.NetworkManager.vpnc"/>

<allow send_destination="org.freedesktop.NetworkManager.vpnc"/>

</policy>

<policy context="default">

<deny own="org.freedesktop.NetworkManager.openvpn"/>

<deny send_destination="org.freedesktop.NetworkManager.openvpn"/>

</policy>

</busconfig>

Après cette manipulation et un reboot tout devrait rentrer dans l'ordre.

Déconnexion du VPN

Pour se déconnecter du VPN, il suffit de cliquer sur Network Manager > Connexions VPN > Déconnecter le VPN:

Voilà un moyen efficace de sécuriser sa connexion Internet comme nous le demande Hadopi (peut être pas aussi efficace que le firewall OpenOffice > Libre Office, mais bon...).

Mon avis sur Vpntunnel

Je suis très surpris par la stabilité du VPN qui fonctionne 24/24 sans interruption depuis quelques jours.

Niveau performance, c'est indétectable lors des surfs. J'ai mesuré une baisse inférieure à 10% de débit lors de transferts de gros fichiers via FTP. Par contre on voit que les délais de transit passent d'environ 40ms de moyenne à plus de 90ms.

Complément de tests:

Je viens de faire des tests depuis chez moi (opérateur Free). Pour cela j'ai utilisé le service en choisissant un serveur cible en France (Paris).

Voici les résultats obtenus tout d'abord sans le VPN:

Puis avec:

On obtient donc:

  • une perte de 10% sur le download
  • une perte de 7% sur l'upload
  • une perte de 200% pour le délais de transit

 

  • stph

    moi je suis obligé de passer par un terminal dans lequel j’ouvre vpntunnel par :sudo openvpn /etc/openvpn/openvpn.conf ( j’ai mis un allias) ensuite: utilisateur et mot de passe et là ça marche.
    mais par l’interface graphique d’openvpn , ben il se logue pas et il me met pas de messages particulier sinon qu’il s’est pas connecté . résultat je sais même pas comment faire pour couper le vpn, mais du moment que ça marche…
    par contre sous vpn pas de smtp possible, et comme je sais pas couper mon vpn , ben je suis obliger de me connecter sur le net à mon FAI pour envoyer un mail, c’est gonflant, si des bonnes âmes auraient des solutions, je leurs en seraient reconnaissant.

  • kHan

    http://forum.ubuntu-fr.org/viewtopic.php?id=426129

    J’ai trouver il faut aller dans network manager configurer le VPN et aller dans avancé et cocher compression LZO

  • kHan

    Je précise que la solution n’est pas de moi!!! je la relaie seulement

  • OverD

    Merci , pour ce super Tuto !

  • toftas

    Pourrais je avoir un coup de main pour configurer firestarter. Je sais qu’il utilise le port 1194 mais après je bloque

  • gaialebreton

    Pour ceux pour qui l’install ne fonctionne pas essayer avec
    sudo apt-get install network-manager-openvpn
    Ensuite reste plus qu’a importer le profil dans network manager!

  • Théo

    Bon tuto!
    Mon problème initial est que j’avais était simplement d’avoir crée le fichier Keys plutôt que keys..
    De plus, pour se connecter avec network manager, il a fallut que j’active la compression LZO comme l’indique kHan.

  • Pingback: Installation d’un serveur OpenVPN sous Debian/Ubuntu

  • jimble

    Merci pour le tuto :)

    Maintenant je peux effectivement me connecter, seul inconvénient je dois entrer mon login/mot de passe, dès l’ouverture du système en mode console (avant l’ouverture de session graphique).
    Une solution pour activer le vpn uniquement lorsqu’on le souhaite ?

    • http://www.nicolargo.com NicoLargo

      Par exemple décocher la case “Connecter automatiquement”:

      http://blog.nicolargo.com/wp-content/uploads/2010/09/Modification-de-Vpntunnel_073.png

      • jimble

        Merci, j’y avais déjà pensé ;)
        mais justement cela ne fonctionne pas

        • sarsippius

          salut,
          pour ton soucis jimble, vire le lien symbolique dans /etc/rc2.d vers openvpn
          ;o)

          merci nicolargo pour ce tuto super clair et surtout pour le tip sur “La connexion VPN a échoué car il n’y avait pas de secret VPN valides”.

          allez hop, en favoris…..
          :oD

  • ben

    Salut à tous
    J’ai testé tous type de VPN (Ipredator, VPNPRQ, vpn Reactor, ItsHidden vpn) etc… , mais pour moi ça me convient pas trop, les systèmes sont trop longs, il n’est pas assez efficace concernant les réseaux, antivirus et tous type de programme qu’on veut utiliser. Il y a un seul produit vpn qui se nomme Vpn4ALL que je fais confiance. Il est facile à utiliser et le système est rapide, avec tous les petits détails du programme qui vous empêche de naviguer à cause de certain vpn que vous avez choisie qui n’est pas assez rapide ou autre produit. Le Vpn4ALL C’est la meilleure solution pour pouvoir utiliser les programmes plus facilement, de notre choix sur internet ou autre type.

    Voici le site: http://www.vpn4all.com/fr/ , ce programme vpn4ALL est facile à utiliser et super rapide et vous pouvez essayer gratuitement.

  • nounou

    En cas de problème : connexion au vpn ok mais surf impossible activez la compréssion lZO. “network manager” configurer le VPN et allez dans “avancé” et cocher compression LZO.

  • schulman

    Quid de la sécurité ?

    La machine se retrouve avec une adresse ip publique et donc en visu directe sur internet. Est-ce que vpntunnel propose un système de pare feu ? Faut-il se faire sa solution perso via iptables ? Un tuto pour gérer les interfaces vpn via iptables de manière efficace ?
    Sinon est-il possible de faire du split tunneling ? J’aimerai par exemple pouvoir faire du http/https sur ma connection normal (je fais plus confiance a un Fai francais qu’à une societe suédoise, peut être à tord :) ) et lancer un autre programme sur le vpn.

    Aussi comment s’assurer que les connections soient bloquées en cas de déconnection du vpn ?

    Merci d’avance

  • http://blog.tooney.fr Tooney

    @Schulman :

    “La machine se retrouve avec une adresse ip publique et donc en visu directe sur internet”
    => Pas tout à fait… Virtuellement, c’est comme un LAN : c’est le serveur OpenVPN du fournisseur qui est sur Internet, comme une box, et ta machine est sur le LAN (virtuel) derrière. Donc pour avoir accès à ta machine, il faut que ton fournisseur VPN fasse du NAT. Après pour les abonnements plus chers, il est possible d’avoir une IP Internet dédiée avec un fonctionnement en mode transparent (en réalité c’est du NAT sur tous les ports).

    “Est-ce que vpntunnel propose un système de pare feu ? Faut-il se faire sa solution perso via iptables ? Un tuto pour gérer les interfaces vpn via iptables de manière efficace ?”
    Perso j’ai demandé à mon fournisseur VPN de NATer quelques ports pour accéder à certains services depuis le VPN. Je gère donc les accès par Iptables.

    “Sinon est-il possible de faire du split tunneling ? J’aimerai par exemple pouvoir faire du http/https sur ma connection normal (je fais plus confiance a un Fai francais qu’à une societe suédoise, peut être à tord :) ) et lancer un autre programme sur le vpn.”
    C’est tout à fait possible sous Linux, et ça s’appelle le “policy routing”.

    A ce sujet, je peux te renvoyer vers ce tuto :
    http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.netfilter.html

    J’ai implémenté cette solution pour différents usages (accès Internet pour les machines de mon LAN sans passer par le VPN, accès à des services hébergés sur mon serveur sans passer par le VPN,…). Je peux te renvoyer sur ce point vers le topic suivant car j’avais un peu galéré pour mettre tout ça en place. Tout à la fin tu trouveras (presque) l’intégralité de ma conf iptables :
    http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.netfilter.html

    • schulman

      Merci ! Je vais bouquiner tout ça.

      Je disais visu directe sur le net car il me semble que vpntunnel redirige bien tous les ports. A vérifier !

      Merci encore

  • http://blog.tooney.fr Tooney

    Sorry, erreur sur mon dernier lien… Le topic se trouve à l’adresse suivante :
    http://forum.ubuntu-fr.org/viewtopic.php?id=413480

  • Tooney

    Je l’ai testé (parmi d’autres), et il me semble que non. Un des seuls que j’ai testé qui propose la redirection de tous les ports est tuvpn avec l’abonnement Ip dediee. Mais ils interdisent aussi l’utilisation du P2P, alors…

  • Trokadero

    Super Merci beaucoup, sa marche pour moi =D

    Il faut redémarrer pour que la modification du /etc/dbus-1/system.d/nm-openvpn-service.conf prenne effet.

    • gruezi

      Merci beaucoup pour ces explications limpides , surtout l’astuce policy user=”at_console”

  • freddy_k

    salut… je m’en remet a vos connaissance pour un souci de vpn sur ubuntu et sur mint… le vpn se connecte qu’en root… sinon il me dis, impossible de lancer le service vpn… (en fait, il n’a pas accès au tun avec un utilisateur classic…)

    quelqu’un aurait une idee ??

    d’avance merci.

    fred

  • Pingback: Openvpn sous Debian | blog.netserv.me

  • http://blog.info16.fr bartounet

    merci pour cet article nico
    pour ma part j’utilise le vpn de giganews
    en effet je paye tous les mois pour les ng mais me fournissent aussi openvpn

  • etienne

    Bonjour,
    après avoir fait et refait l’installation de vpntunnel suivant le tuto et modifier le fichier etc/dbus.. je n’arrive a rien. Toujours ses secrets non valide, j’ai cherché mais je ne trouve rien, si quelqu’un a une idée je suis preneur parce que là je suis perdu. En vous remerciant par avance.

  • Pingback: INFO IP AND FRIENDS » Installation d’un serveur OpenVPN sous Debian/Ubuntu

  • PasGlop

    Je ne sais pas ce qui se passe, le VPNTunnel est bloqué. Je peux bien m’y connecter mais je suis bloqué ainsi je ne peux plus me connecter, par exemple il est impossible de pinger alors que cela marche sans le “branchement” au Tunnel. Je ne sais pas si c’est lié mais je suis chez Free et depuis quelques jours je me connecte en ligne de commande car auparavant via l’interface network manager il fallait faire 10 tentatives avant d’avoir la connection.

  • LD

    Même problème que PasGlop, depuis quelques jours, la connexion sur VPNTunnel fonctionne, mais aucune connexion réseau (il n’y a que la passerelle que je peux pinguer, le reste n’aboutit pas).
    Si quelqu’un a une piste… ?

  • pierleon

    Bonjour à tous

    Même punition chez moi depuis quelques jours ,ca fonctionne sur windows xp et seven mais pas sur linux mint 12 et ubuntu 11.04
    compression lzo coché ou décoché

  • Paul

    Bonjour,

    J’ai un problème lors de l’étape:
    Puis on copie les deux fichiers préalablement téléchargés dans les répertoires suivants:

    Voici le résultat :
    ballester@ballester-R610:~$ cd Desktop
    ballester@ballester-R610:~/Desktop$ cd Linux-confs
    ballester@ballester-R610:~/Desktop/Linux-confs$ sudo cp Linux-confs /etc/openvpn
    [sudo] password for ballester:
    cp: omission du répertoire «Linux-confs»

    que cela signifie? Pouvez vous m’indiquer les démarches à suivre?
    Merci pour votre blog

    Cordialement

    • http://blog.nicolargo.com/ Nicolas Hennion

      Linux-confs est un répertoire. C’est les deux fichiers qu’il faut copier.

      Donc dans votre configuration, si vous avez téléchargé les deux fichiers dans le répertoire ~/Desktop/Linux-confs alors saisir:

      cd ~/Desktop/Linux-confs
      sudo cp openvpn-XX.conf /etc/openvpn
      sudo cp ca-XX.crt /etc/openvpn

      Note: il faut un minimum de connaissance dans la manipulation des commandes GNU/Linux pour suivre ce tuto, sinon vous risquez de buter sur les prochaine étapes…

  • Pingback: Installer openVPN sur un Raspberry Pi (Debian Wheezy)

  • Pingback: Installation d’un serveur OpenVPN sous Ubuntu (Debian) | COMPUT'REPAIR

  • zvpn

    Protégez votre vie privée en ligne

    ZeVPN est un VPN rapide, sécurisé, fiable et facile à utiliser

    Windows, Mac, Linux, Android, iOS

    Choix de connexion parmi 16 pays

    Allemagne

    Autriche

    Suisse

    Royaume-Uni

    Roumanie

    France

    Espagne

    Hong Kong

    Etats-Unis

    Russie

    Pologne

    Islande

    Italie

    Suede

    Pays-Bas

    Ile de Man

    https://zevpn.net