* Créer le répertoire _/var/www/htdocs/vpn/ssl_ (OpenBSD) ou _/var/www/vpn/ssl_ (Debian) dans lequel les certificats seront copiés par défaut pour être distribués. Cet emplacement est configurable dans `shellpki.sh`
* Editer les paramètres de la section `[ req_distinguished_name ]` du fichier `openssl.cnf`, notamment :
* `countryName_default`
* `stateOrProvinceName_default`
* `localityName_default`
* `0.organizationName_default`
* `emailAddress_default`
* Exécuter :
~~~
# sh shellpki.sh init
~~~
* Confirmer l'initialisation, et choisir la passphrase qui sera demandée à chaque création de nouveaux certificats, puis le `Common Name` des futurs certificats créés (ex : `vpn.example.com`)
@ -212,10 +219,11 @@ Le fichier ipp.txt contient une liste des clients et de leur adresse IP afin qu'
ils conservent la même adresse.
Ce fichier peut être utilisé afin de rendre persistantes les IPs attribuées aux clients.
Dans le server.conf ou server.ovpn :
Dans le `server.conf` ou `server.ovpn` :
~~~
ifconfig-pool-persist /etc/openvpn/ipp.txt 0
~~~
Cela rend le fichier _ipp.txt_ en lecture seule pour OpenVPN.
Il faudra donc ajouter une nouvelle ligne de la forme CN,IP à chaque ajout d'un nouveau client.
@ -224,10 +232,10 @@ Il faudra donc ajouter une nouvelle ligne de la forme CN,IP à chaque ajout d'un
* Exécuter :
~~~
# cd /etc/openvpn/ssl
# sh shellpki.sh create
~~~
* Choisir un CN unique pour la machine (ex : `client1.vpn.example.com`)
@ -239,19 +247,19 @@ Il faudra donc ajouter une nouvelle ligne de la forme CN,IP à chaque ajout d'un
Si le certificat indiqué au niveau de la configuration OpenVPN expire lui-même :
* décocher "Compression LZO" si ce n'est pas supporté par votre serveur
* décocher "Vérification du certificat de l'hôte" (sinon cela ne fonctionne pas a priori…)
@ -331,8 +344,9 @@ La configuration d'un VPN nécessite les informations suivantes :
Dans l'exemple qui suit le serveur VPN est sur une machine sous Debian et le client sur une machine sous OpenBSD
Voici le fichier _/etc/openvpn/server.conf_ sous Debian :
Voici le fichier `/etc/openvpn/server.conf` sous Debian :
~~~
port 1194
proto udp
dev tap0
@ -361,10 +375,11 @@ Voici le fichier _/etc/openvpn/server.conf_ sous Debian :
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3
~~~
Voici le fichier de configuration client sous OpenBSD :
~~~
client
proto udp
dev tun0
@ -391,37 +406,37 @@ Voici le fichier de configuration client sous OpenBSD :
ca /etc/openvpn/ssl/files/client/client.pem
cert /etc/openvpn/ssl/files/client/client.crt
key /etc/openvpn/ssl/files/client/client.key
~~~
## FAQ
### Erreur "--crl-verify fails" (constaté sur un serveur OpenVPN sous OpenBSD)
~~~
Options error: --crl-verify fails with 'crl.pem': No such file or directory
Options error: Please correct these errors.
~~~
Il faut parfois regénérer un fichier CRL.
Si l'on utilise une version récente de [shellpki](https://forge.evolix.org/projects/shellpki) :
~~~
# cd /tmp
# shellpki.sh crl
# cp crl.pem /var/empty
~~~
### Erreur "ROUTE: route addition failed using createipforwardentry" (constaté sur un client OpenVPN sous Windows)
En cas d'erreur _ROUTE: route addition failed using createipforwardentry_, l'utilisateur n'a pas les droits suffisants pour ajouter une nouvelle route.
En cas d'erreur `ROUTE: route addition failed using createipforwardentry`, l'utilisateur n'a pas les droits suffisants pour ajouter une nouvelle route.
Il faut essayer d'exécuter les logiciels (_openvpn.exe_ et _openvpngui.exe_) dans un mode de compatibilité _lancer en Administrateur_. Pour plus de détails,voir http://www.bolehvpn.net/forum/index.php?topic=1746.0
### Erreur "no more TUN/TAP adapter" (constaté sur un client OpenVPN sous Windows)
En cas d'erreur _no more TUN/TAP adapter_ aller dans _menu démarrer_> _OpenVPN_> _Add new TUN/TAP Adapter_
En cas d'erreur `no more TUN/TAP adapter` aller dans _menu démarrer_> _OpenVPN_> _Add new TUN/TAP Adapter_
### Erreur "Authentificate/Decrypt packet error: cipher final failed" (constaté sur un client OpenVPN sous Android)