J’ai profité d’une offre promotionnelle proposée par TigerVPN pour leur service de VPN à vie pour 30€. C’est toujours pratique de pouvoir changer d’IP en cas de route réseau défectueuse ou lorsque l’IP du FAI est banni par le service qu’on essaye d’atteindre (les restriction géographique par exemple tombent dans ce cas).
Bref, Tiger et la plupart de ses concurrents proposent des VPN clé-en-main pour plateforme Windows et mobile. On a donc souvent du IPSec/L2TP, OpenVPN, ou parfois l’utilisation d’un client maison (mais c’est vraiment pas génial sur mobile, du fait de la mauvaise intégration d’un point de vue de la continuité du service et de la consommation batterie). Sur ces plateformes, ça marche mais on ne trouve aucune informations techniques permettant de s’y connecter proprement depuis un client Linux.
Voici ma configuration, après pas mal d’essais, pour se connecter à TigerVPN en utilisant Strongswan sous Gentoo.
Tout d’abord, on aura besoin des paquets suivants :
emerge va xl2tpd strongswan
La configuration de la partie IPSec. Elle établit un tunnel entre le Linux et TigerVPN, uniquement pour les paquets udp sur le port 1701. C’est le port qu’utilise par défaut le protocole L2TP.
conn tigervpn add=route type=transport right=xxx.tigervpn.com esp=aes256-sha1! ike=aes256-sha1-modp1024! rekey=no keyingtries=1 leftprotoport=udp/1701 rightprotoport=udp/1701 leftid=192.168.12.14 leftsubnet=192.168.12.14/32 rightid=%any leftcert= leftca= rightca= leftauth=psk rightauth=psk keyexchange=ikev1 mobike=yes
192.168.12.14 %any : PSK "secret-partagé-tigervpn"
Maintenant, on passe à la configuration de la couche L2TP :
[lac tigervpn] lns = xxx.tigervpn.com ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd require authentication = yes
Puis la configuration de la couche PPP :
ipcp-accept-local ipcp-accept-remote refuse-eap require-mschap-v2 noccp noauth idle 1800 #crtscts mtu 1410 mru 1410 nodefaultroute lock proxyarp silent name your-username password your-very-secret-password
On vérifiera que les fichiers contenant des mot de passes ne sont accessibles que par root !
Maintenant, on peut démarrer les différents services :
/etc/init.d/ipsec start /etc/init.d/xl2tpd start sleep 3 echo "c tigervpn" > /var/run/xl2tpd/l2tp-control
Le sleep s’assure que les deux daemons soient bien initialisées.
La commande echo demande à xl2tpd de se connecter au lac nommé tigervpn. Ce lac a pour LNS xxx.tigervpn.com, lequel doit passer en IPSec.
Si tout a bien fonctionné, une nouvelle interface pppX est visible. Il n’y aura plus qu’à ajouter les différentes routes vers les destinations que l’on souhaite faire passer dans le VPN.
Enjoy !