informatique:logiciels:openvpn
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatique:logiciels:openvpn [2017/10/24 16:30] – [Liens] configuration OpenVPN avec la Freebox révolution pteu | informatique:logiciels:openvpn [2018/08/20 12:49] (current) – [Générer les certificats] pteu | ||
---|---|---|---|
Line 3: | Line 3: | ||
======OpenVPN====== | ======OpenVPN====== | ||
- | OpenVPN est un logiciel libre multiplateforme permettant de créer un tunnel VPN chiffré TLS ce qui signifie qu'il utilise TCP ou UDP (niveau 4). | + | {{: |
- | **Ce mode opératoire décrit la mise en place d'un tunnel routé avec certificats entre un serveur Linux (Ubuntu ou Debian 8) plusieurs clients, peu importe leur système d' | + | [[https:// |
+ | |||
+ | **Ce mode opératoire décrit la mise en place d'un tunnel routé avec certificats entre un serveur Linux (Ubuntu ou Debian 8) et plusieurs clients, peu importe leur système d' | ||
Avant de commencer il faut savoir qu'il existe 2 types de tunnels : | Avant de commencer il faut savoir qu'il existe 2 types de tunnels : | ||
Line 15: | Line 17: | ||
* par **certificat** : plus long à mettre en place, l' | * par **certificat** : plus long à mettre en place, l' | ||
- | La méthode consiste à générer toutes les clés sur le serveur Linux (il jouera le rôle de CA) pour signer toutes les clés ; puis on installera ces clés sur chaque machine. | + | Si comme la plupart des gens no ne possède pas de CA, la méthode consiste à générer toutes les clés sur le serveur Linux (il jouera le rôle de CA) pour signer toutes les clés ; puis on installera ces clés sur chaque machine. |
Line 31: | Line 33: | ||
**OpenVPN** contient des outils permettant de générer facilement des couples de clés. Ils sont situés dans le répertoire **/ | **OpenVPN** contient des outils permettant de générer facilement des couples de clés. Ils sont situés dans le répertoire **/ | ||
<code bash> | <code bash> | ||
- | mkdir / | + | mkdir / |
cp -R / | cp -R / | ||
# alternative pour Debian 8 : | # alternative pour Debian 8 : | ||
- | cp -a /usr/share/eay-rsa / | + | cp -a /usr/share/easy-rsa / |
# puis dans tous les cas, aller dans le répertoire copié | # puis dans tous les cas, aller dans le répertoire copié | ||
Line 158: | Line 160: | ||
D' | D' | ||
<code bash> | <code bash> | ||
- | # envoyer cette route aux clients (réseau de votre LAN) | + | # envoyer cette route aux clients (pour qu'ils puissent accéder au réseau de votre LAN) |
push "route 192.168.2.0 255.255.255.0" | push "route 192.168.2.0 255.255.255.0" | ||
# le réseau utilisé pour les tunnels | # le réseau utilisé pour les tunnels | ||
- | # NB : OpenVPN utilise l'IP .1 du premier /30 pour son IP à lui | + | # NB : OpenVPN utilise l'IP .1 du premier /30 pour lui |
# les /30 suivants sont pour chaque tunnel | # les /30 suivants sont pour chaque tunnel | ||
# ex : 192.168.3.4/ | # ex : 192.168.3.4/ | ||
Line 168: | Line 170: | ||
# spécification de l' | # spécification de l' | ||
- | cipher AES-128-CBC | + | # pour lister tous les algos possibles : " |
+ | # (NB : '' | ||
+ | cipher AES-256-CBC | ||
# activer la communication entre les clients | # activer la communication entre les clients | ||
Line 244: | Line 248: | ||
verb 3 | verb 3 | ||
</ | </ | ||
- | NB : avec OpenVPN Connect, le fichier de conf doit être renommé pour avoir l' | + | NB : avec OpenVPN Connect, le fichier de conf doit avoir l' |
+ | ====Intégrer les certificats dans le fichier de configuration==== | ||
+ | |||
+ | Plutôt que de pointer vers des fichiers externes, openvpn permet d' | ||
+ | <code bash> | ||
+ | #ca / | ||
+ | <ca> | ||
+ | -----BEGIN CERTIFICATE----- | ||
+ | MIIEoTCCA4mgAwIBAgIJAKWLtfNAkVCcMA0GCSqGSIb3DQEBCwUAMIGRMQswCQYD | ||
+ | [blabla...] | ||
+ | +/ | ||
+ | 9KljFHVPKEAFhZzokOREYCG+8yVA5F6Uk2miMw6ZVGDgbrYvWA== | ||
+ | -----END CERTIFICATE----- | ||
+ | </ca> | ||
+ | </ | ||
+ | |||
+ | Cela simplifie beaucoup la mise en œuvre, mais possède l' | ||
=====Conf avancée===== | =====Conf avancée===== | ||
Sur le serveur, on peut spécifier une configuration dédiée à un seul client en modifiant ainsi la conf : | Sur le serveur, on peut spécifier une configuration dédiée à un seul client en modifiant ainsi la conf : | ||
<code bash> | <code bash> | ||
- | # indique ou sont situes les fichiers | + | # indique ou sont situes les fichiers |
client-config-dir / | client-config-dir / | ||
+ | # interdit la connexion des clients qui n'ont pas de fichier dédié | ||
# | # | ||
</ | </ | ||
- | Ensuite place la config dédiée dans fichier portant le nom du client (le Common Name de son certificat). | + | Ensuite place la config dédiée dans fichier portant le nom du client (le **Common Name** (CN) de son certificat). |
* '' | * '' | ||
<code bash> | <code bash> | ||
+ | # son IP réservée 192.168.3.10 ainsi que l'IP du tunnel côté serveur : .9 | ||
ifconfig-push 192.168.3.10 192.168.3.9 | ifconfig-push 192.168.3.10 192.168.3.9 | ||
+ | # une route pour que le client puisse avoir accès à un réseau connecté au serveur | ||
+ | # sa passerelle sera l'IP du tunnel du serveur (.9) | ||
push "route 192.168.2.0 255.255.255.0" | push "route 192.168.2.0 255.255.255.0" | ||
+ | |||
+ | # LAN pour que le serveur accède au réseau du client (via 192.168.3.10) | ||
+ | iroute 192.168.100.0 255.255.255.0 | ||
+ | # NB : on doit ajouter également dans la conf serveur : "route 192.168.100.0 255.255.255.0" | ||
</ | </ | ||
- | De cette façon on attribue au client toto l'IP 192.168.3.10 ; sa gateway (l'autre bout du tunnel) sera 192.168.3.9 | + | **Le driver TAP sous Windows impose |
- | * '' | + | On peut couper la connexion si inactivité du client avec l'option |
- | **Le driver TAP sous Windows impose | + | |
- | Sachant que, dans le cas d'un serveur sous DD-WRT, ce dernier ne permet | + | '' |
- | + | ||
- | Explications : | + | |
- | * créer | + | |
- | + | ||
- | On peut couper la connexion si inactivité du client avec l' | + | |
- | '' | + | '' |
+ | '' | ||
=====Intégration système===== | =====Intégration système===== | ||
Line 350: | Line 373: | ||
* '' | * '' | ||
* '' | * '' | ||
- | * la commande | + | * '' |
+ | * '' | ||
=====Liens===== | =====Liens===== |
informatique/logiciels/openvpn.1508862622.txt.gz · Last modified: 2017/10/24 16:30 by pteu