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.