Installation OpenVPN sur Centos

Mis à jour le 15 septembre, 2020

L’une des manières les plus sûres d’envoyer des données sur internet est via un VPN, aussi connu sous le nom de « Virtual Private Network ». Lorsque l’on utilise un VPN, les données sont encryptées et envoyées à travers un réseau virtuel privé qui utilise un réseau public (internet par exemple). 

Cela assure l’intégrité et la confidentialité des données échangées entre le client VPN et le serveur VPN, car même si les données venaient à être interceptées, elles seraient toujours encodées.

VPN est communément utilisé pour :

  • Etablir une connexion à distance à un réseau de travail privé
  • Sécuriser vos communications lorsque vous êtes connecté à un réseau wifi public
  • Etablir un réseau privé pour les jeux en lignes

Si vous voulez accéder à internet anonymement depuis différents endroits de la planète, il y a plusieurs fournisseurs de VPN comme HideMyAss, ExpressVPN et PureVPN qui offrent de tels services.

Cependant, si vous avez besoin de votre propre serveur VPN, voici comment faire en utilisant OpenVPN sur Linux CentOS 6 et le plus récent Centos 7.

Comment installer un serveur OpenVPN sur CentOS 6.5 et Centos 7

Pour ce tutoriel, j’utiliserai un VPS Cloud de Infomaniak. Au fait, si vous n’avez jamais entendu parler de Infomaniak, je vous recommande fortement d’y jeter un œil.

Vous pouvez facilement déployer un VPS totalement fonctionnel en moins de 3 minutes et ils sont incroyablement rapides.

1- Installer OpenVPN et Easy RSA

En partant du principe que vous êtes connecté en tant que root,  commencez par installer et activer le référentiel EPEL (EPEL repository) :

# mkdir /root/temp
# cd /root/temp
# wget http://epel.mirror.net.in/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -Uvh epel-release-6-8.noarch.rpm

Sur Centos 7

yum install epel-release

Maintenant que vous avez installé la zone de stockage EPEL, vous pouvez installer OpenVPN et Easy RSA :

# yum install openvpn easy-rsa -y

2- Configurer Easy RSA

Créez un directoire pour stocker vos clefs et certificats :

# mkdir -p /etc/openvpn/easy-rsa/keys

Copiez le script Easy RSA dans le sous-répertoire de OpenVPN :

# cp -R /usr/share/easy-rsa/2.0/ /etc/openvpn/easy-rsa/

Editez le fichier d’installation de Easy RSA :

# vi /etc/openvpn/easy-rsa/2.0/vars

Cherchez et modifiez ces valeurs :

# Ce sont les valeurs par défaut
# qui seront place dans le certificat.
# Remplissez toutes les cases
export KEY_COUNTRY="FR"
export KEY_PROVINCE="Paris"
export KEY_CITY="Paris"
export KEY_ORG="Paris-ville"
export KEY_EMAIL=votrenom@domaine.fr
export KEY_OU="Votre Compagnie"

Maintenant, cherchez cette ligne :

export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`

Et changez là en :

export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf

Une fois que c’est fait, sauvegardez le fichier et quittez l’éditeur.

3- Générer le certificat CA et les clefs

Entrez ces commandes pour initialiser Easy RSA :

cd /etc/openvpn/easy-rsa/2.0
chmod 0755 *
./vars
./clean-all

Vous pouvez ensuite créer le certificat et les fichiers clefs :

./build-ca

Vérifiez que les fichiers ont été créés avec succès :

# ls -al keys
total 20
drwx------ 2 root root 4096 Jul 30 20:14 .
drwxr-xr-x 3 root root 4096 Jul 30 20:09 ..
-rw-r--r-- 1 root root 1887 Jul 30 20:14 ca.crt
-rw------- 1 root root 1704 Jul 30 20:14 ca.key
-rw-r--r-- 1 root root 0 Jul 30 20:09 index.txt
-rw-r--r-- 1 root root 3 Jul 30 20:09 serial

4- Générer le certificat Client VPN et la clé

Vous pouvez maintenant créer les certificats du serveur et de la clé.

./build-key-server server

Lorsqu’il vous sera demandé de fournir un mot de passe pour la clé, laissez la case vide. Autrement, le service openvpn ne pourra pas démarrer automatiquement car il vous demandera de rentrer le mot de passe à chaque fois :

A challenge password []: <= laisser la case vide

Une fois de plus, vous pouvez lister le contenu des directoires « clés » pour être certain que server.crt, server.csr et server.key ont bien été créés :

# ls -al keys
total 56
drwx------ 2 root root 4096 Jul 30 20:18 .
drwxr-xr-x 3 root root 4096 Jul 30 20:09 ..
-rw-r--r-- 1 root root 5732 Jul 30 20:18 01.pem
-rw-r--r-- 1 root root 1887 Jul 30 20:14 ca.crt
-rw------- 1 root root 1704 Jul 30 20:14 ca.key
-rw-r--r-- 1 root root 160 Jul 30 20:18 index.txt
-rw-r--r-- 1 root root 21 Jul 30 20:18 index.txt.attr
-rw-r--r-- 1 root root 0 Jul 30 20:09 index.txt.old
-rw-r--r-- 1 root root 3 Jul 30 20:18 serial
-rw-r--r-- 1 root root 3 Jul 30 20:09 serial.old
-rw-r--r-- 1 root root 5732 Jul 30 20:18 server.crt
-rw-r--r-- 1 root root 1115 Jul 30 20:18 server.csr
-rw------- 1 root root 1704 Jul 30 20:18 server.key

Maintenant vous devez créer un certificat et une clé pour vos clients. Je vous recommande de créer un lot certificat/clé différent  pour chaque utilisateur du VPN :

./build-key simon

Cette fois-ci, entrez un mot de passe :

A challenge password []: ChoisirUnmotdePasseSecuritaire123

5- Créer les paramètres Diffie Hellman

Tapez la commande suivante pour créer le fichier .pem :

./build-dh

6- Créer le fichier de configuration OpenVPN

Pour commencer, copiez l’échantillon du fichier de configuration :

# cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf
/etc/openvpn/

Editez le fichier de configuration :

# vi /etc/openvpn/server.conf

Cherchez la ligne suivante :          

dh dh1024.pem

Et remplacez la par :

dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem

Maintenant cherchez ces lignes :

ca ca.crt
cert server.crt
key server.key # This file should be kept secret

Et remplacez les par :

ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key

Décommentez la ligne suivante (faire en sorte qu’elle n’apparaisse plus comme commentaire mais comme code) pour acheminer tout le trafic via le serveur VPN :

push "redirect-gateway def1 bypass-dhcp"

Décommentez les  lignes suivantes :

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

Et ajoutez vos valeurs DNS à la place :

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

Si vous voulez utiliser le service DNS public de Google, vous pouvez utiliser 8.8.8.8 et 8.8.4.4.
Enfin, décommentez ces lignes, sauvegardez le fichier et quittez l’éditeur :

user nobody
group nobody

7- Activation du routage et du transfert d’IP

Editez /etc/sysctl.conf et mettez les paramètres suivant à la valeur 1 :

net.ipv4.ip_forward = 1

Sauvegardez et fermez le fichier de configuration. Activez les nouveaux paramètres en utilisant la commande suivante :

# sysctl -p

Maintenant ajoutons des règles iptables. Entrez ces commandes, une à la fois :

# iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
# iptables -A FORWARD -j REJECT

Si vous utilisez un serveur dédié ou un VPS XEN ou KVM, entrez cette commande:

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

Si vous utilisez un VPS OpenVZ, entrez cette commande (n’oubliez pas d’utiliser l’adresse IP de votre serveur principal) :

# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source main.ip.address

Sauvegardez les nouvelles règles iptables et redémarrez le service :

# service iptables save
# service iptables restart

Pour installer iptables-services et ajouter une règle iptables sur CentOS 7

Exécutez ces commandes:

yum install -y iptables-services
systemctl mask firewalld
systemctl enable iptables
systemctl stop firewalld
systemctl start iptables
iptables --flush

Ajoutez cette règle pour autoriser le trafic VPN. Remplacez «venet0» par le nom de votre adaptateur réseau principal. Dans la plupart des cas, il s'agit de venet0 ou eth0.

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

Enregistrer la nouvelle règle de pare-feu: 

iptables-save > /etc/sysconfig/iptables

Ensuite, nous devons activer le transfert IP dans sysctl. Ouvrez sysctl.conf:

vi /etc/sysctl.conf

Localisez la ligne avec net.ipv4.ip_forward = 0 et remplacez-la par:

net.ipv4.ip_forward = 1

8- Lancer le serveur VPN

Pour que le OpenVPN se lance automatiquement lorsque vous démarrez le serveur, tapez ces commandes :

# chkconfig --add openvpn
# chkconfig openvpn on

Maintenant démarrez le service OpenVPN :

# service openvpn start

Le serveur VPN attend maintenant que des clients se connectent.

Comment installer le client OpenVPN pour windows

Téléchargez et installez la dernière version de OpenVPN pour Windows ici : https://openvpn.net/index.php/open-source/downloads.html

Ne lancez pas OpenVPN GUI à la fin de l’installation. Vous devez le configurer pour le lancer en tant qu’administrateur d’abord :

 

Maintenant téléchargez le fichier suivant de votre serveur vers votre ordinateur Windows :

  • /etc/openvpn/easy-rsa/2.0/keys/ca.crt
  • /etc/openvpn/easy-rsa/2.0/keys/johndoe.crt
  • /etc/openvpn/easy-rsa/2.0/keys/johndoe.csr
  • /etc/openvpn/easy-rsa/2.0/keys/johndoe.key
  • usr/share/doc/openvpn-2.3.2/sample/sample-config-files/client.conf

 

Copiez ces 5 fichiers dans « C:\Program Files\OpenVPN\config\ » sur votre ordinateur Windows.

Créer le fichier de configuration OpenVPN

Avant d’établir une connexion à un serveur VPN, vous devez créer une configuration client avec l’extension « .ovpn ». Pour faire cela, renommez C:\Program Files\OpenVPN\config\client.conf en client.ovpn. Editez le fichier OVPN et cherchez les lignes suivantes :

remote my-server-1 1194

Remplacez « my-server-1 » par l’adresse IP de votre serveur VPN :

remote 123.123.123.123 1194

Cherchez les paramètres SSL/TLS :

ca ca.crt
cert client.crt
key client.key

Changez-les pour qu’il reflète le nom de fichier de votre certificat et de votre clé :

ca ca.crt
cert johndoe.crt
key johndoe.key

Sauvegardez et fermez le fichier OVPN.

Lancer le service OpenVPN

Si vous utilisez Windows 7 ou 8, vous devez lancer OpenVPN en tant que service sinon vous n’aurez pas les privilèges nécessaires pour modifier la configuration du réseau de votre ordinateur.  Pour se faire, allez dans Panneau de Configuration > Système et Sécurité > Outils Administrateur > Services et double-clique sur OpenVPN Service :

 

Configurez le service pour qu’il démarre automatiquement et cliquez sur le bouton Démarrer (Start) :

 

Etablir une connexion à un serveur VPN

Vous pouvez maintenant exécuter OpenVPN GUI sur votre bureau Windows. Souvenez-vous de le lancer en tant qu’administrateur pour qu’il marche correctement. Une fois que OpenVPN est lancé sur votre machine, vous devriez voir une icône comme celle la apparaitre dans votre barre des taches:

 

Si vous faites clic droit sur l’icône OpenVPN de la barre des tâches, une liste des configurations VPN disponibles  s’affichera (les fichiers OVPN). Sélectionnez le serveur VPN auquel vous souhaitez vous connecter et cliquez sur « Connect ».

 

Si vous avez tout fait correctement, OpenVPN GUI devrait afficher l’adresse IP qu’il reçoit du serveur VPN (10.8.0.X).

Diagnostiquer des anomalies de OpenVPN

Si vous avez des soucis pour vous connecter au serveur OpenVPN, vous pouvez essayer de le lancer sur un port commun TCP au lieu d’un port UDP 1194. Certains ISP n’autorisent pas les trafics sur un port 1194. Pour se faire, éditez /etc/openvpn/server.conf et faites les changements suivants :

port 80
proto tcp
; proto udp

Si le port 80 est déjà utilisé sur votre serveur, essayez de trouver un port disponible que votre ISP ne bloquera pas. Lorsque c’est fait, redémarrez OpenVPN :

service openvpn restart

N’oubliez pas de faire aussi les changements dans votre fichier OVPN

Si vous rencontrez encore des problèmes, vous pouvez activer l’enregistrement du débogage dans /etc/openvpn/server.conf :

log     openvpn.log
verb 4

Redémarrer le service et regardez le contenu de /etc/openvpn/openvpn.log en même temps que vous essayez de vous connecter au serveur VPN :

tail -f /etc/openvpn/openvpn.log

Une fois le problème résolu, n’oubliez pas de désactiver l’enregistrement du débogage.

Consulter notre comparatif des serveurs dédiés Centos



Comment nettoyer un .htaccess hacké

Dans cet article nous allons discuter de mesures que vous pouvez prendre pour nettoyer et réparer un fichier .htaccess piraté. Le fichier .htaccess est utilisé pour configurer principalement des règles pour contrôler la façon dont on accède à votre site. Vous ne remarquerez peut-être pas que votre … Continuer

Mis à jour le 17 septembre, 2020

0 Commentaires

Comment installer Configserver sur un serveur cPanel

Vous venez de créer votre tout premier VPS ou serveur dédié, et vous êtes impatients de commencer à installer votre logiciel, avoir des utilisateurs cPanel et faire de la revente d’hébergement. En bref vous n’attendez qu’une chose : vous mettre au travail. Pas si vite ! Avant tout, vous devez effect … Continuer

Mis à jour le 29 décembre, 2014

2 Commentaires

Comment sécuriser votre serveur cPanel

La sécurité du serveur est quelque chose qui ne devrait jamais être négligé. Un jour ou l'autre, il y a des chances que votre serveur soit l'objet d'attaques et que l'intégrité de vos données soit à risque, sans mentionner que vous risquez de perdre des clients potentiels et existants dans le même t … Continuer

Mis à jour le 8 octobre, 2015

0 Commentaires

Comment utiliser le gestionnaire de fichiers cPanel

Le gestionnaire de fichiers vous permet de gérer votre site via HTTP plutôt qu’avec un outil FTP ou toute autre application tierce. Vous pouvez télécharger, créer ou supprimer des fichiers, organiser les fichiers en dossiers et de modifier les permissions des fichiers. Même s'il n'est pas aussi soph … Continuer

Mis à jour le 7 octobre, 2015

0 Commentaires

Comment bloquer une IP dans cPanel

De nos jours, le nombre d’araignées du Web  (robots d’indexation) malveillants ne cesse d’augmenter. Ces robots ont comme objectif de collecter les emails et les failles des sites web pour organiser des attaques par la suite. À chaque fois qu’ils visitent un site web, ils puisent dans les ressources … Continuer

Mis à jour le 7 octobre, 2015

0 Commentaires

Comment rediriger une URL dans cPanel

L'outil de redirections dans cPanel vous permet de rediriger les visiteurs de votre site à partir d'une URL source vers une URL cible. Attention: ne jamais créer une redirection pour domaine.com à www.domaine.com ou de domain.com à domain.com/index. En utlilisant l’une ou l’autre, vous risquez de p … Continuer

Mis à jour le 2 octobre, 2015

0 Commentaires

Comment protéger un répertoire dans Cpanel

Vous pouvez protéger des répertoires (dossiers) par un mot de passe via le panneau de contrôle cPanel. Ceci vous permet de protéger tous les fichiers contenus dans les dossiers sécurisés par mot de passe. Note : cPanel ne peut protéger que des répertoires mais pas les fichiers individuels. Tout fic … Continuer

Mis à jour le 3 décembre, 2019

1 Commentaires

Comment créer un compte FTP dans cPanel

Un compte FTP est utilisé pour transférer et gérer des fichiers sur votre site web. Vous pouvez donner différents niveaux d'accès à différents utilisateurs en les assignant à un répertoire spécifique. Vous devez créer un compte FTP pour chaque utilisateur. Note: Par défaut, vous disposez déjà d'un … Continuer

Mis à jour le 26 septembre, 2015

0 Commentaires