nouvelles
Serverspace Technologies aux Emirats Arabes Unis : Lancement de Falconcloud
WB
14 mai 2020
Mise à jour août 1, 2023

Configuration OpenVPN on Ubuntu

Linux Réseaux Ubuntu VPN

On considère que les réseaux publics (ouverts) ne sont pas sécurisés au niveau nécessaire. Il existe des risques potentiels de capture (interception) de trafic par des utilisateurs malveillants dans ces réseaux —
dans un café, une gare ferroviaire ou routière, un centre commercial, etc. Le trafic capturé pourrait devenir une source d'informations pour le piratage de comptes, le vol de données confidentielles, d'autres problèmes de sécurité critiques.

VPN (réseau privé virtuel) est une méthode pour organiser un réseau privé (personnel) qui envoie des données cryptées sur des réseaux publics.

Les clients et les organisations ordinaires (quelle que soit leur forme ou leur taille) utilisent VPN régulièrement.

Certains utilisateurs sont simplement autorisés à accéder à un réseau privé (utilisant divers types d'authentifications) avec un cryptage de connexion obligatoire, ce qui, dans la plupart des cas, rend l'interception de trafic insensée pour accéder à des données précieuses (utiles).

En général, le fonctionnement d'un réseau privé dépend d'une implémentation particulière.

La cliLe modèle ent-server s'applique plus souvent lorsque la communication entre les nœuds du réseau est assurée par VPN serveur. Un serveur peut être représenté en tant qu'hôte physique \ virtuel exécutant le système d'exploitation du serveur (le système d'exploitation de bureau est un choix) et en tant que périphériques réseau spécialisés avec la capacité de VPN .

Modes de communication accessibles : interaction point à point (l'hôte communique avec un seul hôte) ou regroupement de sous-réseaux entiers pour en déployer un plus grand (avec des modifications de routage complexes).
OpenVPN est largement utilisé VPN l'implémentation et le nom du protocole.

C'est un logiciel multiplateforme fonctionnant sur de nombreux systèmes d'exploitation.

La licence GNU GPL permet une utilisation par des organisations commerciales.

La publication vise à démontrer une installation et une configuration simples OpenVPN sur l'hôte avec Ubuntu en utilisant parammètres suffisants pour une utilisation en toute sécurité.



Quelques explicationsnations avant de continuer

OpenVPN s'appuie fortement sur un travail PKI correct - son objectif principal est de produire des clés et de délivrer\signer\révoquer des certificats. Pour simplifier ces processus, le script "easyrsa" s'il est souvent appliqué - c'est l'approche pour préparer l'autorité de certification (CA).

Il est supposé que le cryptage est en mode asymétrique où les clés privées (pour le cryptage des paquets transmis) et publiques (pour le décryptage) sont placées sur chaque hôte.

Les hôtes se reconnaissent (s'authentifient) mutuellement avant d'interagir. Des preuves de sens doivent être fournies pour confirmer que chaque hôte est autorisé à communiquer. Le partage de clés publiques permet d'assurer la reconnaissance.

Cette méthode suppose également qu'un seul hôte doit recevoir la clé publique de tous les hôtes résidant sur le réseau pour l'authentification (plus l'échange de paquets sécurisés bien sûr).

Imaginez simplement un très grand réseau avec des centaines d'hôtes et apparemment assez difficile à maintenir l'échange de clés publiques (en tenant compte - une fausse clé peut être fournie par un utilisateur malveillant).
Au lieu de cela, CA, en tant qu'autre partie, participe à l'interaction là où d'autres hôtes lui font confiance.

Le rôle de CA est de gérer les demandes de certificats - son objectif est de traiter la demande d'émission de certificat pour chaque clé publique. Le traitement signifie que l'autorité de certification émet et chante le certificat de l'hôte en appliquant son propre certificat. Les hôtes obtiennent le certificat de l'autorité de certification avec la configuration - c'est pourquoi ils lui font confiance.

Basé sur l'explicationnations au-dessus de ces entités sont nécessaires :

  1. la clé privée et le certificat de l'AC ;
  2. Clé du serveur, certificat d'une clé publique signé par l'AC ;
  3. Cliclé de l'ent, certificat d'une clé publique signé par l'AC ;
  4. Fichier séparé généré en conséquence avec le protocole Diffie-Hellman. L'application d'un tel fichier rend difficile pour un intrus de déchiffrer les paquets qu'il a réussi à intercepter en compromettant la clé privée ;
  5. Clé HMAC spéciale comme option de sécurité avancée. Son but est la protection contre divers types d'attaques.

Installation

Façon de OpenVPN installation :

  1. À partir du code source ;
  2. Du Ubuntu dépôt;
  3. À partir du référentiel des développeurs (Community Edition).

Il est recommandé de mettre à jour le logiciel à l'aide du gestionnaire de packages. Par conséquent, l'installation à partir du code source n'est pas le meilleur choix.

Ubuntu il manque une nouvelle version du logiciel dans le référentiel.

OpenVPN les développeurs maintiennent un référentiel dédié avec de nouvelles versions et mises à jour, le considérant donc comme plus approprié.

Ajout du référentiel des développeurs (toutes les commandes sont exécutées par root) :

    1. Importer la clé GPG :
curl -fsSL https://swupdate.openvpn.net/repos/repo-public.gpg | gpg --dearmor -o /usr/share/keyrings/openvpn-public.gpg
    1. Placez une nouvelle source pour le gestionnaire de packages apt :
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/openvpn-public.gpg] https://build.openvpn.net/debian/openvpn/stable jammy main" > /etc/apt/sources.list.d/openvpn-repo.list
    1. Installez les logiciels avec leurs dépendances :
apt update && apt install easy-rsa openvpn

Préparation CA

    1. Créez un sous-répertoire avec le contenu CA associé :
make-cadir /etc/openvpn/ca && cd /etc/openvpn/ca && ./easy-rsa init-pki

Par la suite, les clés privées « .key » apparaissent dans le répertoire « pki/private », les certificats émis « .crt » dans « pki/issued ».

    1. Avant de commencer, le script "easyrsa" lit le fichier nommé "vars" - il stocke les noms des variables nécessaires avec ses valeurs par défaut. Vous êtes libre de modifier les valeurs en décommentant au préalable l'entrée correspondante.

Exemple de modif :
variables in vars file

La variable EASYRSA_CA_EXPIRE définit le nombre de jours de validité de la clé CA — la valeur par défaut est 3650 jours (ou 10 ans). Indiquez ici une nouvelle valeur si nécessaire.

De même, EASYRSA_CERT_EXPIRE définit la période de validité du certificat CA.

Le fichier contient également des explicationsnations pour chaque variable sous forme de commentaires.

    1. Obtenez la clé privée et le certificat CA générés :
./easy-rsa build-ca

Recommandation importante : définissez une phrase de passe complexe lorsque la demande appropriée apparaît — la phrase de passe rend difficile l'utilisation de la clé lorsqu'elle est compromise.

"Nom commun" - appuyez sur Entrée (signifie continuer avec suggéré entre crochets) ou indiquez le nom souhaité.

Résultat de l'exécution du script — clé CA privée enregistrée sous « ca.key », certificat CA — « ca.crt ». N'envoyez jamais la clé à qui que ce soit, conservez-la en lieu sûr !

    1. Générez le fichier Diffie-Hellman (ce processus peut prendre deux ou trois minutes) :
./easyrsa gen-dh
    1. Générer la clé HMAC :
openvpn --genkey secret pki/ta.key

Clé et certificat pour le serveur

    1. Générer la clé privée :
./easyrsa gen-req serverspace nopass

"nopass" permet d'obtenir une clé sans mot de passe. Sinon, systemd demandera une phrase de passe avant chaque démarrage de service. Ne tapez pas "nopass" au cas où votre politique de sécurité exigerait une phrase de passe.

Indiquez le nom souhaité une fois que la demande "Nom commun" apparaît, par exemple, Serverspace.

Résultat — clé privée "serverspace.key", demande d'émission de certificat "serverspace.req".

    1. Délivrez et signez le certificat :
./easyrsa sign-req server serverspace

Avant de signer, le système demande la confirmation des données fournies "Confirmer les détails de la demande :" — confirmez-le avec le mot "oui", juste après — fournissez la phrase de passe pour la clé privée de l'AC.
Résultat — certificat "serverspace.crt ».

    1. Combinez les fichiers dans un répertoire :
cp pki/private/serverspace.key pki/issued/serverspace.crt pki/dh.pem pki/ca.crt pki/ta.key /etc/openvpn/server/

Préparation de la configuration du serveur

Créer un nouveau fichier /etc/openvpn/server/server.conf et placez-y :

port 1194
proto udp
dev tun
mode server
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
server 172.16.61.0 255.255.255.0
push "redirect gateway def1"
push "dhcp-option DNS 8.8.8.8"
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
log-append openvpn.log

Le port part par défaut - 1194, trafic udp (tcp peut être utilisé dans des situations spécifiques), sous-réseau et DNS sont définis, la compression est activée.
Il y a d'autres paramDes filtres sont disponibles — leur utilisation dépend des termes de la tâche.

Accueil OpenVPN serveur

    1. Activez et démarrez le service systemd :
systemctl enable openvpn-server@server.service --now

Juste après le démarrage, une interface réseau supplémentaire "tun0" doit apparaître. Commande "ip a | grep tun0" peut vérifier si c'est le cas. Si « tun0 » est activé, le service fonctionne correctement.[/code]

    1. Autoriser l'envoi de paquets entre les interfaces :
sysctl -w net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
sysctl -p
    1. Ajouter une nouvelle entrée dans IPTables à employer NAT:
iptables -t nat -A POSTROUTING -s 172.16.61.0/24 -o enp0s5 -j MASQUERADE

Indiquez le nom de l'interface censée recevoir cliconnexions ent au lieu de enp0s5.
Cette entrée disparaîtra après le redémarrage du système d'exploitation.
Pour l'obtenir, un petit exécutable persistant peut être démarré juste après la mise en place du réseau. Créez un fichier nommé 50-ifup dans /etc/networkd-dispatcher/routable.d/ et ajoutez :

#!/usr/bin/env bash
if [[ "$IFACE" == "enp0s5" ]];
then
iptables -t nat -A POSTROUTING -s 172.16.61.0/24 -o enp0s5 -j MASQUERADE
fi

Rendre le fichier 50-ifup exécutable (autorisations 755).

Cliclé et certificat de l'ent

    1. Générer une clé pour un client :
./easy-rsa gen-req myclient1
    1. Délivrez et signez le certificat :
./easyrsa sign-req myclient1

Le script demandera une confirmation - tapez "oui" pour confirmer, après cela, fournissez également la phrase de passe pour la clé privée de l'autorité de certification.
Nouveauté clicertificat d'ent - "monclient1.crt", clé — "monclient1.key ».

Les fichiers mentionnés ci-dessous sont nécessaires sur un appareil où cliconnexion ent est censée être créée :

  • ca.crt;
  • myclient1.key ;
  • myclient1.crt;
  • ta.clé.



Voter:
4 sur 5
Note moyenne : 4.2
Noté par : 5
1101 CT Amsterdam Pays-Bas, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300
Nous utilisons des cookies pour rendre votre expérience sur le Serverspace meilleur. En poursuivant votre navigation sur notre site, vous acceptez nos
Utilisation des cookies ainsi que Politique de confidentialité.