OpenVPN est un logiciel VPN open source qui nous permet de créer un tunnel VPN basé sur SSL. Imaginez que vous vouliez vous connecter à votre intranet coopératif à partir d'un emplacement distant. Ne vous inquiétez pas, car si vous avez configuré un serveur VPN, cela peut être possible. Le réseau privé virtuel (VPN) fournit un tunnel sécurisé qui étend le réseau privé sur un réseau public, c'est-à-dire qu'il aide à créer un réseau étendu (WAN) à partir des réseaux locaux (LAN) existants. En conséquence, les utilisateurs peuvent envoyer des données en toute sécurité sur des réseaux publics comme s'ils étaient directement connectés à leur réseau local.
Vous pouvez en savoir plus sur OpenVPN ici.
Installer et configurer le serveur OpenVPN sur Fedora 29/28/CentOS 7
Sans trop de théorie, examinons une procédure étape par étape sur la façon d'installer et de configurer le serveur OpenVPN sur Fedora 29/28/CentOS 7.
Mettez à jour votre serveur.
dnf update <Installer OpenVPN et Easy-RSA sur Fedora 29/28
OpenVPN fournit un démon VPN robuste et très flexible, tandis que le package Easy-RSA est utilisé pour générer des paires de clés SSL utilisées pour sécuriser les connexions VPN. Les packages OpenVPN et Easy-RSA sont disponibles sur les dépôts Fedora par défaut. Exécutez la commande ci-dessous pour les installer.
dnf install openvpn easy-rsaInstallez OpenVPN et Easy-RSA sur CentOS 7
OpenVPN n'est pas disponible dans les référentiels CentOS par défaut, mais il est disponible dans EPEL. Vous devez donc installer les référentiels EPEL avant de pouvoir installer OpenVPN.
Pour ajouter des packages supplémentaires pour Enterprise Linux (EPEL), exécutez l'une des commandes suivantes :
yum install epel-releaseou
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmrpm -ivh epel-release-latest-7.noarch.rpmInstallez OpenVPN et Easy-RSA
yum installez openvpn easy-rsaCréer l'autorité de certification locale et générer les clés du serveur et le fichier de certificat
Créez un répertoire pour stocker les clés du serveur et les fichiers de certificat.
mkdir /etc/openvpn/easy-rsaCopiez les scripts de génération de clé/certificat installés par Easy-RSA du répertoire par défaut vers le répertoire créé ci-dessus.
cp -air /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsaAccédez à
/etc/openvpn/easy-rsa
répertoire et démarrez une nouvelle PKI.cd /etc/openvpn/easy-rsa./easyrsa init-pkiCréez le certificat CA. Cela vous demandera le mot de passe de cryptage et le nom commun du serveur.
./easyrsa build-ca...écriture d'une nouvelle clé privée dans '/etc/openvpn/easy-rsa/pki/private/ca.key.EajtR0SkLM'Entrez la phrase de passe PEM :PASSWORD Vérification - Saisissez la phrase de passe PEM :PASSWORD -----...-----Nom commun (par exemple :votre nom d'utilisateur, d'hôte ou de serveur) [Easy-RSA CA] :serveur 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/openvpn/easy-rsa/pki/ca.crtComme indiqué, le certificat CA est stocké dans
/etc/openvpn/easy-rsa/pki/ca.crt
.Générer un fichier de clé Diffie-Hellman qui peut être utilisé lors de la poignée de main TLS avec les clients qui se connectent.
./easyrsa gen-dhCela générera la clé DH et la stockera sous
/etc/openvpn/easy-rsa/pki/dh.pem
.Générez une clé et un fichier de certificat pour le serveur.
./easyrsa build-server-full server nopassGénérez une clé et un fichier de certificat pour le client.
./easyrsa build-client-full client nopassSi vous devez invalider un certificat précédemment signé, générez un certificat de révocation.
./easyrsa gen-crlCela stocke le certificat de révocation sous
/etc/openvpn/easy-rsa/pki/crl.pem
.Générer une clé d'authentification pré-partagée TLS/SSL
openvpn --genkey --secret /etc/openvpn/easy-rsa/pki/ta.keyCopiez les certificats/clés générés dans le répertoire de configuration du serveur.
cp -rp /etc/openvpn/easy-rsa/pki/{ca.crt,dh.pem,ta.key,issued,private} /etc/openvpn/server /Configurer le serveur OpenVPN
OpenVPN a un exemple de fichier de configuration dans son répertoire de documentation et donc pour nous faciliter la vie, nous allons copier l'exemple
/usr/share/doc/openvpn{-2.4.6,}/sample/sample-config-files/server.conf
fichier dans/etc/openvpn
pour modification.Sur Fedora
cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/server/Sur CentOS 7
cp /usr/share/doc/openvpn-2.4.6/sample/sample-config-files/server.conf /etc/openvpn/server/Modifiez le
server.conf
fichier comme suit ;vim /etc/openvpn/server/server.confModifiez le fichier de sorte qu'il ressemble à ce qui suit ;
# Sur quel port TCP/UDP OpenVPN doit-il écouter ?# Changez pour qu'il corresponde à votre port et ouvrez-le dans le port de pare-feu 1194# Serveur TCP ou UDP?proto udp# "dev tun " créera un tunnel IP routédev tun# Changer le chemin pour les certificatsca ca.crtcert émis/server.crtkey private/server.key# Diffie hellman exchange key pathdh dh.pem# Network topologytopology subnet# OpenVPN Network IP. Pour ci-dessous, le serveur prendra 10.8.0.1 pour lui-même,# le reste sera mis à la disposition de clients.server 172.16.0.0 255.255.255.0# cette directive configurera tous les clients pour rediriger leur passerelle réseau par défaut# via le VPNpush "redirect- gateway def1 bypass-dhcp"# DNS serverspush "dhcp-option DNS 208.67.222.222"push "dhcp-option DNS 208.67.220.220"# Pour une compression compatible avec les anciens clients, utilisez comp-lzo.comp-lzo# Exécutez le VPN avec des privilèges limitésuser nobodygroup personne# Status log filestatus /var/log/openvpn/openvpn-status.log# TLS/SSL pre-shared authentication keytls-auth ta.key 0# Make VPN log directory and log filelog-append /var/log/openvpn/openvpn .log#Ajoutez cette ligne pour changer l'algorithme d'authentification (HMAC) de SHA1 à SHA512auth SHA512Créez le répertoire du journal ;
mkdir /var/log/openvpn/Enregistrez le fichier de configuration
Configurer le routage
Activer le transfert IP
L'activation du transfert IP garantit que le trafic du client est acheminé via l'adresse IP des serveurs afin que l'adresse IP du client soit masquée.
echo "net.ipv4.ip_forward =1">> /etc/sysctl.confExécutez la commande ci-dessous pour effectuer les modifications :
sysctl --systemAutoriser le port de service OpenVPN via le pare-feu
firewall-cmd --add-port=1194/udp --permanentActiver le masquage IP
firewall-cmd --add-masquerade --permanentTransférer le trafic reçu sur le sous-réseau OpenVPN spécifié vers une interface via laquelle les paquets vont être envoyés.
Trouvez l'interface via laquelle les paquets sont envoyés en exécutant la commande ci-dessous :
ip route get 8.8.8.88.8.8.8 via 192.168.43.1 dev enp0s8 src 192.168.43.23Le nom de l'interface peut être différent pour votre cas. Remplacez en conséquence.
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 172.16.0.0/24 -o enp0s8 -j MASCARADERechargez firewalld pour que les modifications prennent effet.
firewall-cmd --reloadDémarrez et définissez le démarrage d'OpenVPN au démarrage.
systemctl start [email protected] enable [email protected]Lorsque le service OpenVPN s'exécute, il crée une interface de tunnellisation, tun0;
ip add show tun04 :tun0 :mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 172.16 .0.1/24 brd 172.16.0.255 portée globale tun0 valid_lft pour toujours prefer_lft pour toujours inet6 fe80 ::1155:c60c:c009:48c9/64 portée lien stable-privacy valid_lft pour toujours prefer_lft pour toujours Le serveur VPN se voit attribuer l'adresse IP 172.16.0.1 tandis que le premier client se verra attribuer 172.16.0.2.
Configurer le client VPN
Pour que le client VPN se connecte au serveur VPN, une copie du certificat CA, de la clé client, du certificat client et de la clé d'authentification TLS/SSL générée ci-dessus est requise. Par conséquent, copiez ces fichiers sur le client cible et placez-les dans un répertoire pratique.
cd /etc/openvpn/easy-rsa/pki/scp {ca.crt,issued/client.crt,private/client.key, ta.key} [email protected] :~/Installer le client OpenVPN
- Si vous utilisez un serveur Linux/Unix en tant que client, installez le client OpenVPN à l'aide du gestionnaire de packages respectif par exemple ;
apt install openvpnyum install openvpn- Si vous vous connectez à partir d'une machine Windows, vous pouvez simplement télécharger le programme d'installation du client OpenVPN à partir de la page de téléchargement OpenVPN et l'installer.
Créez le fichier de configuration OpenVPN pour le client comme indiqué ci-dessous. Par exemple, j'ai copié le certificat et les fichiers de clé dans mon répertoire personnel sur le client.
[email protected]:/home/amos# lsca.crt client.crt client.key ta.keyvim client.ovpnclienttls-clientpulldev tunproto udpremote 192.168.43.69 1194resolv-retry infininobinddhcp-option DNS 8.8.8.8user nobodygroup nogrouppersist-keypersist-tunkey-direction 1tls-auth ta.key 1comp-lzoverb 3ca ca.crtcert client.crtkey client.keyauth SHA512Pour vous connecter au serveur OpenVPN à partir du client, exécutez l'une des commandes ci-dessous :
sudo openvpn client.ovpnou
sudo openvpn --config client.ovpnSi la connexion est réussie, vous devriez voir un
Initialization Sequence Completed
.Mon Dec 31 03:54:39 2018 TUN/TAP device tun0 openMon Dec 31 03:54:39 2018 TUN/TAP TX queue length set to 100Mon Dec 31 03:54:39 2018 do_ifconfig, tt->did_ifconfig_ipv6_setup =0Lun 31 décembre 03:54:39 2018 /sbin/ip link set dev tun0 up mtu 1500Lun 31 déc 03:54:39 2018 /sbin/ip addr add dev tun0 172.16.0.2/24 diffusion 172.16.0.255Lun 31 déc 03 :54:39 2018 /sbin/ip route add 192.168.43.69/32 dev enp0s8Mon Dec 31 03:54:39 2018 /sbin/ip route add 0.0.0.0/1 via 172.16.0.1Mon Dec 31 03:54:39 2018 /sbin/ip route add 128.0.0.0/1 via 172.16.0.1Mon Dec 31 03:54:39 2018 GID défini sur nogroupMon Dec 31 03:54:39 2018 UID défini sur nobodyMon Dec 31 03:54:39 2018 Séquence d'initialisation TerminéSi vous pouvez vérifier l'interface, vous devriez voir une interface de tunneling créée. 172.16.0.2 /24 brd 172.16.0.255 portée globale tun0 valid_lft pour toujours prefer_lft pour toujours inet6 fe80 ::dc37:c115:60f:6b86/64 indicateurs de lien de portée 800 valid_lft pour toujours prefer_lft pour toujours
Vous vous êtes connecté avec succès à votre serveur VPN.
Il s'agit de savoir comment installer et configurer le serveur OpenVPN sur Fedora 29/CentOS 7. Votre serveur OpenVPN est entièrement opérationnel. Profitez.
Tutoriels associés
Configurer le VPN IPSEC à l'aide de StrongSwan sur Ubuntu 18.04
Configurer le client VPN strongSwan sur Ubuntu 18.04/CentOS 8
Configurer le VPN IPSEC à l'aide de StrongSwan sur Debian 10