Dans notre exemple nous avons choisi le mode d’authentification par clef SSL. Je vous invite à consulter notre précédent article, qui vous expliquera comment générer les certificats client et serveur.

Configuration du client

client
;dev tun
dev tap

remote $SERVER_IP 1194
proto udp
;proto tcp
nobind

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/$client.crt
key /etc/openvpn/keys/$client.key

comp-lzo

log         /var/log/openvpn.log
log-append  /var/log/openvpn.log

verb 3 

Pensez à adapter les variables $client et $SERVER_IP, avec vos propres paramètres.

Configuration du serveur

/etc/openvpn/server.conf (sous Debian)

port 1194
proto udp
;proto tcp
;dev tun
dev tap

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/$server.crt
key /etc/openvpn/keys/$server.key
dh /etc/openvpn/keys/dh1024.pem

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt

push "redirect-gateway"

push "dhcp-option DNS $SERVER_DNS1"
push "dhcp-option DNS $SERVER_DNS2"

comp-lzo
keepalive 10 120

log        /var/log/openvpn.log
log-append /var/log/openvpn.log
status /var/log/openvpn-status.log

verb 3

Pensez à adapter les variables $SERVER_DNS1, $SERVER_DNS2 et $server avec vos propres paramètres.

NAT de l'IP source cliente.

Pour ne pas s'embêter avec le routage de la classe d'adresse cliente, nous allons traduire l'IP source cliente par l'une des IP de notre serveur déjà routé sur le réseau de l'entreprise.

Avec iptables c'est simple.

# iptables -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source $IP

Ici eth0 est notre interface de sortie et $IP l'une des adresses configuré sur eth0. Si vous n'avez pas besoin de finesse un simple -j MASQUERADE devrait fonctionner sans problème.