GNU/Linux >> Tutoriels Linux >  >> Panels >> OpenVPN

Configurer le serveur OpenVPN sur Rocky Linux 8

Dans ce guide, nous allons apprendre à installer et à configurer facilement OpenVPN Server sur Rocky Linux 8. OpenVPN est un logiciel VPN open source robuste et très flexible qui utilise toutes les fonctionnalités de cryptage, d'authentification et de certification de la bibliothèque OpenSSL. pour tunneliser en toute sécurité les réseaux IP sur un seul port UDP ou TCP. Il facilite l'extension d'un réseau privé à travers un réseau public tout en maintenant la sécurité qui serait atteinte dans un réseau privé.

Configurer le serveur OpenVPN sur Rocky Linux 8

Installer le référentiel EPEL

Les derniers packages OpenVPN sont fournis par les référentiels EPEL sur Rocky Linux 8 et d'autres dérivés similaires. EPEL peut être installé sur Rocky Linux 8 en exécutant la commande ci-dessous ;

dnf install epel-release -y

Installer OpenVPN sur Rocky Linux 8

Une fois les dépôts EPEL en place, vous pouvez maintenant installer le package OpenVPN sur Rocky Linux 8 en exécutant la commande ci-dessous ;

dnf installer openvpn

Installer l'utilitaire Easy-RSA CA sur Rocky Linux 8

Le package Easy-RSA est un utilitaire CA basé sur le shell qui est utilisé pour générer des paires de clés SSL utilisées pour sécuriser les connexions VPN.

dnf install easy-rsa

Créer une infrastructure à clé publique OpenVPN

La première étape de la configuration d'un serveur OpenVPN consiste à créer une PKI composée de clés publiques et privées pour le serveur OpenVPN et les clients de connexion, ainsi qu'un certificat principal d'autorité de certification et une clé privée pour signer le serveur OpenVPN et les certificats clients. Si possible, vous devez créer la PKI sur un serveur séparé exécutant OpenVPN pour des raisons de sécurité.

Initialiser l'ICP

Easy-RSA est utilisé pour la gestion PKI. Les scripts Easy-RSA sont installés sous le /usr/share/easy-rsa annuaire.

Pour vous assurer qu'Easy-RSA, toute configuration effectuée n'est pas écrasée en cas de mise à niveau, copiez les scripts dans un autre répertoire, de préférence sous /etc répertoire.

mkdir /etc/easy-rsa
cp -air /usr/share/easy-rsa/3/* /etc/easy-rsa/

Une fois les scripts en place, accédez au répertoire et initialisez la PKI.

cd /etc/easy-rsa/
./easyrsa init-pki

Exemple de sortie de commande ;

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/easy-rsa/pki 

Générer le certificat et la clé de l'autorité de certification (CA)

Ensuite, générez le certificat CA et la clé qui seront utilisés pour signer les certificats en exécutant les commandes ci-dessous dans le répertoire Easy-RSA ci-dessus.

./easyrsa build-ca

Cela vous demandera la phrase secrète de la clé CA et le nom commun du serveur.

Utilisation de SSL :openssl OpenSSL 1.1.1g FIPS 21 avril 2020Saisissez la nouvelle phrase secrète de la clé CA :saisissez à nouveau la phrase secrète de la clé CA :Génération de la clé privée RSA, 2 048 bits module long (2 nombres premiers)........................++++ +.................................................. ...+++++e est 65537 (0x010001)Vous êtes sur le point d'être invité à entrer des informations qui seront incorporées dans votre demande de certificat.Ce que vous êtes sur le point d'entrer est ce qu'on appelle un nom distinctif ou un DN.Il y a pas mal de champs mais vous pouvez laisser des champs videsPour certains champs il y aura une valeur par défaut,Si vous entrez '.', le champ sera laissé vide.-----Nom commun (ex:votre utilisateur, hôte ou serveur name) [Easy-RSA CA] :la création de Kifarunix-demo CACA est terminée et vous pouvez maintenant importer et signer des demandes de certificat. Votre nouveau fichier de certificat CA pour la publication se trouve à :/etc/easy-rsa/pki/ca.crt

Le fichier CA est /etc/easy-rsa/pki/ca.crt .

Générer les paramètres Diffie Hellman

Dans le même répertoire Easy-RSA que ci-dessus, exécutez la commande ci-dessous pour générer un fichier de clé Diffie-Hellman qui peut être utilisé pour l'échange de clé lors de la poignée de main TLS avec les clients qui se connectent.

./easyrsa gen-dh

La commande prendra un certain temps pour se terminer. Il stocke ensuite les paramètres DH sur le /etc/easy-rsa/pki/dh.pem fichier.

Générer le certificat et la clé du serveur OpenVPN

Pour générer un certificat et une clé privée pour le serveur OpenVPN, exécutez la commande ci-dessous :

cd /etc/easy-rsa
./easyrsa build-server-full server nopass

Lorsque la commande s'exécute, vous serez invité à saisir la phrase secrète de la clé CA créée ci-dessus.

nopass désactive l'utilisation de la phrase secrète dans les certificats.

Utilisation de SSL :openssl OpenSSL 1.1.1g FIPS 21 avril 2020Génération d'une clé privée RSA.....+++++............ ...................+++++écrire une nouvelle clé privée dans '/etc/easy-rsa/pki/easy-rsa-10170.VLZsfK/tmp.4TROOP '-----Utilisation de la configuration de /etc/easy-rsa/pki/easy-rsa-10170.VLZsfK/tmp.jTJJ7fEntrez la phrase de passe pour /etc/easy-rsa/pki/private/ca.key :Vérifiez que le la demande correspond à la signatureSignature okLe nom distinctif du sujet est le suivantNom commun :ASN.1 12 : 'serveur'Le certificat doit être certifié jusqu'au 3 octobre 18:03:20 2023 GMT (825 jours) pré> 

Générer une clé HMAC (Hash-based Message Authentication Code)

Pour générer une clé d'authentification pré-partagée TLS/SSL qui sera utilisée pour ajouter une signature HMAC supplémentaire à tous les paquets de prise de contact SSL/TLS, afin d'éviter les attaques DoS et l'inondation du port UDP, exécutez la commande ci-dessous :

openvpn --genkey - -secret /etc/easy-rsa/pki/ta.key

Générer un certificat de révocation

Afin d'invalider un certificat précédemment signé, vous devez générer un certificat de révocation.

./easyrsa gen-crl
Utilisation de SSL :openssl OpenSSL 1.1.1g FIPS 21 avril 2020Utilisation de la configuration depuis /etc/easy-rsa/pki/easy-rsa-10284.mSzk9F/tmp.qdix0ASaisissez la phrase de passe pour /etc/easy-rsa/pki/private /ca.key :Une CRL mise à jour a été créée.Fichier CRL :/etc/easy-rsa/pki/crl.pe

Le certificat de révocation est stocké sous /etc/easy-rsa/pki/crl.pem .

Copier les certificats et les clés du serveur dans le répertoire du serveur

Ensuite, copiez tous les certificats/clés générés dans le répertoire de configuration du serveur OpenVPN.

cp -rp /etc/easy-rsa/pki/{ca.crt,dh.pem,ta.key,crl.pem,issued,private} /etc/openvpn/server/

Générer un certificat client et une clé OpenVPN

Pour générer le certificat et la clé privée des clients OpenVPN, exécutez la commande ci-dessous ;

cd /etc/easy-rsa
./easyrsa build-client-full gentoo nopass

Exemple de sortie ;

Utilisation de SSL :openssl OpenSSL 1.1.1g FIPS 21 avril 2020Génération d'une clé privée RSA........................+++++.. .................................................. .....................................+++++écriture d'une nouvelle clé privée dans '/etc /easy-rsa/pki/easy-rsa-10316.rcXRdS/tmp.tauo7u'-----Utilisation de la configuration de /etc/easy-rsa/pki/easy-rsa-10316.rcXRdS/tmp.RxlTawEntrez la phrase de passe pour /etc/easy-rsa/pki/private/ca.key :Vérifiez que la requête correspond à la signature Signature ok 23 2023 GMT (825 jours)Écrivez la base de données avec 1 nouvelles entréesBase de données mise à jour

où gentoo est le nom du client pour lequel le certificat et les clés sont générés. Utilisez toujours un nom commun unique pour chaque client pour lequel vous générez un certificat et des clés.

Pour générer pour le second client,

./easyrsa build-client-full johndoe nopass

Copier les certificats client et les clés dans le répertoire client

Créez un répertoire pour chaque client sur le répertoire du client OpenVPN

mkdir /etc/openvpn/client/{gentoo,johndoe}

Ensuite, copiez tous les certificats/clés générés par le client et le certificat CA dans le répertoire de configuration du client OpenVPN. Vous pouvez

cp -rp /etc/easy-rsa/pki/{ca.crt,issued/gentoo.crt,private/gentoo.key} /etc/openvpn/client/gentoo
cp -rp /etc/easy-rsa/pki/{ca.crt,issued/johndoe.crt,private/johndoe.key} /etc/openvpn/client/johndoe/

Configurer le serveur OpenVPN sur Rocky Linux 8

OpenVPN est livré avec un exemple de fichier de configuration dans son répertoire de documentation. Copiez le fichier dans /etc/openvpn/server/ et modifiez-le selon vos besoins.

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

Ouvrez la configuration pour modification.

vim /etc/openvpn/server/server.conf

Le dossier est très commenté. Lisez les commentaires pour chaque option de configuration.

Dans la forme la plus basique, voici nos options de configuration, sans commentaires. 255.255.255.0ifconfig-pool-persist ipp.txtpush "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 208.67.222.222"push "dhcp-option DNS 192.168.10.3"client-to-clientkeepalive 10 120tls-auth ta .key 0 # Ce fichier est un chiffrement secret AES-256-CBCcomp-lzouser personsgroup nobodypersist-keypersist-tunstatus /var/log/openvpn/openvpn-status.loglog-append /var/log/openvpn/openvpn.logverb 3explicit-exit-notify 1authentification SHA512

Enregistrez et quittez la configuration une fois la modification effectuée.

Vous souhaitez attribuer des adresses IP fixes/statiques à vos clients OpenVPN ? Suivez le guide ci-dessous ;

Attribuer des adresses IP statiques aux clients OpenVPN

Créer un répertoire de journal ;

mkdir /var/log/openvpn/

Explorez la configuration et effectuez des réglages plus précis en fonction de vos besoins.

Configurer le routage du serveur OpenVPN

Pour vous assurer que le trafic du client est acheminé via l'adresse IP des serveurs (aide à masquer l'adresse IP du client), vous devez activer le transfert IP sur le serveur OpenVPN ;

echo "net.ipv4.ip_forward =1">> /etc/sysctl.conf

Exécutez la commande ci-dessous pour effectuer les modifications sans redémarrer le serveur.

sysctl --system

Autoriser le port de service OpenVPN via le pare-feu

firewall-cmd --add-port=1194/udp --permanent

Activer le masquage IP

firewall-cmd --add-masquerade --permanent

Transférer le trafic reçu sur le sous-réseau OpenVPN spécifié, par exemple, le 10.8.0.0/24 dans notre cas, vers une interface via laquelle les paquets vont être envoyés.

Pour trouver l'interface via laquelle les paquets sont envoyés en exécutant la commande ci-dessous :

ip route get 8.8.8.8
8.8.8.8 via 10.0.2.2 dev enp0s3 src 10.0.2.15 uid 0 
    cache 

Le nom de l'interface et le sous-réseau défini peuvent être différents pour votre cas. Remplacez-les en conséquence.

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp0s 3 -j MASCARADE

Rechargez firewalld pour que les modifications prennent effet.

firewall-cmd --reload

Démarrez et configurez OpenVPN au démarrage du système.

systemctl enable --now [email protected]

Lorsque le service OpenVPN s'exécute, il crée une interface de tunnellisation, tun0 ;

ip ajouter s
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::afd7:17a6:57ee:7f3b/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever 

Vérification des journaux ;

tail /var/log/openvpn/openvpn.log
/sbin/ip addr add dev tun0 10.8.0.1/24 broadcast 10.8.0.255Socket Buffers :R=[212992->212992] S=[212992->212992]Lien UDPv4 local (lié) :[AF_INET][ undef]:1194UDPv4 link remote :[AF_UNSPEC]GID défini sur nobodyUID défini sur nobodyMULTI :multi_init appelé, r=256 v=256IFCONFIG POOL :base=10.8.0.2 size=252, ipv6=0IFCONFIG POOL LISTInitialization Sequence Completed

Votre serveur OpenVPN est maintenant opérationnel. Cela nous amène à la fin de notre guide sur la façon d'installer et de configurer OpenVPN Server sur Rocky Linux 8.

Vous pouvez maintenant procéder à la configuration des clients OpenVPN et les interconnecter via le serveur VPN.

Installer et configurer le client OpenVPN sur Rocky Linux 8

Autres tutoriels

Attribuer des adresses IP statiques aux clients OpenVPN

Configurer l'authentification basée sur OpenVPN LDAP


OpenVPN
  1. Configuration initiale du serveur avec Ubuntu 14.04

  2. Installer et configurer le client OpenVPN sur Rocky Linux 8

  3. Configurer le serveur OpenVPN sur Rocky Linux 8

  4. Installer et configurer le serveur OpenVPN sur Ubuntu 20.04

  5. Configurer le serveur OpenVPN sur CentOS 8

Comment installer Webmin sur Rocky Linux 8

Comment configurer la réplication FreeIPA sur Rocky Linux/Alma Linux/Centos 8

Installer la pile LAMP sur Rocky Linux 8

Comment installer Jenkins sur Rocky Linux 8

Comment configurer le serveur et le client VPN Linux à l'aide d'OpenVPN

Comment installer Nginx sur Rocky Linux 9