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

Installer et configurer le serveur OpenVPN sur Ubuntu 20.04

Dans ce guide, nous allons apprendre à installer et à configurer OpenVPN Server sur Ubuntu 20.04. OpenVPN est un logiciel VPN open source robuste et très flexible qui utilise toutes les fonctionnalités de chiffrement, d'authentification et de certification de la bibliothèque OpenSSL pour tunnelliser 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, l'accès à des sites distants, l'établissement de connexions point à point sécurisées, tout en maintenant la sécurité qui serait atteinte dans un réseau privé.

Installer et configurer le serveur OpenVPN sur Ubuntu 20.04

Exécuter la mise à jour du système

apt updateapt upgrade

Installer OpenVPN sur Ubuntu 20.04

Le package OpenVPN est disponible sur les référentiels Ubuntu 20.04 par défaut. Ainsi, l'installation est aussi simple que d'exécuter la commande ci-dessous ;

apt installer openvpn

Installer l'utilitaire Easy-RSA CA sur Ubuntu 20.04

Le package Easy-RSA fournit des utilitaires pour générer des paires de clés SSL utilisées pour sécuriser les connexions VPN.

apt installer easy-rsa

Créer une infrastructure à clé publique OpenVPN

Une fois que vous avez installé easy-rsa, vous devez initialiser la PKI OpenVPN. L'ICP se compose de :

  • une clé publique et une clé privée pour le serveur et chaque client
  • un certificat et une clé d'autorité de certification principale (CA) utilisés pour signer chacun des certificats serveur et client.

Avant de continuer, copiez le répertoire de configuration easy-rsa à un emplacement différent pour vous assurer que les futures mises à niveau du package OpenVPN n'écraseront pas vos modifications.

cp -r /usr/share/easy-rsa /etc/ 

Ensuite, initialisez la PKI.

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

Une fois la PKI initialisée, /etc/easy-rsa/pki est créé.

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

Ensuite, générez le certificat CA et la clé pour signer les certificats serveur et client OpenVPN.

cd /etc/easy-rsa/./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.1f 31 mars 2020Saisissez 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 de charger /etc/easy-rsa/pki/.rnd dans RNG139840045897024 :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. Il y a pas mal de champs mais vous pouvez laisser des champs vides. Pour certains champs, il y aura une valeur par défaut. Si vous saisissez '.', le champ restera vide. , hôte ou nom de serveur) [Easy-RSA CA] :Kifarunix-demo 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 généré et stocké dans /etc/easy-rsa/pki/ca.crt .

Générer les paramètres Diffie Hellman

Générez des clés Diffie-Hellman utilisées pour l'échange de clés lors de la poignée de main TLS entre le serveur OpenVPN et les clients qui se connectent. Cette commande a été exécutée dans le répertoire Easy-RSA ;

./easyrsa gen-dh

Paramètres DH de taille 2048 créés dans /etc/easy-rsa/pki/dh.pem .

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

Entrez la phrase secrète de la clé CA créée ci-dessus pour générer les certificats et les clés.

pas de passage désactive l'utilisation de la phrase de passe.

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

La clé d'authentification pré-partagée TLS/SSL est utilisée comme signature HMAC supplémentaire sur tous les paquets de prise de contact SSL/TLS pour éviter les attaques DoS et l'inondation des ports UDP. Cela peut être généré à l'aide de la commande 

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

Générer un certificat de révocation OpenVPN

Pour invalider un certificat précédemment signé, vous devez générer un certificat de révocation. Exécutez le script dans le répertoire Easy-RSA ;

./easyrsa gen-crl

Le certificat de révocation est généré et stocké dans /etc/easy-rsa/pki/crl.pem .

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

Copiez tous les certificats/clés de serveur 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/serveur/

Générer des certificats et des clés client OpenVPN

Les certificats et les clés privées des clients OpenVPN peuvent être générés comme suit

cd /etc/easy-rsa
./easyrsa build-client-full koromicha nopass
  • où 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 janedoe nopass

Vous pouvez voir comment utiliser easyrsa commande avec ./easyrsa --help .

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

Créez des répertoires de clients OpenVPN. Par exemple, nous avons généré des certificats et des fichiers de clé pour deux clients, koromicha et janedoe, nous créons donc des répertoires comme :

mkdir /etc/openvpn/client/{koromicha,janedoe}

Après cela, copiez les certificats/clés générés par le client et le certificat CA du serveur 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/janedoe.crt,private/janedoe.key} /etc/openvpn/client/janedoe/

Configurer le serveur OpenVPN sur Ubuntu 20.04

L'étape suivante consiste à configurer le serveur OpenVPN. Copiez l'exemple de configuration du serveur OpenVPN dans /etc/openvpn/server répertoire comme indiqué ci-dessous ;

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

Extrayez la configuration et modifiez-la en fonction de vos besoins ;

cd /etc/openvpn/server/gunzip server.conf.gz
vim /etc/openvpn/server/server.conf

Voici à quoi ressemblent nos exemples de configurations sans commentaires. La configuration est fortement commentée pour vous aider à comprendre l'utilisation des différentes options.

port 1194proto udpdev tunca ca.crtcert issue/server.crtkey private/server.key # Ce fichier doit rester secretdh dh.pemtopology subnetserver 10.8.0.0 255.255.255.0ifconfig-pool-persist /var/log/ openvpn/ipp.txtpush "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 208.67.222.222"push "dhcp-option DNS 192.168.2.11"client-to-clientkeepalive 10 120tls-auth ta.key 0 # Ce fichier est un chiffre secret AES-256-CBCcomp-lzopersist-keypersist-tunstatus /var/log/openvpn/openvpn-status.loglog-append /var/log/openvpn/openvpn.logverb 3explicit-exit-notify 1auth SHA512 

Enregistrez et quittez la configuration une fois l'édition terminée.

Configurer le transfert IP OpenVPN

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

Décommentez la ligne, net.ipv4.ip_forward=1 , sur /etc/sysctl.conf pour activer le transfert de paquets pour IPv4

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf

Appliquez les modifications sans redémarrer le serveur.

sysctl --system

Autoriser le port de service OpenVPN via le pare-feu ;

ufw allow 1194/udp

Configurer le masquage IP sur UFW

Trouvez votre interface par défaut à travers laquelle vos paquets sont envoyés.

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

Ensuite, mettez à jour les règles UFW ;

vim /etc/ufw/before.rules

Ajoutez les lignes en surbrillance suivantes juste avant le *filter paramètres du tableau. Notez que l'interface utilisée doit correspondre au nom de l'interface ci-dessus.

...*nat:POSROUTING ACCEPT [0:0]-A POSTROUTING -s 10.8.0.0/8 -o enp0s3 -j MASQUERADECOMMIT # Ne supprimez pas ces lignes obligatoires, sinon il y aura des erreurs*filtre...

Enregistrez et quittez la configuration.

Activer le transfert de paquets UFW ;

sed -i 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/' /etc/default/ufw

Recharger UFW ;

rechargement ufw

Exécuter le serveur OpenVPN sur Ubuntu 20.04

Démarrez et activez le serveur OpenVPN pour qu'il s'exécute au démarrage du système ;

systemctl enable --now [email protected]

Vérification du statut ;

systemctl status [email protected]
[email protected] - Service OpenVPN pour le serveur Chargé :chargé (/lib/systemd/system/[email protected] ; activé ; préréglage du fournisseur :activé) Actif :actif (en cours d'exécution) depuis le ven 2020 -05-01 16:07:33 UTC ; Il y a 3 s Docs :man:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage https://community.openvpn.net/openvpn/wiki/HOWTO PID principal :11980 (openvpn) Statut :" Séquence d'initialisation terminée" Tâches :1 (limite :2281) Mémoire :1,0 Mo CGroup :/system.slice/system-openvpn\x2dserver.slice/[email protected] └─11980 /usr/sbin/openvpn --status /run /openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.confMay 01 16:07:33 vpn.kifarunix-demo.com systemd[1] :Démarrage du service OpenVPN pour le serveur ...1er mai 16:07:33 vpn.kifarunix-demo.com systemd[1] :Démarrage du service OpenVPN pour le serveur. 

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

ip ajouter 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 

Assurez-vous également de vérifier les journaux ;

tail /var/log/openvpn/openvpn.log
/sbin/ip link set dev tun0 up mtu 1500/sbin/ip addr add dev tun0 10.8.0.1/24 broadcast 10.8.0.255Impossible de déterminer le protocole IPv4/IPv6. Utilisation des tampons AF_INETSocket :R=[212992->212992] S=[212992->212992]Lien UDPv4 local (lié) :[AF_INET][undef]:1194UDPv4 lien distant :[AF_UNSPEC]MULTI :multi_init appelé, r=256 v =256IFCONFIG POOL :base=10.8.0.2 size=252, ipv6=0IFCONFIG POOL LISTSéquence d'initialisation terminée 

Magnifique. Le serveur OpenVPN est maintenant prêt. Cela marque la fin de notre guide sur la façon d'installer OpenVPN Server sur Ubuntu 20.04.

Vous pouvez maintenant configurer vos clients en conséquence.

Tutoriels associés

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

Configurer l'authentification basée sur OpenVPN LDAP

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 installer et configurer Universal Media Server dans Ubuntu 20.04

  3. Configurer le serveur OpenVPN sur Rocky Linux 8

  4. Configurer le serveur OpenVPN sur CentOS 8

  5. Installer et configurer le serveur OpenVPN FreeBSD 12

Installer et configurer VNC sur Ubuntu 20.04

Comment configurer OpenVPN sur Ubuntu Server

Comment installer et configurer un serveur OpenVPN sur Ubuntu 22.04

Configurer un serveur OpenVPN avec Ubuntu et Viscosity

Installer et configurer Plex Media Server sur Ubuntu 22.04 LTS

Comment installer OpenVPN sur Ubuntu 16.04 LTS