OpenVPN road-warrior et Shorewall
Posted on Sun 22 October 2017 in Libre
Pour l'usage en déplacement/depuis l'étranger/sur des Wi-Fi pourris, il est intéréssant de disposer d'une connexion VPN.
J'utilise pour cela l’intéressant script "OpenVPN road-warrior", certes très vindicatif dans le titre, néanmoins très efficace : https://github.com/Nyr/openvpn-install
Le setup est le suivant :
utlisateur <=== vpn ===> Serveur + OpenVPN <---> Internet
Depuis quelques temps j'ai pris gout à utiliser Shorewall afin de maîtriser simplement la configuration firewall de ce serveur.
L'utilisation concurrente de Shorewall + OpenVPN est possible il faut tout de même prendre soin de paramétrer tout cela correctement
Fichier /etc/shorewall/interfaces
Rien de transcendant, juste déclarer l'interface vpn
#ZONE INTERFACE OPTIONS
net eth0 dhcp,tcpflags,logmartians,nosmurfs,sourceroute=0
vpn tun0 dhcp
Fichier /etc/shorewall/masq
Il faut indiquer à Shorewall qu'il faut effectuer un masquerade du traffic venant du sous-réseau 10.8.0.0/24 (réseau VPN) vers l'interface eth0 (patte Internet sur le serveur)
eth0 10.8.0.0/24
Fichier /etc/shorewall/policy
Autoriser le traffic provenant du VPN vers eth0 dans le fichier policy
###############################################################################
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
[...]
vpn net ACCEPT
Fichier /etc/shorewall/rules
Autoriser le service OpenVPN à écouter sur le port que vous utilisez. A noter que 1194 est parfois filtré, préférez-y un port plus standard (443/80/53/...) ( voir https://memo-linux.com/openvpn-sur-le-port-443-partage-avec-un-serveur-web/)
# OpenVPN
ACCEPT net $FW udp 1194
Fichier /etc/shorewall/tunnels
Dernier fichier a ne pas oublier sinon ça ne peut pas fonctionner, déclarer le tunnel. Adapter avec le port UDP ou TCP choisit et l'IP publique de votre serveur
#TYPE ZONE GATEWAY GATEWAY_ZONE
openvpn:1194 net IP_SERVEUR
Test de connexion
Tout est prêt, plus qu'a tester si tout fonctionne.
Tester la connexion OpenVPN. Si connexion OK on passe à la suite.
Lancer un ping vers une IP, si shorewall n'a pas été redémarré ça ne doit pas passer. Relancer shorewall en mode safe (rollback vers ancienne configuration automatique)
shorewall safe-restart
Le ping doit maintenant passer > la connexion sort bien par eth0 vous avez un OpenVPN qui roule pour vous connecter de n'importe ou!