Configuration OpenVPN sur Ubuntu 18.04 Bionic Beaver Linux

Configuration OpenVPN sur Ubuntu 18.04 Bionic Beaver Linux

Objectif

Apprenez à installer et à configurer le serveur OpenVPN sur Ubuntu 18.04 castor bionique

Exigences

  • Autorisation

Conventions

  • # - nécessite que les commandes Linux soient exécutées avec des privilèges racine
    directement en tant qu'utilisateur racine ou en utilisant Sudo commande
  • $ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Autres versions de ce tutoriel

Ubuntu 20.04 (Focal Fossa)

Introduction

La technologie virtuelle des réseaux privés permet d'accéder aux réseaux privés sûrs en utilisant des réseaux moins sécurisés comme Internet. Les VPN sont généralement utilisés pour connecter des branches physiquement éloignées d'une organisation, ce qui les fait apparaître comme s'ils faisaient partie du même LAN (par exemple deux bureaux dans différentes villes). Le trafic entre les côtés de la connexion est chiffré à l'aide de tunnels, qui protège les données transmises et les informations de connexion elles-mêmes. Pour les mêmes caractéristiques, les VPN sont souvent utilisés pour contourner les restrictions gouvernementales et anonymiser le trafic Internet.

Dans ce tutoriel, nous verrons comment créer un serveur de réseau privé virtuel à l'aide d'OpenVPN, le logiciel VPN open source sur Ubuntu 18.04 castor bionique.

Étape 1 - Installation

Installation d'OpenVPN sur Ubuntu 18.04 est vraiment facile: le logiciel est disponible dans les référentiels par défaut. Nous devons également installer le Easy-RSA Package, qui nous aidera dans la création des certificats et des clés nécessaires:

$ sudo apt-get update && sudo apt-get install openvpn easy-rsa

Quelques secondes et le logiciel sera installé dans notre machine, prêt à être configuré.

Étape 2 - Configuration de l'infrastructure du serveur

Dans cette section, nous générerons les certificats et les clés nécessaires: nous allons d'abord créer notre coutume Californie (Autorité de certificat), alors nous générerons le serveur Certificat / paire de clés, le Diffie-hellman paramètres et le Clé TLS-AUTH.

Commençons par générer le répertoire qui contiendra les scripts qui feront le travail lourd pour nous. Nous dirigeons le faire du cadir commande, cela fait partie du Easy-RSA package, fournissant le nom du répertoire que nous voulons créer. Nous voulons également entrer dans le répertoire dès sa création:

Certificats de Make-Cadir et certificats CD

Dans ce cas, j'ai appelé le répertoire certificats. Ce sera notre répertoire de travail pour le reste du tutoriel, donc toutes les commandes mentionnées doivent être considérées comme lancés à l'intérieur.



Étape 2.1 - Configuration des variables

En tant que première chose, nous devons ajuster les variables qui seront utilisées pour définir les valeurs utilisées pendant la génération de l'autorité de certificat et le certificat / clé. Les variables sont définies à l'intérieur du varbac déposer:

export key_config = "$ easy_rsa / whatosenslcnf $ easy_rsa" export key_country = "us" export key_province = "ca" export key_city = "sanfrancisco" export key_org = "Fort-funston" export key_email = "me @ myhost.myDomain "export key_ou =" myorganizationalUnit " 

Une variable très importante est Key_config, qui, par défaut, est défini en appelant un petit script wrapper qui devrait récupérer la configuration SSL droite. Cependant, s'il est utilisé de cette façon, il génère une erreur, car le script ne récupère pas la configuration. Pour éviter cela, nous spécifions directement le fichier de configuration:

export key_config = "$ easy_rsa / openssl-1.0.0.CNF "

Les valeurs des autres variables doivent être modifiées et adaptées à vos besoins spécifiques. Une fois que nous avons fini de modifier le fichier, nous devons le «trouver» pour laisser les variables faire partie de notre environnement d'exécution:

$ Source Vars

Étape 2.2 - Génération du CA

Nous pouvons procéder et générer notre CA (Autorité de certificat). Exécuter le Nettoie tout et build-ca scripts dans l'ordre. La génération de CA commencera, en utilisant les valeurs des variables que nous avons définies dans le varbac Fichier comme par défaut pour les champs correspondants:

$ ./Nettoie tout && ./ build-ca

Étape 2.3 - Certificat et génération de clés

L'étape suivante est la génération du certificat et de la clé du serveur. Il s'agit simplement d'exécuter le script de serveur de clé de construction donnant le nom que nous voulons utiliser pour le certificat et la clé en tant que paramètre. Dans ce cas, nous utilisons «serveur» car c'est le nom par défaut utilisé dans le fichier de configuration VPN, comme nous le verrons plus loin dans le tutoriel:

$ ./ serveur de serveur de clé de construction

Suivez les instructions à l'écran. Le Mot de passe défier et Nom de l'entreprise Les champs sont facultatifs.

Étape 2.4 - Génération de paramètres Diffie-Hellman

La prochaine étape consiste à créer les paramètres diffie-hellman. Ces paramètres sont utilisés pour échanger des clés cryptographiques en utilisant un canal public et insécurité. Nous utilisons le build-dh scénario:

$ ./ build-dh

Le script prendra un certain temps pour générer les paramètres, selon la machine sur laquelle nous fonctionnons, soyez patient!

Étape 2.5 - Générez une clé aléatoire à utiliser comme secret partagé

Pour renforcer notre sécurité, en plus d'utiliser un certificat, nous générerons et utiliserons une clé pour utiliser un secret partagé. Le serveur et chaque client auront besoin d'une copie de cette clé:

$ openvpn --genkey - Secret Keys / TA.clé

Étape 2.6 - Copie des fichiers générés

L'autorité de certificat (CA.CRT), certificat (serveur.CRT), clé (serveur.clé), paramètres diffie-hellman (dh2048.pem) et tls-uut key (ta.clé), les fichiers auraient dû être générés à l'intérieur du clés annuaire. Maintenant, il est temps de les copier pour / etc / openvpn:

$ sudo cp touches / serveur.CRT, serveur.Key, CA.CRT, DH2048.pem, ta.clé / etc / openvpn

Étape 3 - Configuration OpenVPN

Nous pouvons procéder à la configuration du service OpenVPN. Une configuration d'échantillon (compressée) peut être trouvée à / usr / share / doc / openvpn / exemples / sampon-config-files / serveur.confli.gz: Nous avons juste besoin de l'extraire dans le répertoire / etc / openvpn:

$ gzip -d -c / usr / share / doc / openvpn / exemples / sampon-config-files / serveur.confli.gz | sudo tee / etc / openvpn / serveur.conf> / dev / null

Avec la commande ci-dessus, nous avons décompressé le fichier d'origine, envoyant sa sortie à STDOUT et le redirigeant via le / etc / openvpn / serveur.confli déposer. Vérifiez que les valeurs par défaut dans le fichier de configuration correspondent à celles que nous avons générées:

CA CA.serveur de certificat CRT.serveur clé CRT.Clé # Ce fichier doit être gardé secret dh dh2048.pem 


Étape 4 - Configurez le pare-feu et autorisez le transfert IP

Nous avons presque fini de configurer notre serveur VPN: maintenant nous devons configurer le pare-feu, afin d'autoriser le trafic entrant à partir du port 1194 / UDP (port et protocole par défaut):

$ sudo ufw autoriser OpenVPN

Très important: par défaut, seul le trafic entre le client et le serveur passe sur le tunnel VPN, cela exclut le trafic Internet. Pour modifier ce comportement, nous devons d'abord décrocher l'option en ligne 192 du fichier de configuration du serveur (/ etc / openvpn / serveur.confli):

Poussez "redirection-gate def1 bypass-dhcp" 

Ensuite, nous devons utiliser une règle iptable pour nat le client VPN via Internet. Notez que j'ai spécifié le ETH0 interface mais vous devez adapter la règle à l'interface utilisée sur votre machine:

$ sudo iptables -t nat -a postrouting -s 10.8.0.0/24 -o eth0 -j mascarade

Définir cette façon, cependant, la règle ne persistera pas un redémarrage. Pour le rendre persistant, nous devons l'ajouter / etc / ufw / avant.règles déposer. Ce fichier contient des règles appliquées par UFW avant celles définies à partir de la ligne de commande. Ajoutez la règle comme la première dans le fichier:

* Nat: Postrouting accepte [0: 0] -a Postrouting -S 10.8.0.0/8 -o eth0 -j Masquerade Commit 

Maintenant, nous devons activer le transfert de paquets. Nous devons d'abord modifier le / etc / sysctl.FICH DE CONFI 28:

# Décommente la ligne suivante pour permettre le transfert de paquets pour IPv4 net.ipv4.ip_forward = 1 

À ce stade, nous devons recharger la configuration:

$ sudo sysctl -p / etc / sysctl.confli

Nous devons encore permettre le transfert de paquets via le pare-feu UFW. Ouvrir / etc / par défaut / ufw et changer Default_forward_policy depuis GOUTTE pour ACCEPTER:

# Définissez la stratégie de par défaut pour accepter, supprimer ou rejeter. Veuillez noter que # Si vous modifiez cela, vous voudrez très probablement ajuster vos règles default_forward_policy = "accepter" 

Enfin, rechargez le pare-feu:

$ sudo ufw rechargement

Étape 5 - Démarrez le service

Nous utiliserons maintenant SystemCTL pour démarrer le serveur, passant la variable contenant le nom de notre fichier de configuration à l'unité de service. En utilisant SystemD, nous pouvons le faire en préfixant la valeur avec le @ symbole. Par exemple:

$ sudo systemctl start openvpn @ server

À ce stade, le serveur doit être opérationnel. Vérifiez-le en fonctionnant

$ sudo systemctl est-actif openvpn @ serveur

La commande doit retourner «actif».



Étape 6 - Configuration du client

Pour chaque client que nous voulons utiliser, nous devons générer une paire de certificat / clé, tout comme nous l'avons fait ci-dessus pour le serveur:

$ Source Vars && ./ Client de la clé de construction

Nous avons maintenant deux options: nous pouvons soit copier les fichiers nécessaires à notre client, soit générer un .OVPN fichier, dans lequel le contenu de ces fichiers est intégré. Nous nous concentrerons sur la deuxième option.

Tout comme nous avons fait le côté du serveur, nous prendrons un exemple de configuration comme point de départ. Créons un répertoire dédié et copiez le modèle:

$ MKDIR CLIENTS && cp / usr / share / doc / openvpn / exemples / sampon-config-files / client.CLIENTS / CLIENT CONFI.OVPN

Suivez les sections très bien commentées du fichier et adaptez les options à celles définies dans la configuration du serveur (dans notre cas, c'est déjà fait). Définissez l'IP et le port du serveur en modifiant le paramètre (ligne 42):

My-Server-1 1194 éloigné 

Où «mon serveur» doit être remplacé par l'IP du serveur et le port doit être modifié s'il ne l'utilise pas le par défaut. Ensuite, décalmente les lignes suivantes (61,62):

# Downgrade Privilèges après initialisation (non-windows uniquement); utilisateur personne; groupe Nogroup 

Maintenant, nous remplacerons les références à CA, certificat, clé, paramètres DH et clé TLS-AUTH avec le contenu réel des fichiers: de cette façon, nous créerons une configuration intégrée et facilement exportable. Premiers commentaires références (lignes 88-90 et 108)

#ca ca.Client CRT #CERT.Client CRT #Key.Clé # TLS-AUTH TA.clé 1

Ensuite, copiez le contenu des fichiers mentionnés, entre les balises appropriées. Le contenu de l'autorité de certificat doit être inclus entre les balises, le contenu du fichier de certificat à l'intérieur et la clé entre . À titre d'exemple, considérez le CA:

 # Voici le contenu du CA.fichier CRT  

Pour la clé TLS-AUTH, nous le ferions à la place:

Direction de clé 1 # Le contenu de la TA.fichier clé  

Enfin, importez simplement le fichier dans votre application client et vous devriez être prêt à partir.

Exemple de connexion Android

Pour se connecter à notre serveur OpenVPN depuis Android, nous utiliserons l'application OpenVPN officielle: OpenVPN Connect. Une fois installé et lancé, le menu suivant apparaît:

Menu d'application Android OpenVPN



Appuyez sur, le dernier élément, Profil OVPN

À partir du sélecteur de fichiers, accédez à l'endroit où vous avez stocké le .Fichier OVPN, et sélectionnez-le, puis appuyez sur «Importer» dans le coin supérieur droit. Le profil aurait dû être importé correctement:

Android OpenVPN App importation
Maintenant, comme avant, appuyez sur Add, et sur l'écran suivant, activez la connexion:

Application Android OpenVPN connectée
Succès!

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Ubuntu 20.04 astuces et choses que vous ne savez peut-être pas
  • Comment configurer un serveur OpenVPN sur Ubuntu 20.04
  • Ubuntu de base 22.04 Configuration de la connexion client / serveur OpenVPN
  • Ubuntu 20.04 Guide
  • Ubuntu 20.04 Hadoop
  • Les 8 meilleurs environnements de bureau Ubuntu (20.04 FOCAL FOSSA…
  • Liste des clients FTP et installation sur Ubuntu 20.04 Linux…
  • Managers de réseau Linux GUI