wiki:Realisations/2010-2011/Projet/Core2/Documentation/OpenVPN

Version 1 (modified by teste, 14 years ago) (diff)

--

OpenVPN

Installation

Dépôt dag

L'installation d'OpenVPN nécessite le dépôt dag. Il faut l'ajouter dans /etc/yum.repos.d.

/etc/yum.repos.d/dag.repo

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1

Installation

Tout simplement

yum install openvpn

Création des clés et certificats

Copie des scripts de génération

cp -R /usr/share/doc/openvpn-2.1.4/easy-rsa/ /etc/openvpn/
cp /usr/share/doc/openvpn-2.1.4/sample-config-files/server.conf /etc/openvpn/

Dossiers et droits

cd /etc/openvpn/easy-rsa/2.0/
chmod +x clean-all build-ca build-key-server build-dh build-key whichopensslcnf pkitool

Édition du fichier vars

Il faut éditer ce fichier et remplir les champs qui nous serviront à générer les clés.

cd /etc/openvpn/easy-rsa/2.0/
vim vars

Tout à la fin du fichier, par exemple

export KEY_COUNTRY="UK"
export KEY_PROVINCE="Greater London"
export KEY_CITY="London"
export KEY_ORG="Core2"
export KEY_EMAIL="root@core2.co.uk"

Génération

L'argument passé à au script build-key-server détermine le nom des fichiers généré.

Le . avant le ./ n'est pas un erreur. Il permet d'exécuter le script dans le même shell sans créer un fork. C'est utile pour ce script pour que tous les exports qu'il contient soit fait dans l'environnement de l'utilisateur.

. ./vars
./clean-all
./build-ca
./build-key-server server
./build-dh

Copie de clés et certificats

mkdir /etc/openvpn/keys
keys/ca.crt /etc/openvpn/keys/
cp keys/dh1024.pem /etc/openvpn/keys/
cp keys/server.key /etc/openvpn/keys/

Configuration du serveur OpenVPN

On va configurer le serveur pour écouter sur le port 1987, en utilisant les certificats et clés générés. On va également lui faire propager un route vers tout le réseau 10.30.0.0/16 au client.

Pour faire passer le VPN à travers le tunnel SSH, il faut le configurer comme un VPN TCP.

Enfin la plage d'IP qu'on va utiliser dans le VPN sera 192.168.100.0.

vim /etc/openvpn/server.conf

Exemple de /etc/openvpn/server/conf (ne sont affichées que les parties intéressantes)

proto tcp
dev tun

ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem

server 192.168.100.0 255.255.255.0

push "route 10.30.0.0 255.255.0.0"

user nobody
group nobody

On peut également l'ajouter aux scripts de démarrage

chkconfig openvpn start

Configuration d'iptables

La configuration du serveur VPN seule ne suffit pas, il faut également faire un NAT pour tous les requêtes provenant du tunnel.

Pour plus d'information sur iptables : Documentation » iptables

iptables -t nat -A POSTROUTING -s 192.168.100.0/255.255.255.0 -d 10.30.130.0/255.255.255.0 -o eth0 -j SNAT --to-source 10.30.130.1
iptables -t nat -A POSTROUTING -s 192.168.100.0/255.255.255.0 -o eth1 -j SNAT --to-source 10.30.1.1

Démarrage du serveur OpenVPN

Ne pas oublier de le démarrer

/etc/init.d/openvpn start

Configuration du client