Comment installer OpenVPN sur Centos / Rhel 8

Comment installer OpenVPN sur Centos / Rhel 8

Un VPN est également connu comme un «réseau privé virtuel» est une technologie qui vous permet de créer un réseau privé sécurisé sur Internet public. Cela vous aidera à crypter votre trafic Internet et à protéger votre identité en ligne. Il est principalement utilisé pour connecter deux réseaux commerciaux en toute sécurité sur Internet et vous permet de connecter un réseau commercial à partir.

En termes simples, un VPN connecte votre mobile, votre ordinateur et votre tablette à un autre ordinateur (serveur) sur Internet et vous permet d'accéder à Internet à l'aide d'Internet de cet ordinateur et également d'accès à la ressource réseau locale en contournant la censure Internet à distance.

Dans ce tutoriel, nous vous montrerons comment installer et configurer le serveur OpenVPN sur CentOS 8.

Étape 1 - Désactiver SELINUX

Avant de commencer, c'est une bonne idée de désactiver le selinux dans votre système.

Pour désactiver SELINUX, ouvrez le fichier / etc / selinux / config:

nano / etc / selinux / config 

Changez la ligne suivante:

Selinux = handicapé 

Enregistrez le fichier lorsque vous avez terminé. Ensuite, redémarrez votre système pour appliquer les modifications de selinux.

Étape 2 - Activer le transfert IP

Ensuite, vous devrez activer le transfert IP dans votre système. Le transfert IP permet à votre système d'exploitation d'accepter les paquets réseau entrants et de le transmettre à l'autre réseau si la destination est sur un autre réseau.

Pour activer le transfert IP, modifiez le fichier / etc / sysctl.conf:

nano / etc / sysctl.confli 

Ajouter la ligne suivante:

filet.ipv4.ip_forward = 1 

Enregistrez le fichier lorsque vous avez terminé. Ensuite, exécutez la commande suivante pour appliquer les modifications:

sysctl -p 

Étape 3 - Installez le serveur OpenVPN

Par défaut, vous devrez installer le référentiel EPEL dans votre système afin d'installer la dernière version d'OpenVPN.

Exécutez la commande suivante pour installer le référentiel elep:

DNF Installer EPEL-Release -y 

Une fois installé, exécutez la commande suivante pour installer la dernière version d'OpenVPN:

DNF Installer OpenVPN -Y 

Une fois l'installation terminée, vous devrez également télécharger Easy-RSA pour gérer les certificats SSL.

Exécutez la commande suivante pour télécharger Easy-RSA à l'intérieur / etc / openvpn répertoire.

cd / etc / openvpn wget https: // github.com / openvpn / easy-rsa / releases / download / v3.0.6 / Easyrsa-Unix-V3.0.6.tgz 

Ensuite, exécutez la commande suivante pour extraire le fichier téléchargé:

Tar -xvzf Easyrsa-Unix-V3.0.6.tgz 

Ensuite, renommez le répertoire extrait de la RSA facile:

MV Easyrsa-V3.0.6 Easy-RSA 

Étape 4 - Autorité de certificat de configuration

Easy RSA utilise un ensemble de scripts pour générer des clés et des certificats. Tout d'abord, vous devrez configurer l'autorité de certificat sur votre système.

Pour ce faire, modifiez le répertoire en / etc / openvpn / easy-rsa et créez un nouveau fichier de configuration RSA facile:

cd / etc / openvpn / easy-rsa nano vars 

Ajoutez les lignes suivantes, y compris votre pays, votre ville et votre adresse e-mail préférée:

set_var EASYRSA "$PWD" set_var EASYRSA_PKI "$EASYRSA/pki" set_var EASYRSA_DN "cn_only" set_var EASYRSA_REQ_COUNTRY "INDIA" set_var EASYRSA_REQ_PROVINCE "Gujrat" set_var EASYRSA_REQ_CITY "Ahmedabad" set_var EASYRSA_REQ_ORG "Tecadmin CERTIFICATE AUTHORITY" set_var EASYRSA_REQ_EMAIL "[email protected]" set_var EASYRSA_REQ_OU "Tecadmin EASY 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 "Tecadmin CERTIFICATE AUTHORITY" set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types" set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-easyrsa.CNF "set_var easyrsa_digest" sha256 " 

Enregistrez le fichier lorsque vous avez terminé.

Ensuite, exécutez la commande suivante pour lancer le répertoire PKI.

./ Easyrsa init-pki 

Sortir:

Remarque: Utilisation de la configuration facile-RSA depuis: ./ VARS Init-PKI complet; Vous pouvez maintenant créer un CA ou des demandes. Votre PKI Dir nouvellement créé est: / etc / openvpn / easy-rsa / pki 

Ensuite, créez les certificats CA avec la commande suivante:

./ Easyrsa Build-CA 

Vous devriez obtenir la sortie suivante:

Remarque: Utilisation de la configuration facile-RSA depuis: ./ VARS à l'aide de SSL: OpenSSL OpenSSL 1.1.1C FIPS 28 mai 2019 Entrez la nouvelle phrase de passe de la clé CA: réintégrer la nouvelle clé de passe de la touche CA: génération de clé privée RSA, module de 2048 bits (2 nombres premiers)… +++++… ++++++ E est 65537 (0x010001) Impossible de charger / etc / openvpn / easy-rsa / pki /.RND dans RNG 140218549745472: Erreur: 2406f079: générateur de nombres aléatoires: Rand_load_file: Impossible d'ouvrir le fichier: crypto / rand / randfile.c: 98: nom de fichier = / etc / openvpn / easy-rsa / pki /.RND vous êtes sur le point d'être invité à saisir des informations qui seront intégrées à votre demande de certificat. Ce que vous êtes sur le point d'entrer, c'est ce qu'on appelle un nom distingué ou un DN. Il y a pas mal de champs mais vous pouvez laisser un peu de blanc pour certains champs, il y aura une valeur par défaut, si vous entrez '.', Le champ sera laissé vide. ----- Nom commun (par exemple: votre utilisateur, l'hôte ou le nom du serveur) [Easy-RSA CA]: Création de CA terminée et vous pouvez maintenant importer et signer des demandes de certificat. Votre nouveau fichier de certificat CA pour la publication est à: / etc / openvpn / easy-rsa / pki / ca.CRT 

La commande ci-dessus générera deux fichiers nommés ca.clé et CA.CRT. Ces certificats seront utilisés pour signer votre serveur et les certificats de vos clients.

Étape 5 - Générer des fichiers de certificat de serveur

Ensuite, vous devrez générer une demande de clés et de certificat pour votre serveur.

Exécutez la commande suivante pour générer la clé de serveur nommée Tecadmin-Server:

./ Easyrsa Gen-Req Tecadmin-Server Nopass 

Vous devriez obtenir la sortie suivante:

Remarque: Utilisation de la configuration facile-RSA depuis: ./ VARS à l'aide de SSL: OpenSSL OpenSSL 1.1.1C FIPS 28 mai 2019 Génération d'une clé privée RSA… +++++… ++++++ Rédaction de nouvelles clés privées pour '/ etc / openvpn / easy-rsa / pki / private / tecadmin-server.clé.kolbtwty6a '----- Il vous est demandé de saisir des informations qui seront intégrées à votre demande de certificat. Ce que vous êtes sur le point d'entrer, c'est ce qu'on appelle un nom distingué ou un DN. Il y a pas mal de champs mais vous pouvez laisser un peu de blanc pour certains champs, il y aura une valeur par défaut, si vous entrez '.', Le champ sera laissé vide. ----- Nom commun (par exemple: votre utilisateur, l'hôte ou le nom du serveur) [Tecadmin-Server]: la demande de clés et de certificat terminée. Vos fichiers sont: req: / etc / openvpn / easy-rsa / pki / reqs / tecadmin-server.Key req: / etc / openvpn / easy-rsa / pki / private / tecadmin-server.clé 

Étape 6 - Signez la clé du serveur à l'aide de ca

Ensuite, vous devrez signer la clé Tecadmin-Server en utilisant votre certificat CA:

Exécutez la commande suivante pour signer la clé du serveur:

./ Easyrsa Sign-Req Server Tecadmin-Server 

Vous devriez obtenir la sortie suivante:

Remarque: Utilisation de la configuration facile-RSA depuis: ./ VARS à l'aide de SSL: OpenSSL OpenSSL 1.1.1C FIPS 28 mai 2019 Vous êtes sur le point de signer le certificat suivant. Veuillez vérifier les détails ci-dessous pour la précision. Notez que cette demande n'a pas été vérifiée cryptographiquement. Assurez-vous qu'il provient d'une source de confiance ou que vous avez vérifié la somme de chèques de demande avec l'expéditeur. Demande de sujet, à signer comme certificat de serveur pendant 365 jours: sujet = CommonName = Tecadmin-Server Tapez le mot «oui» pour continuer, ou toute autre entrée pour abandonner. Confirmer les détails de la demande: oui en utilisant la configuration de / etc / openvpn / easy-rsa / pki / safessl-easyrsa.CNF Entrez Pass phrase pour / etc / openvpn / easy-rsa / pki / private / ca.Clé: Vérifiez que la demande correspond à la signature de la signature OK, le nom distingué du sujet est le suivant: ASN.1 12: Le certificat «Tecadmin-Server» doit être certifié jusqu'au 16 février 05:00:50 2021 GMT (365 jours) Écrivez la base de données avec 1 nouveau certificat de données de données d'entrées créé sur: / etc / openvpn / easy-rsa / PKI / émis / Tecadmin-Server.CRT 

Ensuite, vérifiez le fichier de certificat généré avec la commande suivante:

OpenSSL Vérifier -cafile PKI / CA.CRT PKI / émis / Tecadmin-Server.CRT 

Si tout va bien, vous devriez obtenir la sortie suivante:

PKI / émis / Tecadmin-Server.CRT: OK 

Ensuite, exécutez la commande suivante pour générer une touche Diffie-Hellman forte à utiliser pour l'échange de clés:

./ Easyrsa Gen-DH 

Vous devriez obtenir la sortie suivante:

Remarque: Utilisation de la configuration facile-RSA depuis: ./ VARS à l'aide de SSL: OpenSSL OpenSSL 1.1.1C FIPS 28 mai 2019 Génération de paramètres DH, 2048 Bit Long Safe Prime, Générateur 2 at / etc / openvpn / easy-rsa / pki / dh.pem 

Après avoir créé tous les fichiers de certificat, copiez-les dans / etc / openvpn / server / répertoire:

CP PKI / CA.CRT / ETC / OpenVPN / Server / CP PKI / DH.pem / etc / openvpn / server / cp pki / private / tecadmin-server.clé / etc / openvpn / server / cp pki / émis / tecadmin-server.crt / etc / openvpn / server / 

Étape 7 - Générer le certificat client et le fichier clé

Ensuite, vous devrez générer la clé et le fichier de certificat pour le client.

Tout d'abord, exécutez la commande suivante pour créer le fichier de clé client:

./ Easyrsa Gen-Req Client Nopass 

Vous devriez voir la sortie suivante:

Remarque: Utilisation de la configuration facile-RSA depuis: ./ VARS à l'aide de SSL: OpenSSL OpenSSL 1.1.1C FIPS 28 mai 2019 Génération d'une clé privée RSA… +++++… ++++++ Rédaction de nouvelles clés privées pour '/ etc / openvpn / easy-rsa / pki / private / client.clé.E38GUTZHIE '----- Vous êtes sur le point d'être invité à saisir des informations qui seront intégrées à votre demande de certificat. Ce que vous êtes sur le point d'entrer, c'est ce qu'on appelle un nom distingué ou un DN. Il y a pas mal de champs mais vous pouvez laisser un peu de blanc pour certains champs, il y aura une valeur par défaut, si vous entrez '.', Le champ sera laissé vide. ----- Nom commun (par exemple: le nom de votre utilisateur, de l'hôte ou du serveur) [Client]: la demande de clés et de certificat terminée. Vos fichiers sont: req: / etc / openvpn / easy-rsa / pki / reqs / client.Key req: / etc / openvpn / easy-rsa / pki / private / client.clé 

Ensuite, signez la clé du client à l'aide de votre certificat CA:

./ Easyrsa Sign-Req Client Client 

Vous devriez obtenir la sortie suivante:

Remarque: Utilisation de la configuration facile-RSA depuis: ./ VARS à l'aide de SSL: OpenSSL OpenSSL 1.1.1C FIPS 28 mai 2019 Vous êtes sur le point de signer le certificat suivant. Veuillez vérifier les détails ci-dessous pour la précision. Notez que cette demande n'a pas été vérifiée cryptographiquement. Assurez-vous qu'il provient d'une source de confiance ou que vous avez vérifié la somme de chèques de demande avec l'expéditeur. Demande de sujet, à signer en tant que certificat client pendant 365 jours: sujet = CommonName = Client Type Le mot «Oui» pour continuer, ou toute autre entrée pour abandonner. Confirmer les détails de la demande: oui en utilisant la configuration de / etc / openvpn / easy-rsa / pki / safessl-easyrsa.CNF Entrez Pass phrase pour / etc / openvpn / easy-rsa / pki / private / ca.Clé: Vérifiez que la demande correspond à la signature de la signature OK, le nom distingué du sujet est le suivant: ASN.1 12: Le certificat «client» doit être certifié jusqu'au 16 février 05:11:19 2021 GMT (365 jours) Écrivez la base de données avec 1 nouveau certificat de données de données de données créé sur: / etc / openvpn / easy-rsa / pki / émis / client.CRT 

Ensuite, copiez tout le certificat client et le fichier clé dans / etc / openvpn / client / répertoire:

CP PKI / CA.CRT / ETC / OpenVPN / Client / CP PKI / émis / Client.CRT / ETC / OpenVPN / Client / CP PKI / Private / Client.key / etc / openvpn / client / 

Étape 8 - Configurer le serveur OpenVPN

Ensuite, créez un nouveau fichier de configuration OpenVPN à l'intérieur / etc / openvpn / client / répertoire:

nano / etc / openvpn / serveur / serveur.confli 

Ajouter les lignes suivantes:

port 1194 proto udp dev tun ca / ​​etc / openvpn / server / ca.CRT CERT / ETC / OpenVPN / Server / Tecadmin-Server.CRT Key / etc / OpenVPN / Server / Tecadmin-Server.clé dh / etc / openvpn / server / dh.serveur pem 10.8.0.0 255.255.255.0 PUST "Redirection-Gateway Def1" push "DHCP-option DNS 208.67.222.222 "push" dhcp-option DNS 208.67.220.220 "Duplicate-CN Cipher AES-256-CBC TLS-Version-Min 1.2 TLS-CIPHER TLS-DHE-RSA-WITH-AES-256-GCM-SHA384: TLS-DHE-RSA-WITH-AES-256-CBC-SHA256: TLS-DHE-RSA-WITH-AES-128-GCM- SHA256: TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 AUTH SHA512 Auth-nocache Keepalive 20 60 Persist-Key Persist-Tun Compress LZ4 Daemon User Personne Nul Nobod.verbe de journal 3 

Enregistrez le fichier lorsque vous avez terminé.

Étape 9 - Démarrez le service OpenVPN

OpenVPN est maintenant installé et configuré. Vous pouvez maintenant démarrer le service OpenVPN et lui permettre de démarrer après le redémarrage du système en utilisant la commande suivante:

SystemCTL start [Protégé par e-mail] SystemCTL Activer [Protégé par e-mail] 

Exécutez la commande suivante pour vérifier l'état du service OpenVPN:

Statut SystemCTL [Protégé par e-mail] 

Vous devriez obtenir la sortie suivante:

● [Protégé par e-mail] - Service OpenVPN pour le serveur chargé: chargé (/ usr / lib / systemd / system / [e-mail protégé]; activé; fournisseur préréglé: désactivé) actif: actif (en cours d'exécution) depuis le lundi 2020-02-17 00: 29:26 EST; Il y a 39min Docs: Man: OpenVPN (8) https: // Communauté.openvpn.net / openvpn / wiki / openvpn24manpage https: // communauté.openvpn.Net / OpenVPN / Wiki / Howto Pid Main: 32405 (OpenVPN) Statut: "Séquence d'initialisation terminée" Tâches: 1 (limite: 12552) Mémoire: 1.9m cgroup: / système.tranche / système-openvpn \ x2dserver.SLICE / [Protégé par e-mail] └fique.Log --Status-Version 2 - Suppress-Timestamps --Cipher AES-256-> 17 février 00:29:26 Centos8 Systemd [1]: Démarrage du service OpenVPN pour le serveur… 17 février 00:29:26 Centos8 Systemd [1 1 ]: A commencé le service OpenVPN pour le serveur. 

Une fois que le service OpenVPN a commencé avec succès, il créera une nouvelle interface réseau nommée TUN0. Vous pouvez le vérifier avec la commande suivante:

ifconfig 

Vous devriez obtenir la nouvelle interface TUN0 dans la sortie suivante:

ETH0: Flags = 4163 MTU 1500 INET 104.245.36.127 Masque de réseau 255.255.255.0 Broadcast 104.245.36.255 INET6 FE80 :: 200: 68FF: FEF5: 247f Prefixlen 64 Scopeid 0x20 Ether 00: 00: 68: F5: 24: 7f Txqueuelen 1000 (Ethernet) RX Paquets 1926738 Bytes 314886412 (300).2 MIB) Erreurs Rx 0 Drop 0 Overruns 0 Frame 0 Paquets TX 174907 octets 29557250 (28.1 MIB) Erreurs Tx 0 Drop 0 Overruns 0 Carrier 0 Collisions 0 Lo: Flags = 73 MTU 65536 INET 127.0.0.1 masque de réseau 255.0.0.0 INET6 :: 1 Prefixlen 128 SCOPEID 0x10 LOOP TXQUEUELEN 1000 (Loopback local) Paquets RX 216 octets 40041 (39.1 kib) Rx Erreurs 0 Drop 0 Overruns 0 Frame 0 Paquets TX 216 octets 40041 (39.1 kib) Erreurs Tx 0 Drop 0 Overruns 0 Carrier 0 Collisions 0 Tun0: Flags = 4305 MTU 1500 INET 10.8.0.1 masque de réseau 255.255.255.255 destination 10.8.0.2 INET6 FE80 :: 4152: A673: B260: D9E6 Prefixlen 64 Scopeid 0x20 UNSPEC 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 Txqueuelen 100 (USPEC) Paquets RX 0 octets 0 (0.0 b) Erreurs Rx 0 Drop 0 Overruns 0 Frame 0 Paquets TX 4 octets 304 (304.0 b) Erreurs Tx 0 Drop 0 dépassement 0 Carrier 0 Collisions 0 

Étape 10 - Générer le fichier de configuration du client

Ensuite, créez un nouveau fichier de configuration du client OpenVPN nommé client.OVPN. Vous aurez besoin de ce fichier pour connecter votre serveur OpenVPN à partir du système client.

nano / etc / openvpn / client / client.OVPN 

Ajouter les lignes suivantes:

Client Dev Tun Proto UDP Remote VPN-Server-IP 1194 CA CA.Client CRT CERT.Client CRT Key.Clé CIPHER AES-256-CBC AUTH SHA512 AUTH-NOCACHE TLS-Version-Min 1.2 TLS-CIPHER TLS-DHE-RSA-WITH-AES-256-GCM-SHA384: TLS-DHE-RSA-WITH-AES-256-CBC-SHA256: TLS-DHE-RSA-WITH-AES-128-GCM- SHA256: TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 RESOLV-RETRY INFINITE COMPRES 

Enregistrez le fichier lorsque vous avez terminé.

Étape 11 - Configurer le routage à l'aide de Firewalld

Tout d'abord, vous devrez autoriser le service OpenVPN via Firewalld.

Pour ce faire, ajoutez le service OpenVPN et l'interface TUN0 à la zone de pare-feu de confiance:

Firewall-CMD --permanent --Add-Service = OpenVPN Firewall-CMD --permanent --zone = Trusted --Add-Service = OpenVPN Firewall-Cmd --permanent --zone = Trusted --Add-Interface = Tun0 

Ensuite, ajoutez la mascarade sur la zone par défaut:

Firewall-CMD - Add-Masquerade Firewall-CMD - Permanent - Add-Masquerade 

Ensuite, exécutez la commande suivante pour masquer le trafic Internet provenant du réseau VPN (10.8.0.0/24) à l'interface du réseau local des systèmes (ETH0).

tecadmin = $ (ip itet obtient 8.8.8.8 | awk 'nr == 1 print $ (nf-2)') Firewall-Cmd --permanent --direct --Passthrough ipv4 -t nat -a post-artouting -s 10.8.0.0/24 -o $ tecadmin -j Masquerade 

Enfin, exécutez la commande suivante pour implémenter les modifications:

pare-feu-CMD - Reload 

Étape 12 - Connectez OpenVPN des clients

Tout d'abord, connectez-vous à la machine client et installez le package OpenVPN avec la commande suivante:

DNF Installer EPEL-Release -y DNF Installer OpenVPN -Y 

Ensuite, vous devrez télécharger les fichiers de configuration du client OpenVPN de OpenVPN Server vers la machine client.

Sur la machine client, exécutez la commande suivante pour télécharger tout le fichier de configuration du client:

SCP -R [Protégé par e-mail]: / etc / openvpn / client . 

Une fois téléchargé, modifiez le répertoire en client et exécutez la commande suivante pour vous connecter au serveur OpenVPN:

Client CD OpenVPN - Clifig Client.OVPN 

Vous devriez voir la sortie suivante:

Lun 17 février 00:54:17 2020 Vérifier OK: Depth = 0, CN = Tecadmin-Server lun 17 février 00:54:17 2020 COMMANDE CONTRÔLE: TLSV1.3, chiffre Tlsv1.3 TLS_AES_256_GCM_SHA384, 2048 BIT RSA LUN 17 Fév.245.36.127: 1194 lun 17 févr , DHCP-Option DNS 208.67.222.222, DHCP-Option DNS 208.67.220.220, route 10.8.0.1, topologie NET30, ping 20, ping-restart 60, ifconfig 10.8.0.6 10.8.0.5, Peer-ID 0, Cipher AES-256-GCM 'lun 17 fév Modified lun 17 février 00:54:18 2020 Options Importation: Options d'itinéraire Modified lun 17 fév. 18 2020 Options Importation: Peer-ID Set Lun 17 février 00:54:18 2020 Options Importation: ajustement de lien_mtu au 1625 lun 17 février 00:54:18 2020 Importation d'options: canal de données Crypto Options modifiées lun 17 février 00:54:18 2020 Canal de données: Utilisation du chiffre négocié 'AES-256-GCM' lun 17 février 00:54:18 2020 Channel de données sortant: Cipher 'AES-256-GCM' Initialisé avec une clé de 256 bits lun 17 février 00:54:18 2020 Canal de données: Cipher 'AES-256-GCM' initialisé avec une clé de 256 bits lun 17 février 00:54:18 2020 Route_gateway 45.58.38.1/255.255.255.0 iface = eth0 hwaddr = 00: 00: 2d: 3a: 26: d9 lun 17 février 00:54:18 2020 Tun / Tap Device Tun0 ouvrir le lundi 17 février 00:54:18 2020 TUN / TAP LONGUEUR DE FIDUE TX SET À 100 Lun 17 févr.8.0.6 pairs 10.8.0.5 

Après une connexion réussie, OpenVPN affectera une adresse IP à votre système. Vous pouvez le vérifier avec la commande suivante:

ifconfig tun0 

Sortir:

tun0: drapeaux = 4305 MTU 1500 INET 10.8.0.6 Masque de réseau 255.255.255.255 destination 10.8.0.5 INET6 FE80 :: C6B: 2644: 5142: 8e7f Prefixlen 64 Scopeid 0x20 UNSEPEC 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 Txqueuelen 100 (USPEC) Paquets RX 0 octets 0 (0.0 b) Erreurs Rx 0 Drop 0 Overruns 0 Frame 0 Paquets TX 2 octets 96 (96.0 b) Erreurs Tx 0 Drop 0 Overruns 0 Carrier 0 

Toutes nos félicitations! Vous avez réussi et configuré OpenVPN Server and Client sur le serveur CentOS 8.