WIKI LWS - L'hébergeur Web accessible à tous WIKI LWS - L'hébergeur Web accessible à tous

Comment créer un VPN sur son serveur VPS debian 7 et se connecter avec un client windows?

Le VPN (pour Virtual Private Network) est une technologie de "Réseau Privé Virtuel". Il permet à un ordinateur distant d'avoir, via Internet, un accès direct et totalement sécurisé à un autre ordinateur ou à un réseau.

Tout d'abord pour l'installation, vous devez vous munir d'une machine connecté sur votre serveur vps debian et une machine client pour ma part le client sera un ordinateur windows.

Installer OpenVPN sur son serveur vps et le configurer :

Une fois connecté sur votre serveur vps , nous allons installer openvpn qui sera notre service pour réaliser votre réseau privé.

 apt-get install openvpn

Effectuez une copie des fichiers de configuration et du générateur de clées :

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

 

- Configuration d’OpenVPN :

Éditez le fichier nano /etc/openvpn/easy-rsa/vars et ajoutez ces lignes à la fin du fichier:

 export KEY_COUNTRY="FR"
 export KEY_PROVINCE="FR"
 export KEY_CITY="FR"
 export KEY_ORG="exemple.com"
 export KEY_EMAIL="exemple@exemple.com"

Ensuite, exécutez les commandes suivante afin de générer les clés (.key) et les certificats (.crt) :

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

Copiez ensuite les clés et les certificats dans le répertoire /etc/openvpn/ :

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

Puis, générez les répertoires /etc/openvpn/jail et /etc/openvpn/clientconf .

Le premiers répertoire permet de chrooté le processus OpenVPN (afin de limiter les dégâts en cas de faille dans OpenVPN) puis, le dernier répertoire contiendra la configuration des clients :

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

Enfin, créez le fichier de configuration nano /etc/openvpn/server.conf:

 # Serveur TCP/443
 mode server
 proto tcp
 #vous pouvez choisir de mettre un autre port
 port 443 
 dev tun
 # Clés 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
 # Réseau
 server 10.8.0.0 255.255.255.0
 push "redirect-gateway def1 bypass-dhcp" 
 #DNS de google
 push "dhcp-option DNS 8.8.8.8"
 push "dhcp-option DNS 8.8.4.4"
 keepalive 10 120
 # Sécurité
 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

Cette configuration permet de créer un serveur VPN SSL routé basé sur le protocole TCP et utilisant le port HTTPS (443). Les clients obtiendront une nouvelle adresse IP dans le range 10.8.0.0/24 et aurons les DNS de Google (8.8.8.8 et 8.8.8.4).

Vous pouvez tester la configuration en saisissant la commande suivante:

 cd /etc/openvpn
 openvpn server.conf

 

- Démarrage du serveur VPN OpenVPN :

On lance le serveur avec la commande :

 /etc/init.d/openvpn start

Si dans votre configuration vous avez des erreurs , vous pouvez toujours consulter les logs de openvpn.

 tail -t /var/log/openvpn.log

Les logs s'afficheront comme une liste (erreurs ou warning ) , elle s'actualise en temps réel, grâce aux logs vous pourrez corriger assez facilement les erreurs commises.

 

- Configuration du routage :

À ce stade les machines clientes vont pouvoir se connecter au serveur VPN. Par contre impossible d’aller plus loin car ce dernier aura l’adresse 10.8.0.x qui ne sera par routée en dehors de votre serveur. Il faut donc configurer le serveur pour qu’il joue le rôle de routeur entre l’interface VPN (tun0) et l’interface physique (eth0). Après ces opérations, votre serveur NAT possèdera les adresses en 10.8.0.x vers son adresse IP réelle.

  sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

Afin de rendre cette modification permanente, vous devez éditer ce fichier nano /etc/sysctl.conf :

  net.ipv4.ip_forward = 1

Puis configurer la translation d’adresse (NAT) :

  iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Pour rendre cette règle de NAT persistante, il faut commencer par créer un script de chargement de règles de Firewall (ou utiliser un script existant) :

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

Le serveur est maintenant prêt à accueillir les clients.

 

- Création d’un compte client OpenVPN :

Ici, nous allons créer la configuration pour notre client VPN.

 cd /etc/openvpn/easy-rsa
 source vars
 ./build-key-pass mon-serveur-vpn

Copiez les fichiers nécessaires sous le répertoire /etc/openvpn/clientconf/ préalablement créé :

 mkdir /etc/openvpn/clientconf/mon-serveur-vpn/ 
 cp /etc/openvpn/ca.crt /etc/openvpn/ta.key keys/mon-serveur-vpn.crt keys/mon-serveur-vpn.key /etc/openvpn/clientconf/mon-serveur-vpn/ 

On va ensuite dans le répertoire /etc/openvpn/clientconf/mon-serveur-vpn/ :

 cd /etc/openvpn/clientconf/mon-serveur-vpn/

Créez le fichier client.conf (remplacez A.B.C.D par l’adresse IP publique de votre serveur VPN par exemple : 192.162.72.156) :

 #Client
 client
 dev tun
 proto tcp-client
 remote A.B.C.D 443
 resolv-retry infinite
 cipher AES-256-CBC
 #Clé
 ca ca.crt
 cert mon-serveur-vpn.crt
 key mon-serveur-vpn.key
 tls-auth ta.key 1
 key-direction 1
 #Sécurité
 nobind
 persist-key
 persist-tun
 comp-lzo
 verb 3

Pour assurer la compatibilité avec le client Windows OpenVPN, on fait une copie du fichier client.conf vers client.ovpn:

 cp client.conf client.ovpn

Installer et configurer votre client VPN Windows :

 

Téléchargez et installez le client VPN OpenVPN. Vous le trouverez ici. Attention, prenez le client compatible avec l’architecture de votre CPU (64bits ou 32).

Allez sur votre serveur et télécharger le contenu du répertoire /etc/openvpn/clientconf/mon-serveur-vpn.

Collez ensuite les fichiers dans le répertoire de votre ordinateur windows C:\Program Files\OpenVPN\config.

Exécutez votre client VPN OpenVPN en tant qu’administrateur. Dans votre barre des tâches, en bas à droite, une nouvelle icône devrais apparaître. Faites un clic droit dessus et cliquez sur ‘Connecter’.

Une fois connecter à votre client VPN vous verrez une boîte de dialogue disant que vous êtes connecter sur une adresse IP en particulier , l'icône d'openvpn passera au vert et dans les logs du client à la fin il y aura marqué « initialization sequence completed ».

alexandre_ispconfig_vpn.txt · Dernière modification: 2014/10/06 14:22 par lws
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante : CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki