Ceci est une ancienne révision du document !
On cherche à connecter un poste client au travers d'un réseau non sécurisé au serveur. Un hôte virtuel apache associée à l'interface loopback du serveur sera accessible.
Ajout temporarie d'une IP sur l'interface loopback
$ sudo ip addr add
Installer les paquets openvpn easy-rsa
$ sudo apt-get install openvpn easy-rsa
easy-rsa contient un ensemble de scripts assistant la génération des certificats serveur et clients.
$ cd /user/share/easy-rsa # Configuration $ sudo vim vars
...
# sourcer le fichier définissant les variables source ./vars # par précaution supprimer les fichiers temporaires ./clean-all # construire clés et certificat pour l'autorité de certification racine ./build-ca
Après validation des valeurs par défaut, les fichiers suivants ont été créés dans le repertoire ./keys:
Le certificat de l'autorité de certification racine exisant, on peut générer les clés et certificat pour le serveur et les clients:
Pour le serveur:
./build-key-server servername
Pour chaque client on générera un clé:
./build-key client-name
Génération du fichier dhparam pour l'échange de clés. Basé sur l'algorithme Diffie-Hellman, la génération peut prendre un certain temps.
./build-dh
Créer le dossier /etc/openvpn/keys et y copier:
mkdir /etc/openvpn/keys cp keys/ca.crt keys/severname.crt keys/servername.key keys/df2048.pem /etc/openvpn/keys
Créer le fichier de configuration du serveur /etc/openvpn/server.conf avec le contenu suivant:
mode server proto udp dev tun topology subnet ca keys/ca.crt cert keys/ovpngw.crt key keys/ovpngw.key dh keys/dh2048.pem server 10.50.0.0 255.255.255.0 keepalive 10 120 comp-lzo persist-key persist
A propos des directives du fichier ci-dessus:
Vérifier que la machine agira bien en passerelle en transmettant les paquets entre ces différentes interfaces. Vérifier la configuration du noyau:
cat /proc/sys/net/ipv4/ip_forward 1
Si la valeur 1 n'est pas retournée, modifier le fichier /etc/sysctl.conf. Confère wiki
client dev tun proto udp remote 192.168.1.99 1194 nobind persist-key persist-tun ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/client-name1.crt key /etc/openvpn/keys/client-name1.key comp-lzo verb 3