07.06.2023

Installation et configuration OpenVPN on CentOS

OpenVPN est une implémentation logicielle ouverte du VPN protocole. Une caractéristique distinctive de ce produit est la possibilité de créer des tunnels cryptés, alors qu'il existe des implémentations pour les systèmes d'exploitation les plus populaires, y compris pour les plates-formes mobiles.

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 installer epel-release

Procéder à l'installation OpenVPN. Installez le paquet :

yum installer openvpn facile-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 faire attention au "*". Si une seule tentative d'installation a été effectuée, le program la version 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/serveur.conf

Trouvez la ligne "Diffie hellman parameters. et recherchez :

dh dh2048.pem

S'il est indiqué exactement, aucune modification n'est nécessaire. La nuance de la nouvelle version du package est que le parameter a déjà des valeurs. Dans les anciennes versions, 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 parameters ci-dessous (supprimer le symbole "point-virgule" (;) en début de ligne). Ça devrait ressembler a quelque chose comme ca:

appuyez sur "dhcp-option DNS 8.8.8.8

Vous pouvez préciser votre DNS serveur si vous le souhaitez. De plus, vous pouvez décommenter la deuxième ligne pour passer un alternative DNS serveur à cliaussi.

Pour la sécurité du serveur, nous commencerons par l'utilisateur nobody et le groupe nogroup. Décommentez les lignes :

utilisateur personne
groupe personne

Nous commençons à créer des certificats

À l'aide du package easy-rsa précédemment installé, créez le serveur et cliclés ent.

Créez un répertoire dans lequel les clés se trouveront :

mkdir -p /etc/openvpn/easy-rsa/clés

Dans le répertoire easy-rsa nouvellement créé, copiez les scripts :

cp -r /usr/share/easy-rsa/3.0/* /etc/openvpn/easy-rsa

Allez dans /etc/openvpn/easy-rsa/3/ et créez un script vars

cd / etc /openvpn/easy-rsa/

nanovars

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 "RU"
set_var EASYRSA_REQ_PROVINCE "Moscou"
set_var EASYRSA_REQ_CITY "Moscou"
set_var EASYRSA_REQ_ORG "MonOrg"
set_var EASYRSA_REQ_EMAIL "openvpn@mondomaine.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 "non"
set_var EASYRSA_NS_COMMENT "AUTORITÉ DE CERTIFICATION"
set_var EASYRSA_EXT_DIR "$EASYRSA/types x509"
set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-1.0.cnf"
set_var EASYRSA_DIGEST "sha256"

Autoriser l'exécution du fichier :

chmod +x variables

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 serveur 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 serveur serveur

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 vérifier -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 pas de passe

2. Signature du certificat :

./easyrsa signe-req client cliint01

3. Vérifiez la signaturenature:

openssl vérifier -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 clitouches ent

cp pki/ca.crt /etc/openvpn/client /
cp pki/émis/client01.crt /etc/openvpn/client /
cp pki/privé/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 :

miam installer iptables-services -y
masque systemctl firewalld
systemctl activer iptables
arrêt systemctl firewalld
systemctl démarrer 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 <имя_интерфейса> -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 redémarrer network.service

Nous commençons le OpenVPN serveur

Pour commencer, ajoutez le service à l'importation automatique :

systemctl -f activer openvpn@serveur.service

Lancement OpenVPN:

openvpn / Etc /openvpn/serveur.conf

Client réglage.

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 :

Les 3 premiers fichiers sont situés dans le /etc/openvpn /client/répertoire, et client.ovpn devra être créé. Pour cela, rendez-vous dans le répertoire où se trouvent tous les cliles clés sont :

cd /etc/openvpn/client /

Créer un fichier :

nano client.ovpn

Remplissez le contenu suivant :

client
dev tun
proto udp
télécommande 1194
resolv-retry infini
nobind
persist-key
persist-tun
comp-lzo
3 verbe
ca.crt
cert client01.crt
key client01.clé

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 "donner" via le serveur Web.

Cliconnexion ent

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 depuis le site officiel, obtenir les "quatre fichiers", le mettre dans le dossier, C: Program FichiersOpenVPNconfig.

Après avoir démarré le OpenVPN GUI, le programmeram l'icône apparaîtra dans la barre d'état système. Nous cliCliquez dessus avec le bouton droit de la souris, sélectionnez Connecter.

MacOS

OpenVPN pour MacOS 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-click sur le fichier de configuration.

Linux :

Vous devez installer à partir du référentiel.

Debian/Ubuntu

apt-get installer openvpn

CentOS/OpenSUSE/Fedora

yum installer 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.