22
0
Fork 0

mise en forme + section iOS

This commit is contained in:
Jérémy Lecour 2017-11-11 13:41:45 +01:00
parent f70ba7b914
commit 9c2cbc84f8
1 changed files with 29 additions and 23 deletions

View File

@ -5,7 +5,7 @@ title: Howto OpenVPN
* Documentation : <https://openvpn.net/index.php/open-source/documentation.html>
[OpenVPN](https://openvpn.net/) permet de monter des tunnels VPN en utilisant [SSL/TLS](https://fr.wikipedia.org/wiki/Transport_Layer_Security). Bien qu'OpenVPN sache utiliser aussi une clé partagé (*PSK*) ou des couples *utilisateur*:*mot de passe*, nous préférons utiliser des certificats avec une [PKI](https://fr.wikipedia.org/wiki/Infrastructure_%C3%A0_cl%C3%A9s_publiques).
[OpenVPN](https://openvpn.net/) permet de monter des tunnels [VPN](https://fr.wikipedia.org/wiki/Réseau_privé_virtuel) en utilisant [SSL/TLS](https://fr.wikipedia.org/wiki/Transport_Layer_Security) pour le chiffrement. Bien qu'OpenVPN sache utiliser aussi une clé partagé (*PSK* — Pre-Shared Key) ou des couples *utilisateur*/*mot de passe*, nous préférons utiliser des certificats avec une [PKI](https://fr.wikipedia.org/wiki/Infrastructure_%C3%A0_cl%C3%A9s_publiques).
## Installation
@ -46,9 +46,9 @@ On crée clé/certificat pour le serveur VPN avec la commande suivante :
# sh shellpki.sh create
~~~
Note : le CN sera par exemple de la forme `fw.vpn.example.com` (il sera demandé de le saisir deux fois).
Note : le CN (*Common Name*) sera par exemple de la forme `fw.vpn.example.com` (il sera demandé de le saisir deux fois).
La configuration se fera via un fichier `/etc/openvpn/server.conf` avec les paramètres suivants à adapter :
La configuration se fait via un fichier `/etc/openvpn/server.conf` avec les paramètres suivants à adapter :
* `server` : réseau privé sur lequel le serveur VPN et les clients communiqueront
* `local` : adresse IP du serveur, sur laquelle les clients se connecteront (adresse IP publique généralement)
@ -57,8 +57,6 @@ La configuration se fera via un fichier `/etc/openvpn/server.conf` avec les para
* `key` : clé du serveur VPN (créée précédemment)
* `ifconfig-pool-persist` : permet aux clients de conserver la même IP en cas de redémarrage
La configuration se fera via un fichier `/etc/openvpn/server.conf` :
### Serveur, sous OpenBSD
~~~
@ -122,7 +120,7 @@ Pour lancer manuellement OpenVPN sans redémarrer la machine :
# /usr/local/sbin/openvpn --daemon --config /etc/openvpn/server.conf
~~~
Pour que les logs générés par OpenVPN soient rotatés, il faut rajouter la ligne en question dans le fichier `/etc/newsyslog.conf` :
Pour que les logs générés par OpenVPN soient "rotatés", il faut rajouter la ligne en question dans le fichier `/etc/newsyslog.conf` :
~~~
/var/log/openvpn.log 600 52 * $W6D4 Z
@ -260,7 +258,7 @@ On utilisera [shellPKI](https://forge.evolix.org/projects/shellpki) permettant d
# git clone https://forge.evolix.org/shellpki.git .
~~~
* 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 :
* `countryName_default`
@ -288,7 +286,7 @@ On utilisera [shellPKI](https://forge.evolix.org/projects/shellpki) permettant d
* Récupérer le certificat et la clé dans `/var/www/htdocs/vpn/ssl`
* Dans la conf client, rajouter la directive _nobind_. Par défaut le client se bind sur l'ip locale et le port 1194, _nobind_ force l'utilisation d'un port aléatoire.
* Dans la conf client, rajouter la directive `nobind`. Par défaut le client se bind sur l'ip locale et le port 1194, `nobind` force l'utilisation d'un port aléatoire.
### Renouveller un certificat
@ -301,12 +299,12 @@ Il faut le révoquer, puis en recréer un :
# cp /etc/openvpn/ssl/crl.pem /var/empty/
~~~
Si c'est le certificat, du serveur OpenVPN, il faut en plus modifier
Si c'est le certificat du serveur OpenVPN, il faut en plus modifier
la configuration puis relancer le démon.
## Permettre aux clients de conserver la même IP au fil de connexions
Le fichier ipp.txt contient une liste des clients et de leur adresse IP afin qu'en cas de redémarrage du serveur,
Le fichier `ipp.txt` contient une liste des clients et de leur adresse IP afin qu'en cas de redémarrage du serveur,
ils conservent la même adresse.
Dans le `server.conf` ou `server.ovpn` :
@ -315,10 +313,10 @@ 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.
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.
## Howto configuration du client
## Configuration du client
### Template systemd pour démarrer le client OpenVPN
@ -335,13 +333,13 @@ Télécharger la dernière version stable de Tunnelblick sur <https://tunnelblic
On suit les instructions d'installation (en anglais), puis :
* On choisit de générer la configuration (indiquer qu'on n'a pas de fichiers de configuration)
* Cela génère une configuration standard, notamment un dossier sur le bureau avec un fichier _config.ovpn_
* On édite le _config.ovpn_ en ajustant les options _remote_, _ca_, _cert_ et _key_.
* On copie également la clé et les certificats (ca et cart) dans ce dossier
* On doit ensuite renommer ce dossier avec un nom se terminant par .tblk
* On double-clic ensuite dessus, et cela installe configuration
* On peut ensuite lancer le VPN via l'icone présente, puis choisir diverses options (connexion automatique, etc.)
* on choisit de générer la configuration (indiquer qu'on n'a pas de fichiers de configuration) ;
* cela génère une configuration standard, notamment un dossier sur le bureau avec un fichier `config.ovpn` ;
* on édite le `config.ovpn` en ajustant les options `remote`, `ca`, `cert` et `key` ;
* on copie également la clé et les certificats (ca et cart) dans ce dossier ;
* on doit ensuite renommer ce dossier avec un nom se terminant par `.tblk` ;
* on "double-clic" ensuite dessus, et cela installe configuration ;
* on peut ensuite lancer le VPN via l'icone présente, puis choisir diverses options (connexion automatique, etc.).
### Client OpenVPN sous Android
@ -363,12 +361,20 @@ $ openssl pkcs12 -export -in goyk3OkjeuPread8Sluld.privacy.example.com.crt -inke
* décocher "Vérification du certificat de l'hôte" (sinon cela ne fonctionne pas a priori…)
* forcer "Algorithme de chiffrement" à AES-128-CBC (à ajuster selon votre serveur)
Si erreur _ca md too weak_ cela signifie que le certificat utilise du MD5. Pour forcer quand même, il faut mettre dans les options personnalisées :
Si erreur `ca md too weak` cela signifie que le certificat utilise du MD5. Pour forcer quand même, il faut mettre dans les options personnalisées :
~~~
tls-cipher "DEFAULT:@SECLEVEL=0"
~~~
### Client OpenVPN sous iOS
Les systèmes iOS d'Apple disposent nativement du support de plusieurs types de VPN (IKEv2, IPsec ou L2TP), mais pas pour OpenVPN. On utilise alors l'application "OpenVPN Connect" (éditée par "OpenVPN Technologies") qui va exploiter les API bas niveau de l'OS pour un support complet d'OpenVPN dans les interfaces du système.
Pour ajouter une configuration cliente, il suffit de s'envoyer le fichier `.ovpn` par mail ou via un partage de fichier quelconque et il s'ouvrira dans l'application. Il est possible d'avoir plusieurs configuration disponibles.
Pour activer la connexion VPN il faut alors se rendre dans l'application "Réglages", puis "VPN" où sont listés les profils disponibles. On peut choisir celui à utiliser et activer la connexion. Si tout se passe bien, le symbole "VPN" apparaît dans la barre d'icones tout en haut de l'écran.
## Erreurs fréquentes
### Erreur "--crl-verify fails" (serveur OpenVPN OpenBSD)
@ -391,11 +397,11 @@ Si l'on utilise une version récente de [shellpki](https://forge.evolix.org/proj
### Erreur "createipforwardentry" (client OpenVPN Windows)
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" (client OpenVPN 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 "cipher final failed" (client OpenVPN Android)