Client OpenVPN faisant office de passerelle sous OpenWrt
Rédigé par Nicolas Sulek
Aucun commentaire
Classé dans : Réseau, Services réseaux
Schéma réseau
![réseau OpenVPN-OpenWrt réseau OpenVPN-OpenWrt](http://sulek.fr/data/images/openvpn_openwrt.png)
Installation du client
Tout d'abord, il faut installer le client OpenVPN fourni avec Open Wrt :opkg update; opkg install openvpn-openssl
Paramétrage du client OpenVPN
Il faut créer un fichier /etc/config/openvpn contenant les informations nécessaires pour se connecter à notre serveur OpenVPN (notamment les certificats) :config openvpn 'myvpn' option enabled '1' option dev 'tun' option proto 'udp' option log '/tmp/openvpn.log' option verb '3' option ca '/etc/openvpn/ca.crt' option cert '/etc/openvpn/client.crt' option key '/etc/openvpn/client.key' option comp_lzo 'yes' option port '1194' option client '1' option remote_cert_tls 'server' option remote 'adresse_serveur 1194'
Paramétrage du réseau
Il faut créer l'interface vpn0 qui utilisera le périphérique tun0 créé par OpenVPN.uci set network.vpn0=interface uci set network.vpn0.ifname=tun0 uci set network.vpn0.proto=none uci commit network; /etc/init.d/network reload
Paramétrage du pare-feu
On va créer une nouvelle zone dans le pare-feu dans laquelle sera l'interface vpn0, qui acceptera à peu près tout (trafic entrant, sortant, transféré) et fera du masquage des adresse IP internes.uci add firewall zone uci set firewall.@zone[-1].name=vpn uci set firewall.@zone[-1].input=ACCEPT uci set firewall.@zone[-1].forward=ACCEPT uci set firewall.@zone[-1].output=ACCEPT uci set firewall.@zone[-1].network=vpn0 uci set firewall.@zone[-1].masq=1 uci set firewall.@zone[-1].mtu_fix=1 uci commit firewall; /etc/init.d/firewall reload
Configuration du serveur OpenVPN
Pour que le serveur puisse faire la correspondance entre notre réseau interne et les paquets extérieurs, il faut lui donner quelques informations. Dans /etc/openvpn/server.conf, ajouterclient-config-dir ccd route reseau_interne masque_reseau_interneDans le répertoire /etc/openvpn/ccd, il faut créer un fichier portant le nom du client tel que défini dans les certificats et indiquer :
iroute reseau_interne masque_reseau_interne