Comment installer et configurer OpenVPN on CentOS 7 Serveur – Sécurisé VPN Guide d'installation
OpenVPN est une puissante solution logicielle open source qui implémente le VPN Protocole de réseau privé virtuel (Virtual Private Network), permettant des communications sécurisées sur des réseaux non fiables. L'une de ses principales caractéristiques est la possibilité de créer des tunnels chiffrés point à point ou site à site, garantissant ainsi une protection et une confidentialité renforcées des données. OpenVPN Prend en charge un large éventail d'algorithmes de chiffrement et de méthodes d'authentification, ce qui le rend hautement personnalisable et adapté aux utilisateurs individuels comme aux environnements d'entreprise. Multiplateforme, le logiciel propose des clients officiels pour les principaux systèmes d'exploitation, notamment Linux, Windows, macOS, ainsi que des plateformes mobiles comme Android et iOS.
La CentOS fonctionnalité de référentiel est que OpenVPN n'y est pas inclus. Mais ce package peut être obtenu en utilisant le référentiel EPEL (Enterprise Linux), qui est géré par Fedora Project. À partir de ce référentiel, en passant, vous pouvez obtenir d'autres packages qui ne sont pas inclus dans la norme CentOS dépôt. Installez avec la commande :
yum install epel-release
Procéder à l'installation OpenVPN. Installez le paquet :
yum install openvpn easy-rsa -y
Passez à la configuration du serveur. Copiez le fichier server.conf :
cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/
Il est important de prêter attention au « * ». Si une seule tentative d'installation a été effectuée, la version du programme peut être remplacée par un astérisque. S'il y a eu plusieurs tentatives d'installation, vous devrez peut-être spécifier complètement le chemin d'accès au fichier.
Avant de générer les clés, apportez quelques modifications au fichier de configuration du serveur
Ouvrez server.conf avec n'importe quel éditeur.
nano /etc/openvpn/server.conf
Recherchez la ligne « Paramètres Diffie Hellman » et recherchez :
dh dh2048.pem
Si cela est indiqué exactement, aucune modification n'est nécessaire. La particularité de la nouvelle version du package est que le paramètre a déjà des valeurs. Dans les versions plus anciennes, il y a simplement « dh ». Nous le faisons ressembler au nôtre.
Ensuite, recherchez la ligne "# Certain Windows- paramètres réseau spécifiques ». Décommentez l'un des paramètres ci-dessous (supprimez le symbole « point-virgule » (;) au début de la ligne). Cela devrait ressembler à ceci :
push "dhcp-option DNS 8.8.8.8"
Vous pouvez préciser votre DNS serveur si vous le souhaitez. Vous pouvez également supprimer le commentaire de la deuxième ligne pour passer une alternative DNS du serveur aux clients également.
Pour la sécurité du serveur, nous commencerons par l'utilisateur nobody et le groupe nogroup. Décommentez les lignes :
user nobody
group nobody
Nous commençons à créer des certificats
À l’aide du package easy-rsa précédemment installé, créez les clés du serveur et du client.
Créez un répertoire dans lequel les clés se trouveront :
mkdir -p /etc/openvpn/easy-rsa/keys
Dans le répertoire easy-rsa nouvellement créé, copiez les scripts :
cp -r /usr/share/easy-rsa/3.0/* /etc/openvpn/easy-rsa
Accédez au répertoire /etc /openvpn/easy-rsa/3/ et créez un script vars
cd /etc/openvpn/easy-rsa/
nano vars
Important! La version easy-rsa peut être différente et le chemin devra donc être ajusté.
Ajoutez les lignes suivantes au fichier ouvert :
set_var EASYRSA "$PWD"
set_var EASYRSA_PKI "$EASYRSA/pki"
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_REQ_COUNTRY "US"
set_var EASYRSA_REQ_PROVINCE "Los-Angeles County"
set_var EASYRSA_REQ_CITY "Los-Angeles"
set_var EASYRSA_REQ_ORG "MyOrg"
set_var EASYRSA_REQ_EMAIL "openvpn@mydomain.net"
set_var EASYRSA_REQ_OU "CA"
set_var EASYRSA_KEY_SIZE 2048
set_var EASYRSA_ALGO rsa
set_var EASYRSA_CA_EXPIRE 7500
set_var EASYRSA_CERT_EXPIRE 365
set_var EASYRSA_NS_SUPPORT "no"
set_var EASYRSA_NS_COMMENT "CERTIFICATE AUTHORITY"
set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types"
set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-1.0.cnf"
set_var EASYRSA_DIGEST "sha256"
Autoriser l'exécution du fichier :
chmod +x vars
Nous initialisons le répertoire PKI et créons un certificat CA :
./easyrsa init-pki
./easyrsa build-ca
Important! Lors de la création d'un certificat CA, le script demandera un mot de passe d'au moins 4 caractères. Le mot de passe saisi doit être mémorisé.
Créez la clé du serveur.
./easyrsa gen-req server nopass
Si vous ne spécifiez pas l'attribut "nopass", lors de la création de la clé, le script demandera un mot de passe.
Nous signons le certificat du serveur :
./easyrsa sign-req server server
Le script s'intéressera à notre confiance avec la première action, répondre "Oui". Ensuite, il vous demandera le mot de passe qui a été spécifié lors de la création du certificat CA.
Vérifiez si le certificat est signé :
openssl verify -CAfile pki/ca.crt pki/issued/ server.crt
Nous générons une clé de serveur supplémentaire ta.key :
openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/ta.key
Certificats d'utilisateur
Le processus de création d'un certificat utilisateur est identique à la création d'un certificat de serveur.
1. Nous créons sans protection par mot de passe :
./easyrsa gen-req client01 nopass
2. Signature du certificat :
./easyrsa sign-req client client01
3. Vérifiez la signature :
openssl verify -CAfile pki/ca.crt pki/issued/client01.crt
Diffie Hellman.
Création d'un certificat
./easyrsa gen-dh
En conséquence, le fichier dh.pem sera créé et dans la configuration dh2048.pem. Renommez-le plus tard lors de la copie des clés.
Nous transférons des certificats
Copiez les fichiers de clé du serveur. Pour ce faire, nous effectuons séquentiellement :
cp pki/ca.crt /etc/openvpn/
cp pki/issued/server.crt /etc/openvpn/
cp pki/private/server.key /etc/openvpn/
cp /etc/openvpn/easy-rsa/keys/ta.key /etc/openvpn/
Copier les clés client
cp pki/ca.crt /etc/openvpn/client/
cp pki/issued/client01.crt /etc/openvpn/client/
cp pki/private/client01.key /etc/openvpn/client/
Copiez le fichier de clé Diffie-Hellman
cp pki/dh.pem /etc/openvpn/dh2048.pem
Important! Le nom du fichier cible est intentionnellement remplacé par le nom dans le fichier config.
Configuration du routage
Pour accélérer la configuration, le travail sera effectué avec iptables, pas avec FirewallD. Effectuez constamment :
yum install iptables-services -y
systemctl mask firewalld
systemctl enable iptables
systemctl stop firewalld
systemctl start iptables
iptables --flush
Avant de poursuivre la configuration, vous devez regarder les noms des interfaces à l'aide de la commande :
ifconfig -a
Ajouter une règle pour NAT:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o <interface_name> -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
A titre d'exemple:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
Autoriser le transfert de paquets entre les interfaces réseau. Pour cela, éditez le fichier système sysctl.conf :
nano /etc/sysctl.conf
Au début du fichier, insérez la ligne :
net.ipv4.ip_forward = 1
Nous enregistrons le fichier, fermons l'éditeur et redémarrons le service réseau avec la commande :
systemctl restart network.service
Nous commençons le OpenVPN serveur
Pour commencer, ajoutez le service à l'importation automatique :
systemctl -f enable openvpn@server.service
Lancement OpenVPN:
openvpn /etc/openvpn/server.conf
Paramètre client.
Le serveur est configuré, il reste à configurer le client pour qu'il puisse se connecter.
Quel que soit l'OS utilisé, qu'il s'agisse d'une version mobile, serveur ou domestique, Linux or Windows, vous aurez toujours besoin de 4 fichiers :
- ca.crt;
- client.crt;
- client.clé;
- client.ovpn
Les 3 premiers fichiers se trouvent dans le répertoire /etc/openvpn /client/, et il faudra créer client.ovpn. Pour cela, rendez-vous dans le répertoire où se trouvent toutes les clés client :
cd /etc/openvpn/client/
Créer un fichier :
nano client.ovpn
Remplissez le contenu suivant :
client
dev tun
proto udp
remote <IP_ADDRESS> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca ca.crt
cert client01.crt
key client01.key
Au lieu de IP_ADDRESS, insérez l'adresse IP du serveur ou son nom de domaine. Enregistrez le fichier avec Ctrl + X et fermez l'éditeur.
Nous transférons les fichiers au client. Il est possible de le faire, par exemple, via SFTP ou d'archiver le répertoire et de le « transmettre » via le serveur Web.
Connexion client
Selon le système d'exploitation, nous téléchargeons le fichier d'installation ou installons à partir du référentiel. Également, OpenVPN peut être obtenu auprès de le site officiel.
Windows:
Pour les ordinateurs exécutant Windows, vous devez télécharger le package de distribution du produit à partir du site officiel, récupérer les « quatre fichiers », les placer dans le dossier C: Program FilesOpenVPNconfig.
Après avoir démarré le OpenVPN Dans l'interface graphique, l'icône du programme apparaît dans la barre d'état système. Cliquez dessus avec le bouton droit de la souris, sélectionnez Connecter.
MacOS
OpenVPN Pour MacOS, c'est un peu plus compliqué. Vous devez utiliser l'outil open source Tunnelblick. Les clés et le fichier de configuration doivent être placés dans ~ /Library/Application Support/Tunnelblick/Configurations. Ou double-cliquez sur le fichier de configuration.
Linux :
Vous devez installer à partir du référentiel.
Debian/Ubuntu
apt-get install openvpn
CentOS/OpenSUSE/Fedora
yum install openvpn -y
Après l'installation, allez dans le dossier dans lequel se trouve le fichier de configuration avec les clés et exécutez la commande :
sudo openvpn --config client.ovpn
Pour vérifier le fonctionnement du serveur, vous devez utiliser l'un des sites affichant votre adresse IP.


