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
Prochaine révision Les deux révisions suivantes
doc:reseau:vpn:openvpn [23/10/2016 19:37]
kawer
doc:reseau:vpn:openvpn [28/07/2017 19:39]
cemoi [Configuration reseau]
Ligne 1: Ligne 1:
 +
 ====== OPENVPN Serveur et Client ====== ====== OPENVPN Serveur et Client ======
  
   * Objet : du tuto Configuration d'un serveur openvpn   * Objet : du tuto Configuration d'un serveur openvpn
-  * Niveau requis : {{tag>débutant ​avisé}} +  * Niveau requis : {{tag>​avisé}} 
-  * Commentaires : //serveur, nat.. // FIXME +  * Commentaires : //serveur, nat.. // 
-  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) +  * Suivi : 
-  * Suivi : {{tag>​en-chantier à-tester à-placer}} - FIXME Pour choisir, voir les autres Tags possibles dans [[:​atelier:#​tags|l'​Atelier]].+
     * Création par [[user>​kawer]] 27/05/2016     * Création par [[user>​kawer]] 27/05/2016
-    * Testé par <​...> ​le <...> FIXME +    * Testé par Tsukasa ​le 22/01/2017 
-  * Commentaires sur le forum : [[:​viewtopic.php?​pid=197201#​p197201 ​| Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME+  * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​id=15701 | Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
  
-**Nota :**+===== Présentation =====
  
-Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! +Cette technique permet la création d'une liaison chiffrée entre votre machine et un serveur hébergé sur Internet (par exemple chez un fournisseur d’accès se trouvant en France ou à l'​étranger). ​\\  
- +Tous vos accès à Internet seront alors vus à partir de l'​adresse IP de ce serveur VPN et non plus par celle de votre machine.
-==== Présentation ==== +
- +
-Cette technique permet la création d'une liaison chiffrée entre votre machine et un serveur hébergé sur Internet (par exemple chez un fournisseur d’accès se trouvant en France ou à l'​étranger). Tous vos accès à Internet seront alors vus à partir de l'​adresse IP de ce serveur VPN et non plus par celle de votre machine.+
  
 OpenVPN n'est pas un VPN IPSec. C'est un VPN SSL se basant sur la création d'un tunnel IP (UDP ou TCP au choix) authentifié et chiffré avec la bibliothèque OpenSSL. OpenVPN n'est pas un VPN IPSec. C'est un VPN SSL se basant sur la création d'un tunnel IP (UDP ou TCP au choix) authentifié et chiffré avec la bibliothèque OpenSSL.
Ligne 22: Ligne 19:
 Quelques avantages des tunnels VPN SSL : Quelques avantages des tunnels VPN SSL :
  
-    ​Facilité pour passer les réseaux NATés (pas de configuration à faire) +  * Facilité pour passer les réseaux NATés (pas de configuration à faire) 
-    Logiciel clients disponibles sur **GNU/​Linux,​ BSD, Windows et Mac OS X**+  ​* ​Logiciel clients disponibles sur **GNU/​Linux,​ BSD, Windows et Mac OS X**
  
  
-==== Installation ====+===== Installation ​=====
  
 === On commence par installer OpenVPN à partir des dépôts officiels : === === On commence par installer OpenVPN à partir des dépôts officiels : ===
Ligne 32: Ligne 29:
 <code root>​apt-get update && apt-get install openvpn</​code>​ <code root>​apt-get update && apt-get install openvpn</​code>​
  
 +=== On se prépare à installer les certificats === 
 +<code root>cp -a /​usr/​share/​easy-rsa /​etc/​openvpn/</​code>​
 +<code user>cd /​etc/​openvpn/​easy-rsa</​code>​
 +<code root>​source vars</​code>​
 +<code root>​./​clean-all</​code>​
  
 === Création des certificats de l'​autorité de certification : === === Création des certificats de l'​autorité de certification : ===
  
 <code root>​./​build-ca</​code>​ <code root>​./​build-ca</​code>​
- 
- 
 Vous devriez obtenir ce qui suit, libre à vous d'en changer le contenus : Vous devriez obtenir ce qui suit, libre à vous d'en changer le contenus :
- 
 <​code>​ <​code>​
 Generating a 2048 bit RSA private key Generating a 2048 bit RSA private key
Ligne 67: Ligne 66:
  
 <code root>​./​build-dh</​code>​ <code root>​./​build-dh</​code>​
- 
 Qui donne : Qui donne :
- 
 <​code>​ <​code>​
 Generating DH parameters, 2048 bit long safe prime, generator 2 Generating DH parameters, 2048 bit long safe prime, generator 2
Ligne 75: Ligne 72:
 ..............+...................................................................................... ..............+......................................................................................
 </​code>​ </​code>​
- 
  
 === On génère les certificats du serveur : === === On génère les certificats du serveur : ===
  
 <code root>​./​build-key-server srvcert</​code>​ <code root>​./​build-key-server srvcert</​code>​
- 
 Qui donne ce qui suit : **(remplacez debian-facile par le nom de votre serveur)** Qui donne ce qui suit : **(remplacez debian-facile par le nom de votre serveur)**
- 
 <​code>​ <​code>​
 Generating a 2048 bit RSA private key Generating a 2048 bit RSA private key
Ligne 131: Ligne 125:
  
  
-=== Création du fichier de configuration ​===+===== Création du fichier de configuration ​pour le serveur =====
   
 <code root>​gunzip -c /​usr/​share/​doc/​openvpn/​examples/​sample-config-files/​server.conf.gz > /​etc/​openvpn/​server.conf</​code>​ <code root>​gunzip -c /​usr/​share/​doc/​openvpn/​examples/​sample-config-files/​server.conf.gz > /​etc/​openvpn/​server.conf</​code>​
- 
  
 === On configure server.conf === === On configure server.conf ===
  
 <code root>​nano /​etc/​openvpn/​server.conf</​code>​ **décommentez ou ajoutez les lignes suivantes :** <code root>​nano /​etc/​openvpn/​server.conf</​code>​ **décommentez ou ajoutez les lignes suivantes :**
- 
 <​code>​ <​code>​
 user nobody user nobody
Ligne 159: Ligne 151:
  
  
-=== On test la configuration openvpn : ===+=== On test la configuration openvpn ​pour le serveur: ===
  
 <code root>​service openvpn stop</​code>​ <code root>​service openvpn stop</​code>​
Ligne 165: Ligne 157:
  
 Vous devriez obtenir quelque chose comme suit : Vous devriez obtenir quelque chose comme suit :
- 
 <​code>​ <​code>​
-Fri May 27 15:41:06 2016 OpenVPN 2.3.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Nov 12 2015 +Thu Dec 22 18:27:00 2016 OpenVPN 2.3.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Nov 12 2015 
-Fri May 27 15:41:06 2016 library versions: OpenSSL 1.0.1k 8 Jan 2015, LZO 2.08 +Thu Dec 22 18:27:00 2016 library versions: OpenSSL 1.0.1t  3 May 2016, LZO 2.08 
-Fri May 27 15:41:06 2016 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts +Thu Dec 22 18:27:00 2016 Diffie-Hellman initialized with 2048 bit key 
-Fri May 27 15:41:06 2016 Diffie-Hellman initialized with 2048 bit key +Thu Dec 22 18:27:00 2016 Socket Buffers: R=[212992->​131072] S=[212992->​131072] 
-Fri May 27 15:41:06 2016 Socket Buffers: R=[229376->​131072] S=[229376->​131072] +Thu Dec 22 18:27:00 2016 ROUTE_GATEWAY ​213.32.16.1 
-Fri May 27 15:41:06 2016 ROUTE_GATEWAY ​92.222.64.1 +Thu Dec 22 18:27:00 2016 TUN/TAP device tun0 opened 
-Fri May 27 15:41:06 2016 TUN/TAP device tun0 opened +Thu Dec 22 18:27:00 2016 TUN/TAP TX queue length set to 100 
-Fri May 27 15:41:06 2016 TUN/TAP TX queue length set to 100 +Thu Dec 22 18:27:00 2016 do_ifconfig,​ tt->​ipv6=0,​ tt->​did_ifconfig_ipv6_setup=0 
-Fri May 27 15:41:06 2016 do_ifconfig,​ tt->​ipv6=0,​ tt->​did_ifconfig_ipv6_setup=0 +Thu Dec 22 18:27:00 2016 /sbin/ip link set dev tun0 up mtu 1500 
-Fri May 27 15:41:06 2016 /sbin/ip link set dev tun0 up mtu 1500 +Thu Dec 22 18:27:00 2016 /sbin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2 
-Fri May 27 15:41:06 2016 /sbin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2 +Thu Dec 22 18:27:00 2016 /sbin/ip route add 10.8.0.0/24 via 10.8.0.2 
-Fri May 27 15:41:06 2016 /​etc/​openvpn/​update-resolv-conf tun0 1500 1542 10.8.0.1 10.8.0.2 init +Thu Dec 22 18:27:00 2016 GID set to nogroup 
-Fri May 27 15:41:06 2016 /sbin/ip route add 10.8.0.0/24 via 10.8.0.2 +Thu Dec 22 18:27:00 2016 UID set to nobody 
-Fri May 27 15:41:06 2016 GID set to nogroup +Thu Dec 22 18:27:00 2016 UDPv4 link local (bound): [undef] 
-Fri May 27 15:41:06 2016 UID set to nobody +Thu Dec 22 18:27:00 2016 UDPv4 link remote: [undef] 
-Fri May 27 15:41:06 2016 UDPv4 link local (bound): [undef] +Thu Dec 22 18:27:00 2016 MULTI: multi_init called, r=256 v=256 
-Fri May 27 15:41:06 2016 UDPv4 link remote: [undef] +Thu Dec 22 18:27:00 2016 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0 
-Fri May 27 15:41:06 2016 MULTI: multi_init called, r=256 v=256 +Thu Dec 22 18:27:00 2016 IFCONFIG POOL LIST 
-Fri May 27 15:41:06 2016 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0 +Thu Dec 22 18:27:00 2016 Initialization Sequence Completed
-Fri May 27 15:41:06 2016 IFCONFIG POOL LIST +
-Fri May 27 15:41:06 2016 Initialization Sequence Completed+
 </​code>​ </​code>​
-  
 <code user>​ifconfig tun0</​code>​ <code user>​ifconfig tun0</​code>​
- +Devrait ​vous retourner :
-Devrais ​vous retourner : +
 <​code>​ <​code>​
 tun0      Link encap:​UNSPEC ​ HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  ​ tun0      Link encap:​UNSPEC ​ HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  ​
Ligne 203: Ligne 189:
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B
 </​code>​ </​code>​
- 
  
 == Le test s'est bien déroulé : == == Le test s'est bien déroulé : ==
Ligne 209: Ligne 194:
 <code root>​service openvpn start</​code>​ <code root>​service openvpn start</​code>​
  
 +===== Configuration reseau =====
  
-=== Activation de l'ip forwarding : ===+=== Activation de l'ip forwarding ​pour le NAT : ===
  
-<code root>nano /​etc/​sysctl.conf</​code>​ +<code root>echo "net.ipv4.ip_forward=1" > /​etc/​sysctl.d/​NAT.conf</​code>​
- +
-**Décommentez la ligne** +
- +
-<​code>​net.ipv4.ip_forward=1</​code>​+
  
 **Activez le nouveau jeux de règle :** **Activez le nouveau jeux de règle :**
- +<code root>​sysctl -p /etc/sysctl.d/NAT.conf</​code>​
-<code root>​sysctl -p /​etc/​sysctl.conf</​code>​+
  
 == Ajouts des règles dans iptables : ==  == Ajouts des règles dans iptables : == 
-**se référer ici :** https://​debian-facile.org/​doc:​reseau:​iptables+ 
 +**se référer ici :** 
 +[[doc:​reseau:​iptables|tuto Reseau iptable]]
  
 <​code>​ <​code>​
Ligne 231: Ligne 214:
 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
 </​code>​ </​code>​
 + Pour rendre ces règles persistantes 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) : 
  
-== On génère les certificats pour le client == +<code root>​iptables-save > /​etc/​iptables.rules</​code>​ 
 + 
 +===== Génération des certificats pour le client ​(oui nous sommes toujours sur le serveur) =====
  
 <​code=root>​cd /​etc/​openvpn/​easy-rsa/</​code>​ <​code=root>​cd /​etc/​openvpn/​easy-rsa/</​code>​
 <​code=root>​source vars</​code>​ <​code=root>​source vars</​code>​
 <​code=root>​./​build-key clientCert</​code>​ <​code=root>​./​build-key clientCert</​code>​
-  +Qui donne ce qui suit : **(remplacez [clientCert]:​debianFacile par le nom de votre client)** 
-Qui donne ce qui suit : **(remplacez [clientCert]:​debianFacile par le nom de votre client) +<​code>​Generating a 2048 bit RSA private key
-** +
-<code=bash>​Generating a 2048 bit RSA private key+
 ...........................................+++ ...........................................+++
 ......................................................+++ ......................................................+++
Ligne 286: Ligne 270:
 </​code>​ </​code>​
  
-=== Sur le poste client === 
  
-==On récupère les certificats ​sur le serveur : == + 
-<code=bash> +===== openvpn comme client ​sur le poste client =====
-scp root@serveur:/​etc/​openvpn/​easy-rsa/​keys/​ca.crt /tmp +
-scp root@serveur:/​etc/​openvpn/​easy-rsa/​keys/​clientCert.crt /tmp +
-scp root@serveur:/​etc/​openvpn/​easy-rsa/​keys/​clientCert.key /tmp +
-</​code>​+
  
 ==On installe openvpn :== ==On installe openvpn :==
-<code=root> + 
-sudo apt-get update  +<code root>​sudo apt-get update</​code> ​ 
-sudo apt-get install openvpn +<code root>sudo apt-get install openvpn</​code>​ 
-</​code>​+ 
 +=== On récupère les certificats sur le serveur : ===  
 +**Récupérer les fichiers suivant dans /​etc/​openvpn/​easy-rsa/​keys/:​**  
 +[[doc:​reseau:​scp|scp&​nbsp;:​ transfert de fichiers sécurisé entre machines]] 
 +<note warning>​Déconseillé d'​utiliser root sur internet</​note>​ 
 + 
 +<​code>​scp root@ip_du_serveur:/​etc/​openvpn/​easy-rsa/​keys/​ca.crt /​tmp/</​code>​ 
 +<​code>​scp root@ip_du_serveur:/​etc/​openvpn/​easy-rsa/​keys/​clientCert.key /​tmp/</​code>​ 
 +<​code>​scp root@ip_du_serveur:/​etc/​openvpn/​easy-rsa/​keys/​clientCert.crt /tmp/</​code>​
  
 ==On copie le le fichier de configuration et certificats == ==On copie le le fichier de configuration et certificats ==
-<​code=root>​ 
-cp /​usr/​share/​doc/​openvpn/​examples/​sample-config-files/​client.conf /​etc/​openvpn/​ 
-cd /​etc/​openvpn 
-mkdir -p keys 
-cd keys 
-cp /tmp/ca.crt . 
-cp /​tmp/​clientCert.key . 
-cp /​tmp/​clientCert.crt . 
-</​code>​ 
  
-== Modification du fichier de configuration ==+<code root>cp /​usr/​share/​doc/​openvpn/​examples/​sample-config-files/​client.conf /​etc/​openvpn/</​code>​ 
 +<code root>cd /​etc/​openvpn</​code>​ 
 +<code root>​mkdir -p keys</​code>​ 
 +<code root>cd keys</​code>​ 
 + 
 +**Coller dans le dossiers en cours (keys) les fichiers suivants :** 
 + 
 +<​code>​mv /tmp/ca.crt /​etc/​openvpn/​keys/</​code>​ 
 +<​code>​mv /​tmp/​clientCert.key /​etc/​openvpn/​keys/</​code>​ 
 +<​code>​mv /​tmp/​clientCert.crt /​etc/​openvpn/​keys/</​code>​ 
 + 
 +== Modification du fichier de configuration ​sur le client ​== 
 **Changer le chemin du serveur et des certificats dans /​etc/​openvpn/​client.conf** **Changer le chemin du serveur et des certificats dans /​etc/​openvpn/​client.conf**
 <​code>​ <​code>​
Ligne 321: Ligne 311:
 </​code>​ </​code>​
  
 +Pour que toutes les connexions passent par votre vpn il faut également ajouter:
 +<​code>​redirect-gateway def1</​code>​
 +
 +
 +
 +<note important>​Changez les DNS de votre client, ceux de votre FAI sont fermé! Vous pouvez utiliser ceux de [[https://​wiki.opennic.org/​doku.php|opennic]] par exemple</​note>​
 +<note tip>Si vous utilisez [[doc:​reseau:​network-manager|Network-Manager]] c'est dans ces options que vous devez définir les nouveaux DNS à utiliser.Vous pouvez également le faire en ligne de commande:
 +<code user>​nmcli con mod lenom-de-votre-connexion ipv4.dns "​169.239.202.202 185.121.177.177"</​code>​
 +</​note>​
 == Test de connection == == Test de connection ==
-<​code=root>​ + 
-openvpn /​etc/​openvpn/​client.conf</​code>​+<​code=root>​openvpn /​etc/​openvpn/​client.conf</​code>​
  
 **Vous devez obtenir en fin de séquence :** **Vous devez obtenir en fin de séquence :**
 <​code>​Initialization Sequence Completed</​code>​ <​code>​Initialization Sequence Completed</​code>​
  
-Si tel est le cas, vérifié ​que tun0 est bien listé avec **ifconfig**,​ puis vérifié ​votre ip par exemple en allant sur [[http://​ifconfig.me/​ +Si tel est le cas, vérifiez ​que tun0 est bien listé avec **ifconfig**,​ puis vérifiez ​votre ip par exemple en allant sur [[http://​ifconfig.me/​]],​ si tout est ok, on ferme la console openvpn en pensant a faire un **Ctrl+C**
-]], si tout est ok, on ferme la console openvpn en pensant a faire un **Ctrl+C**+
  
 == on démarre openvpn== == on démarre openvpn==
 +
 <​code=root>​service openvpn start</​code>​ <​code=root>​service openvpn start</​code>​
  
doc/reseau/vpn/openvpn.txt · Dernière modification: 07/08/2018 11:58 par cemoi

Pied de page des forums

Propulsé par FluxBB