Cet article n’incite pas au piratage d’œuvres protégés ou à quelque-conque activités illégales sous couvert d’anonymat, il s’agit d’un article décrivant la mise en œuvre d’une connexion VPN sur une machine headless (serveur)
Selon la définition Wikipédia du VPN, le réseau privé virtuel (Virtual Private Network en anglais, abrégé en VPN) est vu comme une extension des réseaux locaux et préserve la sécurité logique que l’on peut avoir à l’intérieur d’un réseau local. Il correspond en fait à une interconnexion de réseaux locaux via une technique de « tunnel ».
En gros si vous utilisez un VPN, votre adresse IP détecté par l’HADOPI (par exemple) ne sera pas celle que votre fournisseur d’accès Français vous attribue mais celle du serveur VPN que vous utilisez. Dons si vous utilisez un VPN étranger vous aurez une adresse IP étrangère donc ne tombant pas sous le coup de la loi HADOPI.
Une autre utilisation du VPN est d’assurer la confidentialité des données qui transitent entre mon PC et les différentes site web que j’utilise, en effet la communication est chiffré entre le serveur VPN et mon PC.
Pour avoir plus de détail sur le VPN je vous conseil l’excellent page du Wiki de Korben : VPN
Si vous cherchez sur le net vous trouverez nombre de tutoriaux pour mettre en œuvre une connexion VPN via le network manager de Gnome, mais peu ou pas si vous souhaitez configurer une connexion VPN en ligne de commande (par exemple sur un serveur de téléchargement : seedbox).
N’étant pas un grand téléchargeur je n’envisage pas pour l’instant de recourir à une connexion VPN permanente mais le sujet m’intéresse, j’ai donc profité d’une offre d’essai pour l’étudier.
Cette offre d’essai est celle de VPN Guard qui propose dans le cadre de la phase de test (Béta) une commande à 0€ d’une durée de validité de 3 mois (renouvelable ?).
Inscription (gratuite) sur VPN Guard
Il suffit de se rendre sur le site de VPN Guard et de cliquer sur une des 3 offres (identiques) présente en bas de page.
Dans la page suivante, cliquer sur ajouter au panier.
Dans la zone de gauche (Panier) cliquer sur commander.
Créer votre compte, inscrire son email et sur la page suivante votre civilité, nom, prénom et mot de passe
l’email saisie sera votre identifiant pour le VPN et le mot de passe du compte sera aussi celui de votre VPN.
A l’issue de votre inscription vous recevrez un email de confirmation (sujet : [VPN Guard] Produit virtuel à tél�) qui contient un lien vers un fichier zip contenant ce qu’il faut pour réaliser votre connexion VPN.
Télécharger le zip et le transférer sur votre serveur (via scp par exemple : scp vpn-guard.zip [user]@[ip serveur]:.)
Configuration de la connexion VPN
Sur votre serveur, vous connecter en SSH (puisque l’on suppose que votre machine est distante et ne dispose pas d’écran / interface graphique, ce qui est le but de cet article).
Installer le client openvpn :
sudo aptitude install openvpn
Déziper le fichier reçu de VPN Guard que vous avez copié sur le serveur (unzip vpn-guard.zip)
Copier les fichiers ca.crt et ta.key qui doivent avoir été dézipé de l’archive de VPN Guard dans le répertoire /etc/openvpn
Copier le fichier uk.vpn-guard.ovpn aussi présent dans l’archive de VPN Guard mais en le renommant en config.conf
sudo cp uk.vpn-guard.ovpn /etc/openvp/config.conf
Ce fichier contient la configuration de la connexion openvpn à utiliser pour se connecter sur le serveur VPN de VPN Guard, pour info :
client dev tun proto udp remote-random remote uk.vpn-guard.com 443 remote uk.vpn-guard.com 1194 ##########keys########## tls-auth ta.key ca ca.crt ######################## resolv-retry infinite cipher AES-256-CBC nobind persist-key persist-tun auth-user-pass comp-lzo verb 4
Pour démarrer la connexion VPN il suffit de démarrer le service openvpn
sudo service openvpn start
Le service demande le login et le mot de passe d’accès au serveur VPN, il s’agit de l’adresse email et du lmot de passe choisi/renseigné lors de la création de votre compte sur le site VPN Guard
* Starting virtual private network daemon(s)... * Autostarting VPN 'config' Enter Auth Username:[login VPN Guard] Enter Auth Password: [ OK ]
Pour arrêter la connexion VPN, tout aussi simple on arrête le service openvpn :
sudo service openvpn stop * Stopping virtual private network daemon(s)... * Stopping VPN 'config' [ OK ]
Test de la connexion VPN
Lorsque votre connexion VPN est active une nouvelle interface réseau est créée que l’on peut voir avec la commande :
ifconfig
Voici la mienne :
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet adr:10.6.0.10 P-t-P:10.6.0.9 Masque:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 Packets reçus:0 erreurs:0 :0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:100 Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)
Ensuite vous pouvez connaitre votre adresse IP publique qui doit être étrangère avec la ligne de commande suivante :
curl -s 208.78.69.70 | grep -Eo '[0-9\.]+'
Dans mon cas cela à donné :
83.170.72.124
A comparer avec votre IP publique sans la connexion VPN.
Pour localiser cette adresse IP on peut sur un PC Desktop utiliser le service IP Locator
Ce qui donne bien dans mon cas une adresse anglaise :
Test suivant tester la résolution DNS à travers le VPN (je fais ce test car avec un autre service VPN cela ne marchait pas) :
ping google.fr PING google.fr (209.85.229.99) 56(84) bytes of data. 64 bytes from ww-in-f99.1e100.net (209.85.229.99): icmp_seq=1 ttl=56 time=46.6 ms
Enfin dernier test le test de débits, en ligne de commandé on eut utiliser la commande suivante :
curl -o /dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip
Pour commencer on test sans le VPN pour avoir la référence :
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 5 500M 5 28.9M 0 0 528k 0 0:16:08 0:00:56 0:15:12 594k
Puis avec le VPN, test du 16 Février 2011 à 22h
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 1 500M 1 6317k 0 0 87758 0 1:39:34 0:01:13 1:38:21 59065
Edit : Suite à une remarque de quelqu’un de chez VPN guard j’ai refait un test et là surprise, résultat du 20 Février 2011 à 11h20
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 11 500M 11 57.2M 0 0 507k 0 0:16:48 0:01:55 0:14:53 540k
Soit tout de même un débit 6 fois moindre !!!
Le débit est identique voir même supérieur (selon les tests), lors des dernier tests j’ai même vérifié 2 fois si mon connexion passait bien via le VPN tant j’étais surpris des débits.
Bref un très bonne offre de VPN…
Ce service une fois sorti de la phase Béta devrait être proposé au prix de 3€ par mois.
Un autre VPN peu chère existe, il s’agit de VPNFacile, il est proposé à 5€/mois et propose un essai gratuit de 24h.
Je l’ai testé durant 24h mais je n’ai pas pu réussir à faire fonctionner la résolution DNS durant ce temps (limité)
Sources :
VPN-Guard : L’anonymat en béta test (gratuit) – Le Colibri Libre
Page du Wiki de korben sur le VPN en général
La bible openvpn client et serveur : OpenVPN HOWTO
OpenVPN : Mise en place d’OpenVPN sur différentes plateformes – Bloc Notes Informatique
Serveur VPN: #1 Installation et configuration de base
Configuration d’un serveur OpenVPN : IP statiques et redirection de ports – 15 Minutes of Fame
A creuser des scripts de d’arrêt du réseau en cas de déconnexion du VPN ou de reconnexion automatique :
Papillon-butineur: Déconnexion du VPN: un script pour stopper les échanges
Papillon-butineur: Reconnection automatique du VPN en cas de coupure sous Ubuntu
La source de la ligne de commande pour connaître son adresse IP publique : http://www.commandlinefu.com/commands/view/1733/get-own-public-ip-address