* 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`
* 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 :
* Editer les paramètres de la section `[ req_distinguished_name ]` du fichier `openssl.cnf`, notamment :
* `countryName_default`
* `countryName_default`
* `stateOrProvinceName_default`
* `stateOrProvinceName_default`
* `localityName_default`
* `localityName_default`
* `0.organizationName_default`
* `0.organizationName_default`
* `emailAddress_default`
* `emailAddress_default`
* Exécuter :
* Exécuter :
~~~
# sh shellpki.sh init
# 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`)
* 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.
ils conservent la même adresse.
Ce fichier peut être utilisé afin de rendre persistantes les IPs attribuées aux clients.
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
ifconfig-pool-persist /etc/openvpn/ipp.txt 0
~~~
Cela rend le fichier _ipp.txt_ en lecture seule pour OpenVPN.
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.
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 :
* Exécuter :
~~~
# cd /etc/openvpn/ssl
# cd /etc/openvpn/ssl
# sh shellpki.sh create
# sh shellpki.sh create
~~~
* Choisir un CN unique pour la machine (ex : `client1.vpn.example.com`)
* 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 :
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 "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…)
* 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
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
port 1194
proto udp
proto udp
dev tap0
dev tap0
@ -361,10 +375,11 @@ Voici le fichier _/etc/openvpn/server.conf_ sous Debian :
status /var/log/openvpn-status.log
status /var/log/openvpn-status.log
log /var/log/openvpn.log
log /var/log/openvpn.log
verb 3
verb 3
~~~
Voici le fichier de configuration client sous OpenBSD :
Voici le fichier de configuration client sous OpenBSD :
~~~
client
client
proto udp
proto udp
dev tun0
dev tun0
@ -391,37 +406,37 @@ Voici le fichier de configuration client sous OpenBSD :
ca /etc/openvpn/ssl/files/client/client.pem
ca /etc/openvpn/ssl/files/client/client.pem
cert /etc/openvpn/ssl/files/client/client.crt
cert /etc/openvpn/ssl/files/client/client.crt
key /etc/openvpn/ssl/files/client/client.key
key /etc/openvpn/ssl/files/client/client.key
~~~
## FAQ
## FAQ
### Erreur "--crl-verify fails" (constaté sur un serveur OpenVPN sous OpenBSD)
### 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: --crl-verify fails with 'crl.pem': No such file or directory
Options error: Please correct these errors.
Options error: Please correct these errors.
~~~
Il faut parfois regénérer un fichier CRL.
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) :
Si l'on utilise une version récente de [shellpki](https://forge.evolix.org/projects/shellpki) :
~~~
# cd /tmp
# cd /tmp
# shellpki.sh crl
# shellpki.sh crl
# cp crl.pem /var/empty
# cp crl.pem /var/empty
~~~
### Erreur "ROUTE: route addition failed using createipforwardentry" (constaté sur un client OpenVPN sous Windows)
### 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
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)
### 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)
### Erreur "Authentificate/Decrypt packet error: cipher final failed" (constaté sur un client OpenVPN sous Android)