Dans certains cas (déplacement professionnel, réseau peu sûr/partiellement bloqué, ou tout simplement confidentialité pour la navigation), je désire protéger ma navigation.
Il est possible d’utiliser une connexion SSH pour se connecter une machine distante et de s’en servir comme relais via OpenVPN.
Préparons d’abord notre serveur (testé sur Debian) :
En premier, notre serveur VPN avec le fichier de configuration script
d’init ( /etc/openvpn-server.conf
par exemple )
remote localhost dev tun ping 30 ifconfig 192.168.5.1 192.168.5.2 proto tcp-server port 6124
On lance le daemon avec sudo openvpn --conf /etc/openvpn-server.conf
Puis le proxy ( squid 3 dans mon cas)
Il faut juste ajouter dans les règles acl l’ip du client (192.168.5.2),
rechercher la chaine acl localhost src 127.0.0.1⁄32 & insérer à la suite
:
acl localhost src 192.168.5.2
Un petit /etc/init.d/squid3 restart
pour prendre en compte les
modifications.
Depuis notre portable / poste de travail, on se connecte à notre serveur :
ssh -L 6124:localhost:6124 utilisateur@monserveur
(L’option -L 6124:localhost:6124
permet que le port 6124 en écoute qui
se trouve sur le serveur sera également en écoute sur l’interface
localhost:6124
sur la machine cliente)
Lançons maintenant la connexion VPN qui passera via le tunnel SSH
openvpn --config /etc/openvpn-client.conf
Contenu du fichier openvpn-client.conf
remote localhost dev tun ping 30 ifconfig 192.168.5.2 192.168.5.1 proto tcp-client port 6124
Si tout va bien, on devrait voir pousser une nouvelle interface réseau
(tun0
dans la plupart des cas).
Ensuite, dans notre navigateur, on paramètre le proxy sur HTTP / IP: 192.168.5.1 / port: 3128.
Dans la plupart des cas, je paramètre une nouvelle session de navigateur utilisant le proxy, me permettant de ‘choisir’ où va sortir le traffic.