Accueil - Guides & Astuces - OpenVpn – Créér son propre VPN sous Linux pour 2.39€ TTC

OpenVpn – Créér son propre VPN sous Linux pour 2.39€ TTC

Ce tutoriel vous permet de créer votre propre service VPN à moindre coût !

Nous utiliserons la solution OpenVpn qui est gratuite et simple à mettre en place.

Préambule :

Pour ce tuto je pars du principe que vous êtes un utilisateur ayant quelques connaissances en informatique. 

Étape 1 : Location d’un serveur « vierge » pour 2.39€ TTC

Nous allons installer le serveur VPN sur un serveur VPS hébergé chez OVH , l’entrée gamme est amplement suffisant pour faire tourner le serveur VPN

En système choisissez une débian 7 en 64 bits , choisissez une IP Canadienne 

Quelques options à choisir pour votre VPS
Quelques options à choisir pour votre VPS

Une fois les options choisis passez votre commande. Vous devrez  recevoir sous quelques heures un mail avec les informations nécessaires pour se connecter au VPS.

Étape 2 – Se connecter au serveur et installer le serveur VPN

Votre serveur est automatiquement livré avec une connexion SSH disponible. Pour nous y connecter nous allons utiliser le logiciel Putty

putty_vps

 

 

 

 

 

 

 

 

 

 

 

 

 

Une fois l’ip saisie dans la case Host-Name cliquez sur open , une fenêtre s’ouvre et vous demande votre login et mot de passe

Vous avez ces infos dans le mail reçu par OVH.

Installation d’Open VPN

Une fois connecté via putty taper cette commande :

apt-get install openvpn
 

Cette commande lance l’installation du serveur VPN

Configuration du serveur

Pour faciliter la création du fichier de configuration j’ai choisi de les créer sur mon PC ( Windows ) puis de les transférer via FileZilla sur le serveur VPS.

Filezilla permet d’accéder aux dossier de votre serveur et d'y glisser des fichiers
Filezilla permet d’accéder aux dossier de votre serveur et d’y glisser des fichiers

Remplacez la case Hôte par l’IP de votre serveur , l’identifiant est root et le mot de passe le même que celui utilisé pour vous connecter à l’aide de Putty, enfin indiquez le port 22

un message vous demandant d’accepter la clé de sécurité s’affiche, cliquez sur OK, vous allez ainsi voir l’arborescence de votre serveur.

Revenons sur Putty , vous allez exécuter les commandes suivantes :

Création du dossier pour les fichiers de configuration du serveur :

mkdir /etc/openvpn/easy-rsa/

Copie des fichiers de configuration

cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

On ajoute les permissions d’écriture

chown -R $USER /etc/openvpn/easy-rsa/

On édite le fichier Vars ( facultatif)

Via FileZilla rendez vous dans le dossier /etc/openvpn/easy-rsa , Glissez le fichier Vars sur votre PC et ouvrez le à l’aide du bloc note ou de notepad ++

Les différents fichiers du serveur VPN
Les différents fichiers du serveur VPN

Sur le fichier vars à la fin changez les lignes ci dessous par les bons éléments :  FR , 22 , Caen …

export KEY_COUNTRY= »US »
export KEY_PROVINCE= »CA »
export KEY_CITY= »Toronto »
export KEY_ORG= »Fort-Funston »
export KEY_EMAIL= »[email protected] »
export [email protected]
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=changeme
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234

On créer la clé et le certificat de sécurité

cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server
openvpn --genkey --secret keys/ta.key

On copie les fichiers à la racine du serveur VPN

cp keys/ca.crt keys/ta.key keys/server.crt keys/server.key keys/dh1024.pem /etc/openvpn/

On créer le répertoire clientconf qui accueillera les différents fichiers de configuration du client

mkdir /etc/openvpn/jail
mkdir /etc/openvpn/clientconf

On créer un fichier serverconf à l’aide du bloc note

# Serveur TCP/4443
mode server
proto tcp
port 4443
dev tun
# Cles et certificats
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
tls-auth ta.key 1
key-direction 0
cipher AES-256-CBC
# Reseau
server 10.8.0.0 255.255.255.0
#la route doit être l'ip externe du serveur (si on veut utiliser la connexion de ce serveur)
 push "route Ip.de.votre.serveur 255.255.255.0"
 #De même, force le client a rediriger son trafic vers le vpn (il faudra aussi faire un nat du range vpn (10.8.) vers internet (178.33.250.38)
 push "redirect-gateway def1 bypass-dhcp"
 push "dhcp-option DNS 10.8.0.1"
 push "dhcp-option DNS 8.8.4.4"
 keepalive 10 120
 # Securite
 user nobody
 group nogroup
 chroot /etc/openvpn/jail
 persist-key
 persist-tun
 comp-lzo
 # Log
 verb 3
 mute 20
 status openvpn-status.log
 ; log-append /var/log/openvpn.log

Le contenu ci-dessus a été programmé afin de pouvoir rediriger le trafic sur votre serveur, pensez à le modifier en fonction de votre serveur !

Une fois le fichier sauvegarder ( pensez à bien le nommer server.conf) , glissez-le à l’aide de Filezilla dans /etc/openvpn/

On démarre le serveur openvpn

/etc/init.d/openvpn start
Modification du routage pour rediriger le trafic réseau
sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -I OUTPUT -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.2/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source <ip serveur>

Pour que ces paramètres soient présents après un reboot serveur il faut :

éditer le fichier sysctl.conf pour y ajouter

net.ipv4.ip_forward = 1

Pour que les règles de routage de trafic soient présentes après un reboot serveur il faut :

sh -c "iptables-save > /etc/iptables.rules"

Puis éditer le fichier etc/network/interfaces/ et ajouter après votre carte réseau ( repérer les lignes iface eth0 inet ) la ligne suivante

pre-up iptables-restore < /etc/iptables.rules

Si après un reboot vous n’avez pas de connexion internet
il faut se connecter en SSH sur le serveur via PUTTY puis retaper les commandes suivantes :

sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source <ip serveur>

Création de la configuration client

Dans l’exemple l’utilisateur sera appelé user1

cd /etc/openvpn/easy-rsa
source vars
./build-key user1

Ces commandes vont générées 3 fichiers dans le répertoire /etc/openvpn/easy-rsa/keys:

On déplace les fichiers dans le dossier user1 de confclient


mkdir /etc/openvpn/clientconf/user1/
cp /etc/openvpn/ca.crt /etc/openvpn/ta.key keys/user1.crt keys/user1.key /etc/openvpn/clientconf/user1/

Installation de Open VPN client sur Windows

Vous trouverez l’exécutable sur ce lien

Procédez à une installation classique, vous devriez avoir un dossier OPENVPN sur votre PC , le programme se nomme OPENVPN GUI sur votre Système.

Avant de l’exécuter vous devez créer un fichier de configuration

On ouvre le bloc note et on va coller la config suivante ( il faut modifier l’IP par celle de votre serveur )

# Client
 client
 dev tun
 proto tcp-client
 remote IP.DE.VOTRE.SERVEUR 4443
 resolv-retry infinite
 cipher AES-256-CBC
 push "redirect-gateway def1"
 ; client-config-dir ccd
 # Cles
 ca ca.crt
 cert user1.crt
 key user1.key
 tls-auth ta.key 1
 key-direction 1
 # Securite
 nobind
 persist-key
 persist-tun
 comp-lzo
 verb 3

Enregistrer le fichier dans le dossier suivant OPENVPN/config , le format doit être client.ovpn

Transfert des fichiers de configs stocké sur le serveur

Grâce à Filezilla nous allons transférer le contenu du dossier user1 (etc/openvpn/clientconf/user) vers le dossier config d’OpenVpn sur votre PC  (OpenVPN/Config)

Démarrage du VPN Client

Si tout est bien configuré lancer OpenVpn sur Windows puis cliquez sur « connect »

si tout est ok vous devriez voir votre icône virer au vert
si tout est ok vous devriez voir votre icône virer au vert
la connexion est établie
la connexion est établie

Pour Conclure

Il y a de nombreuses étapes mais elles sont relativement simples. Pour vérifier que votre trafic est rediriger sur serveur rendez-vous sur http://www.monip.org , l’ip de votre serveur doit s’affichée.

Pour réaliser ce tutoriel je me suis basée sur 2 tutoriels :

CNSU : le blog m’a beaucoup aidé notamment pour la redirection du trafic VPN

Blog de Nicolargo : pour l’installation du VPN partie serveur.

N’hésitez pas à y faire un tour !

kk

26 commentaires

  1. Hello , j’ai une seedbox chez eux et le service est très bon pour un prix attractif ;)

  2. Pour 1€ TTC/mois, un VPN niquel chez My-Seedbox.com.

  3. J’ai résolu les problèmes de démarrage d’openvpn en ajoutant les liens absolus.
    notamment pour /etc/openvpn/easy-rsa/keys/dh1024.pem qui était affiché en gros dans les erreurs syslog.

    En espérant que cela aide.

  4. Bonsoir, essaie de lancer OPENVPN en tant qu’administrateur .

  5. Bonjour, J’arrive à me connecter sur mon VPN, mais en me rendant sur monip.com je vois toujours l’ip de mon FAI, comment faire svp ?

  6. là je vois pas peut être tenter une désinstallation et refaire l’installation en mettant bien à jour le dépôts

  7. oui sa fait la même chose

  8. Bonjour, as tu essayé de redémarrer le serveur puis de retenter la manip ? merci.

  9. OS : Debian 7.5 (Wheezy) (Oldstable) (64bits)

  10. sur un serveur dédié OVH

  11. Bizarre il arrive à arrêter la carte donc c’est qu’elle est démarrer.
    Tu es sur un serveur VPS OVH ? fraîchement livré ?

  12. toujours la même chose

  13. Bonjour,
    peux tu essayer de faire un restart au lieu de start ?
    merci.

  14. bonjour j’ai suivie ton tuto mais ariver a cete étape sa bug =>
    On démarre le serveur openvpn
    /etc/init.d/openvpn start
    sa me dit :
    [FAIL] Starting Virtual private network daemon: Server Failed

    root@****:/etc/openvpn/easy-rsa#

  15. Hello , pour le moment je n’ai pas de wallet ;) donc tampis pour les dons ;) ravis d’avoir pu t’aider !

  16. C’est cool , merci…J’aime bien tous tes tutos (même le mot « tuto » est dans le dictionnaire, maintenant…)
    Est-ce que tu acceptes les dons en Bitcoins? (un peu comme Korben et bien d’autres…)

  17. Bonjour,
    j’ai refait le tuto et j en ‘ai pas de soucis.
    fait sur débian serveur Nu vps OVH et le VPN est parfaitement fonctionnel
    Attention a bien adapter les IP du serveur / du client

  18. Sixième tuto fait et sixième échec… Merci quand même, un peu plus complet mais pas fonctionnel pour moi, j’arrivais a avoir des tentatives de co en zappant
    Pour que ces paramètres soient présents après un reboot serveur il faut
    mais ca bugger quand même

    Je décide de les faire et même plus de co

  19. Bonjour,
    oui vous pouvez le faire en repétant l’étape de la création du CLIENT. Vous devez modifier le nom exemple client2 , vous allez ainsi générer des clés pour le client2 , pensez également à modifier votre fichier de configuration client qui doit pointer vers client2.

  20. Bonjour, est ce qu’on peu avoir plusieurs clés USER pour que plusieurs USERS differents puissent se connecter sur le meme serveur? Merci de votre reponse ! :)

  21. Bonjour, il ne s’affiche tout simplement pas tu n’as qu’as le tapez a l’aveugle et faire entrez (c’est une sorte de sécurité :D)

  22. Bonjour, c’est normal que le mot de passe ne s’affiche pas quand vous le tapez. Il est par contre bien pris en compte par le système.

  23. bonjour, j’ai un souci avec Putty je n’arrive a écrire mon mot de passe. je suis sur windows 8.1

Laisser un commentaire

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

En continuant à utiliser le site, vous acceptez l’utilisation des cookies. Plus d’informations

Les paramètres des cookies sur ce site sont définis sur « accepter les cookies » pour vous offrir la meilleure expérience de navigation possible. Si vous continuez à utiliser ce site sans changer vos paramètres de cookies ou si vous cliquez sur "Accepter" ci-dessous, vous consentez à cela.

Fermer