Comment installer le serveur OpenVPN sur Debian 10/9

Comment installer le serveur OpenVPN sur Debian 10/9

Un réseau privé virtuel (VPN) est un protocole utilisé pour ajouter la sécurité et la confidentialité aux réseaux privés et publics. Les VPN envoient du trafic entre deux ou plusieurs appareils sur un réseau dans un tunnel crypté. Une fois une connexion VPN établie, tout le trafic réseau est crypté du côté du client. Les VPN masquent votre adresse IP afin que vos actions en ligne soient pratiquement introuvables.

Il fournit du cryptage et de l'anonymat, et protège vos activités en ligne, vos achats en ligne, l'envoi de courriels et aide également à garder votre web naviguer anonyme.

Dans ce tutoriel, nous vous montrerons comment installer et configurer le serveur et le client OpenVPN sur le serveur Debian 10.

Commencer

Avant de commencer, c'est une bonne idée de mettre à jour les packages de votre système vers la dernière version.

Exécutez la commande suivante pour mettre à jour et mettre à niveau les packages de votre système:

APT-Get Update -y mise à niveau apt-get -y 

Une fois que votre système est à jour, vous pouvez passer à l'étape suivante.

Étape 1 - 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 2 - Installez le serveur OpenVPN

Par défaut, le package OpenVPN est disponible dans le référentiel de Debian 10 par défaut. Vous pouvez l'installer avec la commande suivante:

apt-get install openvpn -y 

Une fois l'installation terminée, vous devrez également copier le répertoire Easy-RSA pour gérer les certificats SSL.

Exécutez la commande suivante pour copier le répertoire Easy-RSA à partir du répertoire / usr / partager vers / etc / openvpn répertoire.

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

Étape 3 - 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 4 - 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 5 - 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 en tant que 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 6 - Générez 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 7 - Configurer le serveur OpenVPN

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

nano / etc / openvpn / 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 KEETALIVE 20 60 Persist-Key Persist-Tun Compress LZ4 Daemon User Personne Group Nogroup Log-APPEND / VAR / LOG / OpenVPN.verbe de journal 3 

Enregistrez le fichier lorsque vous avez terminé.

Étape 8 - 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] - Connexion OpenVPN au serveur chargé: chargé (/ lib / systemd / système / [e-mail protégé]; activé; fournisseur préréglé: activé) actif: actif (en cours d'exécution) depuis le vendredi 2020-02-21 15:38: 31 UTC; Il y a 4s Docs: Homme: OpenVPN (8) https: // Communauté.openvpn.net / openvpn / wiki / openvpn24manpage https: // communauté.openvpn.Net / OpenVPN / Wiki / Howto Pid principal: 3044 (OpenVPN) Statut: "Séquence d'initialisation terminée" Tâches: 1 (limite: 2359) Mémoire: 1.3m CGroup: / Système.tranche / système-openvpn.Slice / [Protégé par e-mail] └ c'est-out.Statut 10 --cd / etc / openvpn - Config / etc / openvpn / serveur. 21 février 15:38:31 Debian10 Systemd [1]: Démarrage de la connexion OpenVPN au serveur… 21 fév. 

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:

ip a show tun0 

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

59: TUN0: MTU 1500 QDISC PFIFO_FAST State Unknown Group par défaut Qlen 100 Link / Aucun INET 10.8.0.1 pair 10.8.0.2/32 Scope Global Tun0 valid_lft Forever Preferred_lft Forever Inet6 Fe80 :: 90: E3C0: 5F1A: 27F5 / 64 LIEN SPOCE STABLE-PRIVACY VALID_LFT FOREM 

Étape 9 - Générer la 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 10 - Configurer le routage à l'aide de UFW

Par défaut, le pare-feu UFW n'est pas installé dans Debian 10. Vous pouvez l'installer avec la commande suivante:

apt-get install ufw -y 

Après avoir installé le pare-feu UFW, vous devrez ajouter des règles de pare-feu pour permettre la dégagement pour que vos clients VPN accédent à Internet.

Tout d'abord, vous devrez configurer l'UFW pour accepter les paquets transmis. Vous pouvez le faire en modifiant le fichier / etc / default / ufw:

nano / etc / par défaut / ufw 

Changez la ligne suivante:

Default_forward_policy = "accepter" 

Enregistrez et fermez le fichier. Ensuite, ouvrez le / etc / ufw / avant.Fichier de règles:

nano / etc / ufw / avant.règles 

Ajoutez les lignes suivantes à la fin du fichier:

* Nat: Postrouting accepte [0: 0] -a Postrouting -S 10.8.0.0/16 -o ENS3 -J Masquerade Commit 

Enregistrez le fichier lorsque vous avez terminé.

Remarque: remplacez ENS3 par le nom de votre interface de réseau public.

Ensuite, permettez le port OpenVPN par défaut 1194 et OpenSSH avec la commande suivante:

UFW Autoriser 1194 / UDP UFW Autoriser OpenSSH 

Ensuite, rechargez le pare-feu UFW en utilisant la commande suivante:

UFW désactiver UFW Activer 

Étape 11 - Connectez OpenVPN du client

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

apt-get install openvpn -y 

Ensuite, vous devrez télécharger les fichiers de configuration du client OpenVPN du serveur OpenVPN 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:

Ven 21 février 15:39:18 2020 TCP / UDP: Préserver l'adresse distante récemment utilisée: [AF_INET] 69.87.218.145: 1194 ven 21 février 15:39:18 2020 Buffeurs de douille: r = [212992-> 212992] S = [212992-> 212992] ven février 21 15:39:18 2020 UDP Link local: (non lié) ven février février février 21 15:39:18 2020 Lien UDP Remote: [af_inet] 69.87.218.145: 1194 ven 21 février 15:39:18 2020 TLS: paquet initial de [af_inet] 69.87.218.145: 1194, sid = 6d27e1cb 524bd8cd ven 21 février 15:39:18 2020 Vérifier OK: profondeur = 1, CN = Easy-Rsa CA Fri 21 fév. serveur ven 21 février 15:39:18 2020 Chaire de contrôle: TLSV1.3, chiffre Tlsv1.3 TLS_AES_256_GCM_SHA384, 2048 Bit RSA ven 21 fév.87.218.145: 1194 ven 21 février 15:39:19 2020 Contrôle envoyé [Tecadmin-Server]: 'Push_Request' (Status = 1) ven février 21 15:39:19 2020 Push: Message de contrôle reçu: 'Push_reply, Redirect-Gateway Def1 , 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 'ven 21 fév modifié ven 21 février 15:39:19 2020 Options Importation: Options d'itinéraire Modifié 

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

ip a show tun0 

Sortir:

4: TUN0: MTU 1500 QDISC FQ_CODEL STAT CONNONNANT GROUPE DÉFAUT QLEN 100 LIEN / NONE INET 10.8.0.6 pairs 10.8.0.5/32 Scope Global Tun0 valid_lft Forever Preferred_lft Forever Inet6 Fe80 :: 7226: 57B1: F101: 313B / 64 LIEN SPOCE STABLE-PRIVACY VALID_LFT FORED PRIVRÉD_LFT FORED 

Vous pouvez également vérifier le journal OpenVPN Server pour vérifier l'état de la connexion:

tail -f / var / log / openvpn.enregistrer 

Vous devriez voir la sortie suivante:

Ven 21 février 15:39:18 2020 45.58.34.83: 37445 COMMANDE: TLSV1.3, chiffre Tlsv1.3 TLS_AES_256_GCM_SHA384, 2048 Bit RSA ven 21 février 15:39:18 2020 45.58.34.83: 37445 [Client] Connexion par les pairs initiée avec [AF_INET] 45.58.34.83: 37445 ven 21 février 15:39:18 2020 Client / 45.58.34.83: 37445 multi_sva: pool renvoyé ipv4 = 10.8.0.6, ipv6 = (non activé) ven 21 février 15:39:18 2020 Client / 45.58.34.83: 37445 Multi: Apprendre: 10.8.0.6 -> Client / 45.58.34.83: 37445 ven 21 février 15:39:18 2020 Client / 45.58.34.83: 37445 Multi: IP virtuel primaire pour le client / 45.58.34.83: 37445: 10.8.0.6 ven 21 février 15:39:19 2020 Client / 45.58.34.83: 37445 Push: Message de contrôle reçu: 'Push_request' ven 21 février 15:39:19 2020 Client / 45.58.34.83: 37445 Contrôle envoyé [Client]: 'Push_Reply, Redirect-Gateway Def1, 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 '(Status = 1) ven 21 février 15:39:19 2020 Client / 45.58.34.83: 37445 Channel de données: Utilisation du chiffre négocié 'AES-256-GCM' ven 21 février 15:39:19 2020 Client / 45.58.34.83: 37445 Channel de données sortant: Cipher 'AES-256-GCM' initialisé avec une clé de 256 bits ven 21 février 15:39:19 2020 Client / 45.58.34.83: 37445 Channel de données entrant: Cipher 'AES-256-GCM' 'Initialisé avec une clé de 256 bits 

Conclusion

Toutes nos félicitations! Vous avez installé et configuré le serveur et le client OpenVPN sur le serveur Debian 10. Vous pouvez désormais accéder à Internet en toute sécurité et protéger votre identité.