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

Configurer le serveur OpenVPN sur CentOS 8

Dans ce guide, nous allons apprendre à installer et à configurer facilement OpenVPN Server sur CentOS 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 tunnellisez 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 CentOS 8

Installer le référentiel EPEL

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

dnf install epel-release -y

Installer OpenVPN sur CentOS 8

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

dnf install openvpn

Installer l'utilitaire Easy-RSA CA sur CentOS 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 n'importe quelle configuration effectuée n'est pas écrasée en cas de mise à niveau, copiez les scripts dans un répertoire différent, 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

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.1c FIPS 28 mai 2019Saisissez la nouvelle phrase secrète de la clé CA :ENTREZ LE MOT DE PASSE Saisissez à nouveau la nouvelle phrase de passe de la clé CA :RE-ENTER PASSWORD Génération de la clé privée RSA, module long de 2048 bits (2 nombres premiers).............................. ..............................+++++.+++++e est 65537 (0x010001)Impossible chargez /etc/easy-rsa/pki/.rnd dans RNG140160794502976:erreur:2406F079:générateur de nombres aléatoires:RAND_load_file:Impossible d'ouvrir le fichier:crypto/rand/randfile.c:98:Filename=/etc/easy-rsa/pki/ .rndVous ê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. sera une valeur par défaut, si vous entrez '.', le champ sera laissé vide.-----Nom commun (par exemple :votre nom d'utilisateur, d'hôte ou de serveur) [Easy-RSA CA] :Kifarunix -CA La création de l'autorité de certification est terminée et vous pouvez maintenant importer et signer les demandes de certificat.Votre nouveau fichier de certificat d'autorité de certification pour la publication se trouve à :/etc/easy-rsa/pki/ca.crt

Le certificat CA est stocké dans /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 négociation 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 dossier.

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 de passe.

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

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 koromicha nopass

koromicha 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/{koromicha,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/koromicha.crt,private/koromicha.key} /etc/openvpn/client/koromicha
cp -rp /etc/easy-rsa/pki/{ca.crt,issued/johndoe.crt,private/johndoe.key} /etc/openvpn/client/johndoe/

Configurer le serveur OpenVPN sur CentOS 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.log log-append /var/log/openvpn/openvpn.log verbe 3explicit-exit-notify 1auth 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 192.168.43.1 dev enp0s3 src 192.168.43.73 uid 0

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 l'exécution d'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 add s
4 :tun0 : mtu 1500 qdisc fq_codel état UNKNOWN groupe par défaut qlen 100 lien/aucun inet 10.8.0.1/24 brd 10.8.0.255 portée globale tun0 valid_lft pour toujours prefer_lft pour toujours inet6 fe80 ::2ed5:8f74:c456:96b7/64 lien de portée stable-privacy valid_lft pour toujours prefer_lft pour toujours

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.255
Socket Buffers: R=[212992->212992] S=[212992->212992]
UDPv4 link local (bound): [AF_INET][undef]:1194
UDPv4 link remote: [AF_UNSPEC]
GID set to nobody
UID set to nobody
MULTI: multi_init called, r=256 v=256
IFCONFIG POOL: base=10.8.0.2 size=252, ipv6=0
IFCONFIG POOL LIST
Initialization Sequence Completed 

Votre serveur OpenVPN est maintenant opérationnel. Cela nous amène à la fin de notre guide sur l'installation et la configuration du serveur OpenVPN sur CentOS 8.

Vous pouvez maintenant procéder à la configuration des clients OpenVPN ;

Installer et configurer le client OpenVPN sur CentOS 8/Ubuntu 18.04

Configurez l'authentification basée sur OpenVPN LDAP.

Configurer l'authentification basée sur OpenVPN LDAP

Tutoriel associé

Configurer le VPN IPSEC à l'aide de StrongSwan sur Ubuntu 18.04

Configurer le client VPN strongSwan sur Ubuntu 18.04/CentOS 8

Connectez-vous à Cisco VPN à l'aide du fichier PCF sur Ubuntu

OpenVPN
  1. Configuration initiale du serveur avec Ubuntu 14.04

  2. Comment configurer un serveur SFTP sur CentOS

  3. Configurer le serveur SysLog sur CentOS 6 / RHEL 6

  4. Comment configurer le serveur SysLog sur CentOS 7 / RHEL 7

  5. Configurer le serveur Rsyslog centralisé sur CentOS 7

Comment installer le serveur et le client OpenVPN sur CentOS 7

Comment configurer un serveur SVN sur CentOS

Comment configurer OpenVPN sur Ubuntu Server

CentOS 8 - Configuration initiale du serveur

Configurer un serveur OpenVPN avec CentOS et Viscosity

Comment configurer HAProxy sur CentOS 8