logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:reseau:openvpn [30/12/2012 07:04]
smolski [Configuration]
doc:reseau:openvpn [13/03/2021 11:40] (Version actuelle)
vv222 [OpenVPN : client et serveur VPN] Visibilité de l’avertissement d’obsolescence
Ligne 1: Ligne 1:
-====== ​ OpenVPN ======+====== ​ OpenVPN ​: client et serveur VPN ======
  
 +  * Objet : Installer et configurer intégralement OpenVPN
 +  * Niveau requis : {{tag>​débutant avisé}}
 +  * Commentaires : // Mise en place d'un serveur VPN et de son client. //
 +  * Débutant, à savoir (//pour le moins...//) : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
 +  * Suivi : {{tag>​obsolète}} ​
 +    * Création par [[user>​TechDesk]] le 30/12/2012
 +    * Testé par ... le ...
 +  * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=6350|ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
 +
 +<note important>​
 +Un guide plus récent basé sur celui-ci est à privilégier : [[doc:​reseau:​vpn:​openvpn|OPENVPN Serveur et Client]]
 +</​note>​
 ===== Présentation ===== ===== Présentation =====
  
Ligne 15: Ligne 27:
  
 On commence par installer OpenVPN à partir des dépôts officiels : On commence par installer OpenVPN à partir des dépôts officiels :
-<​code ​bash> +<​code ​root>apt-get update && apt-get ​install openvpn
-aptitude ​install openvpn+
 </​code>​ </​code>​
  
 On copie ensuite les fichiers de configurations : On copie ensuite les fichiers de configurations :
-<​code ​bash> +<​code ​root>mkdir /​etc/​openvpn/​keys</code> 
-mkdir /​etc/​openvpn/​easy-rsa+<code root>cp -r /​usr/​share/​easy-rsa/​ /​etc/​openvpn</code> 
-cp -r /usr/share/​doc/​openvpn/​examples/easy-rsa/2.0/* /​etc/​openvpn/​easy-rsa/ +<code root>chown -R $USER /​etc/​openvpn/​easy-rsa/</​code>​
-chown -R $USER /​etc/​openvpn/​easy-rsa/​ +
-</​code>​+
  
 ==== Configuration ==== ==== Configuration ====
Ligne 30: Ligne 39:
 À l'aide des scripts installés dans le répertoire **/​etc/​openvpn/​easy-rsa/​** nous allons configurer OpenVPN pour utiliser une authentification par clés et certificats. À l'aide des scripts installés dans le répertoire **/​etc/​openvpn/​easy-rsa/​** nous allons configurer OpenVPN pour utiliser une authentification par clés et certificats.
  
-On commence par éditer(([[manuel:nano]])) le fichier ​**/​etc/​openvpn/​easy-rsa/​vars** :+On commence par éditer(([[:​doc:​editeurs:nano]])) le fichier ​''​/​etc/​openvpn/​easy-rsa/​vars'' ​:
 <code bash> <code bash>
 export KEY_COUNTRY="​FR"​ export KEY_COUNTRY="​FR"​
Ligne 40: Ligne 49:
  
 Ensuite on lance la séquence suivante qui va générer les **clés (.key)** et les **certificats (.crt)** : Ensuite on lance la séquence suivante qui va générer les **clés (.key)** et les **certificats (.crt)** :
-<​code ​bash>+<​code ​root>
 cd /​etc/​openvpn/​easy-rsa/​ cd /​etc/​openvpn/​easy-rsa/​
 source vars source vars
Ligne 51: Ligne 60:
  
 On copie ensuite les clés et les certificats utiles pour le serveur dans le répertoire **/​etc/​openvpn/​** : On copie ensuite les clés et les certificats utiles pour le serveur dans le répertoire **/​etc/​openvpn/​** :
-<​code ​bash+<​code ​root
-cp keys/ca.crt keys/ta.key keys/​server.crt keys/​server.key keys/dh1024.pem /​etc/​openvpn/​+cp keys/ca.crt keys/ta.key keys/​server.crt keys/​server.key keys/dh2048.pem /​etc/​openvpn/​
 </​code>​ </​code>​
  
-Puis on génère un répertoire **/​etc/​openvpn/​jail** dans lequel le processus OpenVPN sera chrooté (afin de limiter les dégâts en cas de faille dans OpenVPN) ​puis un autre répertoire (**/​etc/​openvpn/​clientconf**) qui contiendra la configuration des clients : +Puis on génère un répertoire **/​etc/​openvpn/​jail** dans lequel le processus OpenVPN sera chrooté (afin de limiter les dégâts en cas de faille dans OpenVPN) ​
-<​code ​bash> +<code root>​mkdir /​etc/​openvpn/​jail</​code>​ 
-mkdir /​etc/​openvpn/​jail + 
-mkdir /​etc/​openvpn/​clientconf+Puis un autre répertoire (**/​etc/​openvpn/​clientconf**) qui contiendra la configuration des clients : 
 +<​code ​root>mkdir /​etc/​openvpn/​clientconf
 </​code>​ </​code>​
  
 Enfin on crée le fichier de configuration **/​etc/​openvpn/​server.conf** : Enfin on crée le fichier de configuration **/​etc/​openvpn/​server.conf** :
-<code>+<file config fichier /​etc/​openvpn/​server.conf>
 # Serveur TCP/443 # Serveur TCP/443
 mode server mode server
Ligne 73: Ligne 83:
 cert server.crt cert server.crt
 key server.key key server.key
-dh dh1024.pem+dh dh2048.pem
 tls-auth ta.key 0 tls-auth ta.key 0
 cipher AES-256-CBC cipher AES-256-CBC
Ligne 97: Ligne 107:
 status openvpn-status.log status openvpn-status.log
 log-append /​var/​log/​openvpn.log log-append /​var/​log/​openvpn.log
-</code>+</file>
 Ce fichier permet de créer un serveur VPN SSL routé basé sur le protocole TCP et utilisant le port HTTPS (443) afin de maximiser son accessibilité depuis des réseaux sécurisés par des Firewalls. Les clients obtiendront une nouvelle adresse IP dans le range 10.8.0.0/​24. Ce fichier permet de créer un serveur VPN SSL routé basé sur le protocole TCP et utilisant le port HTTPS (443) afin de maximiser son accessibilité depuis des réseaux sécurisés par des Firewalls. Les clients obtiendront une nouvelle adresse IP dans le range 10.8.0.0/​24.
  
Ligne 103: Ligne 113:
  
 On lance le serveur avec la commande : On lance le serveur avec la commande :
-<​code ​bash+<​code ​root
-/​etc/​init.d/​openvpn start+service ​openvpn start
 </​code>​ </​code>​
 À ce stade les machines clientes vont pouvoir se connecter au serveur VPN. Par contre impossible d'​aller plus loin que ce dernier car l'​adresse 10.8.0.x ne sera par routée en dehors de votre serveur. Il faut donc configurer le serveur pour qu'il joue le rôle de routeur entre l'​interface VPN (tun0) et l'​interface physique (eth0) et de NATeur entre les adresses en 10.8.0.x et son adresse IP réelle. À ce stade les machines clientes vont pouvoir se connecter au serveur VPN. Par contre impossible d'​aller plus loin que ce dernier car l'​adresse 10.8.0.x ne sera par routée en dehors de votre serveur. Il faut donc configurer le serveur pour qu'il joue le rôle de routeur entre l'​interface VPN (tun0) et l'​interface physique (eth0) et de NATeur entre les adresses en 10.8.0.x et son adresse IP réelle.
  
 Configuration du routage: Configuration du routage:
-<​code ​bash>+<​code ​root>
 sh -c 'echo 1 > /​proc/​sys/​net/​ipv4/​ip_forward'​ sh -c 'echo 1 > /​proc/​sys/​net/​ipv4/​ip_forward'​
 </​code>​ </​code>​
Ligne 118: Ligne 128:
 </​code>​ </​code>​
  
-Puis configurer la translation d'​adresse (NAT) : +Puis configurer la translation d'​adresse (NAT). \\ 
-<​code ​bash+Dans la commande qui suit, remplacer ''​votre_interface''​ par l'​interface réelle de votre carte reseau. \\ 
-iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE+//Avant stretch c'​était genre ''​eth0''​...// ​
 +<​code ​root
 +iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o votre_interface ​-j MASQUERADE
 </​code>​ </​code>​
  
 Pour rendre cette règle de NAT persistante après un reboot de votre serveur, il faut commencer par créer un script de chargement de règles de Firewall (ou utiliser ​ un script existant) : Pour rendre cette règle de NAT persistante après un reboot de votre serveur, il faut commencer par créer un script de chargement de règles de Firewall (ou utiliser ​ un script existant) :
-<​code ​bash+<​code ​root
-sh -c "iptables-save > /​etc/​iptables.rules"+iptables-save > /​etc/​iptables.rules 
 +</​code>​ 
 + 
 +On peut aussi simplement ajouter la ligne suivante dans la configuration de son interface réseau (généralement la section eth0 dans **/​etc/​network/​interface**) 
 +<​code>​ 
 +post-up iptables-restore < /​etc/​iptables.rules
 </​code>​ </​code>​
  
Ligne 133: Ligne 150:
 =====  Installation Client ===== =====  Installation Client =====
  
-<​code ​bash+<​code ​root
-aptitude ​install openvpn+apt-get ​install openvpn
 </​code>​ </​code>​
  
Ligne 140: Ligne 157:
  
 Nous allons créer les clés pour le client "​**client1**",​ pour cela il faut saisir **sur le serveur** les commandes suivantes : Nous allons créer les clés pour le client "​**client1**",​ pour cela il faut saisir **sur le serveur** les commandes suivantes :
-<​code ​bash>+<​code ​root>
 cd /​etc/​openvpn/​easy-rsa cd /​etc/​openvpn/​easy-rsa
 source vars source vars
Ligne 153: Ligne 170:
  
 On copie les fichiers nécessaires dans un sous répertoire du répertoire **/​etc/​openvpn/​clientconf/​** préalablement créé : On copie les fichiers nécessaires dans un sous répertoire du répertoire **/​etc/​openvpn/​clientconf/​** préalablement créé :
-<​code ​bash+<​code ​root
-mkdir /​etc/​openvpn/​clientconf/​client1/​ +mkdir /​etc/​openvpn/​clientconf/​client1/​</​code>​ 
-cp /​etc/​openvpn/​ca.crt /​etc/​openvpn/​ta.key keys/​client1.crt keys/​client1.key /​etc/​openvpn/​clientconf/​client1/​+<code root>cp /​etc/​openvpn/​ca.crt /​etc/​openvpn/​ta.key keys/​client1.crt keys/​client1.key /​etc/​openvpn/​clientconf/​client1/​
 </​code>​ </​code>​
  
 On va ensuite dans le répertoire **/​etc/​openvpn/​clientconf/​client1/​** : On va ensuite dans le répertoire **/​etc/​openvpn/​clientconf/​client1/​** :
-<​code ​bash>+<​code ​root>
 cd /​etc/​openvpn/​clientconf/​client1/​ cd /​etc/​openvpn/​clientconf/​client1/​
 </​code>​ </​code>​
  
-Puis on crée le fichier client.conf (il faut remplacer **A.B.C.D** par l'​adresse publique de votre serveur VPN que vous pouvez obtenir avec la commande "​**wget -qO- whatismyip.org**"​) : +Puis on crée le fichier ​''​client.conf'' ​(il faut remplacer **A.B.C.D** par l'​adresse publique de votre serveur VPN que vous pouvez obtenir avec la commande "​**wget -qO- whatismyip.org**"​) : 
-<​code ​bash>+<​code ​file client.conf>
 # Client # Client
 client client
Ligne 188: Ligne 205:
  
 Pour assurer la compatibilité avec le **client Windows OpenVPN**, on fait une copie du fichier **client.conf** vers **client.ovpn** : Pour assurer la compatibilité avec le **client Windows OpenVPN**, on fait une copie du fichier **client.conf** vers **client.ovpn** :
-<​code ​bash>+<​code ​root>
 cp client.conf client.ovpn cp client.conf client.ovpn
 </​code>​ </​code>​
Ligne 200: Ligne 217:
   * ta.key: Clés pour l'​authentification   * ta.key: Clés pour l'​authentification
  
-Il ne reste plus qu'à mettre ces fichiers dans une archive **zip**((ou **[[commande:tar | tar]]**)) et de la transmettre sur le **PC client**: +Il ne reste plus qu'à mettre ces fichiers dans une archive **zip**((ou **[[:​doc:​systeme:tar | tar]]**)) et de la transmettre sur le **PC client**: 
-<​code ​bash>+<​code ​root>
 zip client1.zip *.* zip client1.zip *.*
 </​code>​ </​code>​
  
-Lien+//Merci à //​**TechDesk**//​ l'​auteur avisé et attentif de l'​ensemble de ce tuto !// :-) 
 + 
 +===== Lien =====
  
-  * [[manuel:openvpn_client ​| OpenVPN Client-gui]] Cryptage entre PC Client et Serveur en graphique.+  * [[:doc:​reseau:​openvpn:​client ​| OpenVPN Client-gui]] Cryptage entre PC Client et Serveur en graphique.
doc/reseau/openvpn.1356847449.txt.gz · Dernière modification: 30/12/2012 07:04 par smolski

Pied de page des forums

Propulsé par FluxBB