Both sides previous revisionPrevious revisionNext revision | Previous revision |
informatique:logiciels:openvpn [2018/01/07 16:16] – pteu | informatique:logiciels:openvpn [2018/08/20 12:49] (current) – [Générer les certificats] pteu |
---|
**OpenVPN** contient des outils permettant de générer facilement des couples de clés. Ils sont situés dans le répertoire **/usr/share/doc/openvpn/examples/easy-rsa/** (ou ''/usr/share/easy-rsa'' sous Debian 8 (jessie)) ; il est conseillé de les copier dans un autre endroit, **/etc/openvpn/easy-rsa** par exemple, afin qu'une éventuelle mise à jour du paquet n'efface pas tout ce que nous allons faire. | **OpenVPN** contient des outils permettant de générer facilement des couples de clés. Ils sont situés dans le répertoire **/usr/share/doc/openvpn/examples/easy-rsa/** (ou ''/usr/share/easy-rsa'' sous Debian 8 (jessie)) ; il est conseillé de les copier dans un autre endroit, **/etc/openvpn/easy-rsa** par exemple, afin qu'une éventuelle mise à jour du paquet n'efface pas tout ce que nous allons faire. |
<code bash> | <code bash> |
mkdir /etc/openvpn/eay-rsa | mkdir /etc/openvpn/easy-rsa |
cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa | cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa |
| |
# alternative pour Debian 8 : | # alternative pour Debian 8 : |
cp -a /usr/share/eay-rsa /etc/openvpn | cp -a /usr/share/easy-rsa /etc/openvpn |
| |
# puis dans tous les cas, aller dans le répertoire copié | # puis dans tous les cas, aller dans le répertoire copié |
NB : avec OpenVPN Connect, le fichier de conf doit avoir l'extension **.ovpn**, il n'accepte pas les **.conf** :/. | NB : avec OpenVPN Connect, le fichier de conf doit avoir l'extension **.ovpn**, il n'accepte pas les **.conf** :/. |
| |
| ====Intégrer les certificats dans le fichier de configuration==== |
| |
| Plutôt que de pointer vers des fichiers externes, openvpn permet d'intégrer les certificats dans le fichier de configuration ovpn ; c'est le cas pour les options ''ca'', ''cert'', ''key'', ''dh'' ([[https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage#lbAV|et d'autres]]). Il faut alors remplacer l'include du fichier et copier/coller son contenu entre les balises ''<option></option>''. Par exemple pour le certificat de la CA : |
| <code bash> |
| #ca /sdcard/Sync/Nexus9/openvpn/ca.crt |
| <ca> |
| -----BEGIN CERTIFICATE----- |
| MIIEoTCCA4mgAwIBAgIJAKWLtfNAkVCcMA0GCSqGSIb3DQEBCwUAMIGRMQswCQYD |
| [blabla...] |
| +/WEiArZqzcmW4tQBnmBIgfGjYfJ+5MK3an2TVlnqoMy34ZD4AJDIrzU0aZwI75w |
| 9KljFHVPKEAFhZzokOREYCG+8yVA5F6Uk2miMw6ZVGDgbrYvWA== |
| -----END CERTIFICATE----- |
| </ca> |
| </code> |
| |
| Cela simplifie beaucoup la mise en œuvre, mais possède l'inconvénient de laisser la clé privée du client lisible par tous les utilisateurs pouvant lire le fichier de conf. |
=====Conf avancée===== | =====Conf avancée===== |
| |
</code> | </code> |
| |
**Le driver TAP sous Windows impose l'utilisation d'un adressage en /30 (255.255.255.252) car c'est du point-à-point (2 IPs utilisables). Ainsi on ne peut utiliser les couples d'IPs suivantes (serveur/client) : (192.168.0.5,192.168.0.6), (9,10), (13,14), (17,18), etc... | **Le driver TAP sous Windows impose l'utilisation d'un adressage en /30 (255.255.255.252) car c'est du point-à-point (2 IPs utilisables). Ainsi on ne peut utiliser les couples d'IPs suivantes (serveur/client) : (192.168.0.5,192.168.0.6), (9,10), (13,14), (17,18), etc...** |
| |
On peut couper la connexion si inactivité du client avec l'option ''--ping-restart <time>'' | On peut couper la connexion si inactivité du client avec l'option ''--ping-restart <time>'' |
* ''dev-node "nom_de_linterface_reseau"'' permet de spécifier quelle interface utiliser (elle doit être créée avec ''addtap''). | * ''dev-node "nom_de_linterface_reseau"'' permet de spécifier quelle interface utiliser (elle doit être créée avec ''addtap''). |
* ''crl-verify crl.pem'' pour spécifier une liste de révocation | * ''crl-verify crl.pem'' pour spécifier une liste de révocation |
| * ''status openvpn-status.log'' pour spécifier un fichier contenant la liste des clients connectés, mise à jour chaque minute |
| * ''error=unsupported certificate purpose'' : typiquement cette erreur apparait quand on utilise un certificat "serveur" sur un client ou l'inverse (un certificat client sur un serveur). Openvpn vérifie le champ **nsCertType** du certificat, et il doit correspondre à l'utilisation qu'on en fait (serveur ou client). Pour résoudre ce problème, avec easy-rsa, générer le certificat d'un serveur openvpn avec ''build-key-server'' et ceux des clients avec ''build-key''. |
| |
=====Liens===== | =====Liens===== |