De chez moi, j'aimerais bien accéder au réseau privé de mon employeur. De chez mon employeur, j'aimerais bien accéder à mon réseau privé. Mais tout ceci dans la convivialité la plus totale, sans avoir à utiliser le réseau de tunneling.

Vous connaissez probablement l'outil du bien OpenVPN. Ce dernier, en plus d'être évangeliquement simple, fournit moult directives pour manipulier votre routage-cuisine. Voici par exemple les fichiers de conf, respectivement, de mon serveur OpenVPN :

# -- conf serveur

tls-server

port 4343
dev tun

# on change de repertoire
cd /home/imil/etc/openvpn
# certificats et clés (voir http://openvpn.net/howto.html pour leur génération)
ca certs/certificatserveur-ca.crt
cert certs/cerificatclient.crt
key certs/cleclient.key
dh certs/dh1024.pem
# on permet plusieurs clients avec le meme common name (déconseillé)
# duplicate-cn

# configurations client particulières
client-config-dir ccd

# pool privé sur lequel vont s'établir les tunnels
server 10.40.0.0 255.255.255.0
# on retient les ips allouées dans le fichier ipp.txt
ifconfig-pool-persist ipp.txt

# on permet aux clients de s'atteindre
client-to-client
# placement, sur le serveur, des differentes routes vers les réseaux à router
route 192.168.1.0 255.255.254.0
route 192.168.2.0 255.255.255.0
route 192.168.3.0 255.255.255.240
# routes à pousser sur les clients
push "route 192.168.1.0 255.255.254.0"
push "route 192.168.2.0 255.255.255.0"
push "route 192.168.3.0 255.255.255.240"

# on utilise la compression de type lzo
comp-lzo

# directives de maintient de connexion
keepalive 10 60
ping-timer-rem
persist-tun
persist-key

# logs
status openvpn-status.log

# verbosity
verb 3

La conf client :

# -- conf client
tls-client

proto udp
dev tun

remote serveur.openvpn 4343

# inutile de binder sur un port
nobind

cd /home/imil/etc/openvpn
ca certificatserveur-ca.crt
cert client.crt
key client.key

comp-lzo

keepalive 10 60
ping-timer-rem
persist-tun
persist-key

# on récupère les differentes directives que le serveur a à nous pousser
pull

verb 3

Mon client est nativement en charge du routage du reseau 192.168.3.0/28, il ne faut donc PAS lui pousser de routes pour ce réseau. Grace à la directive client-config-dir placée sur le serveur, je renseigne le fichier

ccd/common-name

(ou “common name” provient du certificat généré) avec la liste des routes à ne PAS pousser sur le client, les internal routes, par exemple :

[~/etc/openvpn] cat ccd/iMil
iroute 192.168.3.0 255.255.255.240

Il sera par contre notifié par le serveur de la route à suivre pour atteindre les réseaux 1 et 2.

Reste à démarrer openvpn sur le serveur :

openvpn --config /path/vers/openvpn-serveur.conf

Puis sur le client

openvpn --config /path/vers/openvpn-client.conf

Pour comprendre la signification exacte de chaque directive, man openvpn evidemment.

unix/openvpn_d_un_reseau_a_l_autre.txt · Last modified: 2010/01/12 13:29 (external edit)