Passer au contenu principal

Installer et configurer OpenVPN sur Debian 8



OpenVPN est un progiciel qui vous permet de protéger le trafic des utilisateurs de «l’interception» en fournissant une transmission de données cryptées du périphérique du client au serveur sur lequel OpenVPN est installé. Idéal pour l'utilisation de points d'accès Wi-Fi publics où les informations peuvent être interceptées par des tiers. Ou dans le cas où votre adresse IP est bloquée sur un certain site et que vous devez contourner cette restriction en toute sécurité.



Outre l'installation et la configuration d'OpenVPN sur le serveur, vous devez pouvoir configurer le client pour l'accès depuis un ordinateur sur lequel Windows sera utilisé comme système d'exploitation.

En utilisant le gestionnaire de paquets standard, installez openvpn.

  # aptitude install openvpn 

Contenu de l'article:

Création de certificats

OpenVPN nécessite nécessairement la génération de certificats pour le serveur et les clients. C'est logique, car la connexion du client au serveur doit être cryptée.



Accédez au dossier openvpn:

  # cd / etc / openvpn 

Nous allons générer des clés en utilisant easy-rsa.

Créez un dossier avec des fichiers de configuration et des liens vers des scripts de génération de certificat:


  # make-cadir rsa
 # cd rsa 

Ouvrez le fichier de configuration vars et modifiez les paramètres:

  export KEY_COUNTRY = "US"
 export KEY_PROVINCE = "CA"
 export KEY_CITY = "SanFrancisco"
 export KEY_ORG = "Fort-Funston"
 export KEY_EMAIL = "me@myhost.mydomain"

KEY_COUNTRY - entrez le code du pays (RU, UA, etc.);
KEY_PROVINCE - cet élément n'est pas pertinent si vous n'habitez pas aux États-Unis. :) Vous pouvez remplacer le XX;
KEY_CITY - votre ville où vous habitez;
KEY_EMAIL - votre adresse email.

Et décommentez également la ligne d'exportation KEY_CN, pour la valeur pour laquelle spécifiez le nom du serveur:

  export KEY_CN = "exemple.com" 

Toutes les variables sont renseignées en latin.

Enregistrez le fichier et exécutez-le:

  #  vars 

Puis commencez à supprimer les anciens certificats:

  # ./clean-all 

Créez un certificat racine:

  # ./build-ca 

Si, lors de la génération du certificat racine, vous obtenez l'erreur suivante error:0E065068:configuration file routines:STR_COPY:variable has no value:conf_def.c:618:line 198 , ajoutez la ligne au fichier vars :

  export KEY_ALTNAMES = "quelque chose" 

Et puis relancez les commandes précédentes: vars, ./clean- all, ./build-ca.

L'étape suivante consiste à créer une clé et un certificat de serveur.

  # ./build-key-server server 

Créez ensuite un certificat et une clé pour le client:

  # ./build -key client 

Remarque: pour chaque client, vous devez générer votre propre certificat et votre clé. Il vous suffit de spécifier des noms différents (au lieu du client) et de modifier leurs chemins d'accès dans les fichiers de configuration. Dans le même temps, vous pouvez protéger les clés des clients avec un mot de passe, utilisez pour cela la commande build-key-pass au lieu de build-key.

Ensuite, vous devez créer une clé Diffie-Hellman pour pouvoir utiliser le secret de transfert:

  # ./build-dh 

Et la clé pour l'authentification tls:

  # openvpn --genkey --secret /etc/openvpn/ta.key 

Vous devez maintenant copier les certificats de serveur et les clés dans le dossier de paramètres OpenVPN:

  # cp clés / clés ca.crt / clés serveur.crt / clés serveur.key / dh2048.pem / etc / openvpn / 

Et mettez aussi sur eux les droits qui permettent de lire et de changer uniquement pour leur propriétaire.

  # chmod 0600 /etc/openvpn/ca.crt /etc/openvpn/server.crt /etc/openvpn/server.key 

Veillez à copier sur votre ordinateur, par exemple, le bureau, à partir du dossier des clés , les clés nécessaires à la connexion du client: client.crt , client.key , ca.crt , ta.key .

Ceci termine le processus de préparation du certificat.

Configuration du serveur

Dans le répertoire / usr / share / doc / openvpn /, vous trouverez un exemple de fichier permettant de configurer un serveur Openvpn. Copiez-le dans le répertoire / etc / openvpn / et décompressez:

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

Nous allons maintenant examiner les paramètres nécessaires pour que openvpn fonctionne.

Le port sur lequel Openvpn acceptera les connexions. Par défaut, 1194. Je recommande de le changer afin de le masquer. Vous pouvez même dissimuler openvpn sous un serveur Web en spécifiant le port 80.

  port 20100 

Enregistrez les chemins d'accès aux fichiers de certificat et à la clé du serveur.

  ca ca.crt
 cert serveur.crt
 clé server.key 

Le chemin de la clé Diffie-Hellman.

  dh dh2048.pem 

Les deux chemins relatifs au répertoire / etc / openvpn (si les fichiers s'y trouvent) et absolu peuvent être spécifiés.

Trouvez et décommentez la ligne:

  appuyez sur "redirect-gateway def1 bypass-dhcp" 

Il est nécessaire pour pouvoir accéder à Internet via le serveur OpenVPN. Si ce n'est pas le cas, seuls les ordinateurs du réseau seront disponibles.

Vous devez également spécifier les serveurs DNS pour la connexion des clients.

  push "dhcp-option DNS 213.183.57.55"
 push "dhcp-option DNS 87.98.175.85" 

Selon l'emplacement du serveur, vous pouvez sélectionner d'autres serveurs DNS, par exemple sur le projet OpenNIC .

Ensuite, recherchez et décommentez le paramètre tls-auth.

  tls-auth ta.key 0 

Attention! Dans les paramètres du client, le dernier chiffre de ce paramètre doit être remplacé par 1 - tls-auth ta.key 1 .

Juste en dessous dans le fichier de configuration suit la liste des chiffrements disponibles. Décommentez le chiffrement AES-128-CBC .

  Chiffre AES-128-CBC # AES 

Si nécessaire, il peut être remplacé par AES-256-CBC . Dans le fichier de configuration du client, le chiffre doit être identique à celui du serveur.

Ajoutez également le paramètre auth. Par défaut, les clés sha1 de 160 bits sont utilisées pour l'authentification, mais l'algorithme sha1 est considéré comme vulnérable. Lors de la spécification du paramètre suivant, les clés SHA512 d'une longueur de 512 bits seront utilisées.

  auth SHA512 

Ainsi que le paramètre tls-version-min, qui détermine la version de tls utilisée. Dans ce cas, la dernière version est la 1.2. Attention! Network Manager ne prend pas en charge (au moment de l'écriture) ce paramètre. Par conséquent, si vous envisagez de vous connecter au serveur VPN via Network Manager, ce paramètre n'est PAS spécifié dans les paramètres du serveur.

  tls-version-min 1.2 

OpenVPN ne doit pas être exécuté en tant que root. Par conséquent, décommentez les lignes:

  utilisateur personne
 groupe de groupe 

Il ne sera pas superflu d'activer les journaux pour OpenVPN. En particulier, lors de la première utilisation après le réglage pour la recherche d’erreurs, etc.

  log /var/log/openvpn.log 

Laissez tous les autres paramètres du fichier de configuration /etc/openvpn/server.conf avec les valeurs par défaut. Ceci termine la configuration du serveur OpenVPN.

Activez openvpn avec la commande:

  # systemctl enable openvpn 

Et redémarrer:

  # service openvpn restart 

Il est également utile de rechercher des erreurs dans le journal.

Rediriger le trafic via OpenVPN

Pour pouvoir accéder à Internet via le serveur openvpn, vous devez faire quelque chose pour cela.

1. Configurez sysctl

Dans la console, lancez la commande:

  # sysctl net.ipv4.ip_forward 

Si le résultat de la commande est égal à net.ipv4.ip_forward = 1 , il n'est pas nécessaire de changer quoi que ce soit. Si la valeur de la variable est 0, la ligne suivante doit être ajoutée au fichier /etc/sysctl.conf :

  net.ipv4.ip_forward = 1 

Et rechargez les règles avec la commande:

  # sysctl -p 

2. Configurez iptables

Vous pouvez également exécuter les commandes suivantes dans la console:

  # iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED, RELATED -j ACCEPT
 # iptables -A FORWARD -s 10.8.0.0/24 -o eth0 -j ACCEPTER
 # iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 

Ainsi, nous autoriserons le trafic via le serveur OpenVPN pour le sous-réseau 10.8.0.0 dans les limites des connexions déjà établies.

Si le client openvpn doit attribuer une adresse IP externe spécifique du serveur, alors, au lieu de la dernière commande de la liste des précédentes pour iptables, vous devez exécuter ceci:

  -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 127.0.0.1 

Où, après le paramètre –to-source, vous devez spécifier le serveur IP externe.

Client OpenVPN sous Windows

Mise en route de la configuration d’un client Openvpn sous Windows. Tout est simple ici: téléchargez le client depuis le site officiel, installez-le, créez le fichier de configuration et lancez-le.

Il est à noter qu'il est nécessaire de lancer openvpn sous Windows avec les droits de l'administrateur si le contrôle des comptes est actif.

Si vous n'avez pas modifié le chemin d'installation, les exemples de fichiers de configuration sur votre PC se trouvent dans le répertoire C: \ Program Files \ OpenVPN \ sample-config . Copiez le fichier client.ovpn à partir d’ici et placez-le dans le répertoire C: \ Program Files \ OpenVPN \ config .

Rappelez-vous les certificats créés pour le client? Ils doivent également être téléchargés à partir du serveur et copiés dans ce répertoire.

Ouvrez le fichier de configuration client.ovpn et recherchez le paramètre distant my-server-1 1194 . Au lieu de my-server, spécifiez l'adresse IP ou le nom de domaine de votre serveur. Puis le port que nous avons changé plus tôt. En conséquence, la ligne peut ressembler à ceci:

  192.168.0.1 à distance 20100 

Ensuite, vous devez spécifier le chemin d'accès aux certificats que vous avez générés sur le serveur. Pour chaque client, une clé est créée avec un nom unique, qui doit être indiqué ci-dessous, au lieu de client .

  ca ca.crt
 cert client.crt
 clé client.key 

Vous devez également supprimer le commentaire du paramètre qui spécifie le chemin d'accès à la clé tls.

  tls-auth ta.key 1 

Auparavant, il était déjà indiqué que le dernier chiffre sur le serveur devait être 0, sur le client - 1.

Et les derniers paramètres sont les chiffrements que vous avez installés sur le serveur.

  Chiffre AES-128-CBC
 auth SHA512
 tls-version-min 1.2 

C'est tout ce qui est nécessaire pour configurer le client. Essayez d’exécuter le client OpenVPN et connectez-vous à votre serveur. Les informations de connexion nécessaires seront affichées dans la fenêtre openvpn gui.

OpenVPN avec NetworkManager

Installez l'interface graphique pour le gestionnaire de réseau.

  # aptitude install network-manager-openvpn-gnome 

Et redémarrer.

  # redémarrage du gestionnaire de réseau de service 

Nous copions les certificats générés pour le client dans un dossier arbitraire sur l'ordinateur. Par exemple, dans /home/user/.openvpn/.

Cliquez avec le bouton droit de la souris sur l'icône du gestionnaire de réseau, sélectionnez l'élément «modifier les connexions», ajoutez une nouvelle connexion du type «OpenVPN».

добавить новое подключение network manager

Spécifiez:

  • Nom de la connexion
  • Passerelle (adresse IP du domaine ou du serveur)
  • Type: Certificats

Le certificat d'utilisateur est un certificat que nous avons généré au début pour le client (client.crt).
Certificat CA - fichier ca.crt.
La clé privée est la clé du client (client.key).

openvpn новое соединение

Cliquez sur le bouton "Avancé". Dans la fenêtre qui s'ouvre, dans l'onglet "Général", vous devrez modifier quelques éléments.

  • Utilisez un autre port de passerelle (si vous avez spécifié un non standard lors de la configuration du serveur)
  • Utiliser la compression lzo

Passez à l'onglet "Sécurité". Sélectionnez le chiffre, comme dans les paramètres du serveur. En tant que valeur du paramètre d'authentification hmac, vous devez spécifier un algorithme, comme dans la valeur d'authentification du serveur. Dans l'article, nous avons choisi SHA512.

Ouvrez l'onglet Authentification TLS et cochez les éléments suivants:

  • Vérifier le pair ...
  • Utiliser une authentification TLS supplémentaire

Pour le dernier paramètre, spécifiez le chemin d'accès au fichier ta.key et sélectionnez 1. comme direction de la clé dans la liste déroulante, de la même manière que le fichier de configuration pour Windows.

Enregistrez la connexion et essayez de vous connecter. :)

Juste au cas où, nous cherchons que NM écrit lors de la connexion au journal système:

  # tail -f / var / log / syslog 


Comment évaluez-vous l'article?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 ( 7 évaluations moyenne de 5.00 sur 5)
Chargement ...

” 14 Commentaires “ Installer et configurer OpenVPN sur Debian 8

  1. Un auteur comme celui que je n'ai pas essayé de déboguer pour comprendre pourquoi mes clients ne peuvent pas se connecter, openvpn ne crée pas de journaux! dis moi quoi faire!

    1. Vous devez donc consulter les journaux des clients. OpenVPN GUI tel journal conduit nécessairement. Clic droit -> afficher le journal.

      Peut-être qu'il manque un élément dans les instructions ...

  2. Merci, mais il s'est avéré qu'il était nécessaire de le faire #openvpn /opt/vp/vp.conf et que l'application a branché le fichier de configuration - les journaux sont allés - j'ai tout examiné et j'ai transformé le vpn en travailleur.

    Un auteur de manuel conscient vous le demande. Comment faire un tunnel entre le serveur sur Debian et Mikrotikom. Connecter leur réseau local. 2 appartements.

    1. Sur mon smartphone Android, j'utilise le client officiel du développeur Openvpn - "Openvpn connect" https://play.google.com/store/apps/details?id=net.openvpn.openvpn

      C'est assez facile à mettre en place. Les fichiers générés pour le client doivent être téléchargés dans n’importe quel dossier du lecteur flash du téléphone. Ensuite, lancez Openvpn Connect, sélectionnez «Importer» dans le menu, puis «Importer le profil depuis la carte SD». Le gestionnaire de fichiers s'ouvre. Si vous devez sélectionner le fichier * .ovpn, cliquez sur le bouton "Sélectionner". En confirmation de l'importation réussie, le message «Profil importé» s'affiche à l'écran.

      Pour vous connecter, appuyez sur le bouton "Connecter". C'est tout. :)

      Je ne connais pas d'autres clients, mais celui-ci fonctionne très bien.

      PS Si vous prévoyez de vous connecter simultanément à partir d’un ordinateur et d’un téléphone, vous devez générer pour ce dernier votre clé et votre certificat.

  3. upd.
    La Clause 2 a décidé d’installer les droits sur la clé client.key (apparemment, elle a été négligée d’abord). + il était nécessaire de définir explicitement le type de connexion TCP et de spécifier le type d'adaptateur - TAP / TUN

  4. J'ai tout mis en place conformément aux instructions, mais il y a un tel problème:
    Le client se connecte au serveur, mais il n’ya pas d’Internet. Le client envoie une requête ping au serveur VPN 10.8.0.1 et à l'adresse IP du serveur dédié. À partir du serveur lui-même, les sites externes répondent sans problème. Il s'avère que le chien est enterré quelque part dans les IPtables et ip.frwarding. Des pensées? Est-ce que cela peut rapidement conseiller que de s'occuper de cette forêt?

    1. Il est nécessaire de prescrire d'autres règles de routage
      iptables -t nat -A POSTROUTING -o venet0 -j SNAT —to IP_ADDRESS_Your_SERVER
      iptables -A FORWARD -i venet0 -o tun0 -m état - état RELATED, ESTABLISHED -j ACCEPT
      iptables -A FORWARD -i tun0 -o venet0 -j ACCEPTER

Ajouter un commentaire

Votre email ne sera pas publié.