PIA utilise des DNS menteurs

On m’a rapporté que Private Internet Access, le VPN qui sponsorise Linux Mint, utilise des DNS menteurs… Des sites comme Kickass Torrents n’existent pas, selon eux :

$ ping kat.cr
ping: unknown host kat.cr

C’est bien connu de leurs utilisateurs Linux, le client officiel PIA change le fichier /etc/resolv.conf pour y insérer ses propres DNS lors de la connexion, avant de le remettre à son état d’origine à la déconnexion :

nameserver 209.222.18.222
nameserver 209.222.18.218

Ça pose non seulement le problème du DNS menteur, mais également celui de dnsmasq (cache local des requêtes DNS) ou de son propre DNS installé en réseau local. Sans parler du fait que ces serveurs sont localisés aux États- Unis, le temps de réponse est loin d’être optimal. Du coup, comment outrepasser cela ?

Modifier le comportement du gestionnaire beta

Mon raisonnement était simple : le gestionnaire est un script, on le modifie pour ne pas changer resolv.conf, problème réglé. Mais ce n’est pas aussi simple. Le client officiel est installé dans ~/.pia_manager/. En se baladant un peu, on voit que c’est du Ruby, on essaie d’en ouvrir un et…

"Ruby script '"+__FILE__+"' is protected by RubyEncoder and requires a RubyEncoder loader to be installed.

Hum. Pas cool.

Ne pas utiliser le client beta

La seconde solution qui vient à l’esprit est d’utiliser la connexion en PPTP, telle que décrite dans le support. Eh, on peut même utiliser l’OpenVPN. Bon, sur certaines machines ce n’est pas aussi simple à installer, et l’on perd la connexion automatique au démarrage, mais on y gagne quelques 400 Mo de disque et 200 Mo de RAM, ce qui n’est pas rien…

Problème avec Linux Mint 17.2 : la connexion en OpenVPN ne se fait pas parce qu’il n’y « a pas de secrets VPN valides ». Pas de prompt de mot de passe. Il semble que ce soit un problème récurrent sous dérivées d’Ubuntu 14.04 (qui n’est pas officiellement supportée par PIA, alors que la 12.04 l’est… Grrrr, 3 ans de retard, c’est une éternité, on dirait le support Steam).

La solution est assez simple, en plus du paquet network-manager-openvpn il faut le paquet network-manager-openvpn-gnome :

sudo apt-get install network-manager-openvpn-gnome

Et on a enfin un prompt pour le mot de passe ! Le fichier /etc/resolv.conf n’est pas modifié, problème résolu :

nameserver 127.0.0.1
nameserver 80.67.169.12
nameserver 80.67.188.188

Donc, ça marche, mais quelques points noirs :

  1. Il faudra enregistrer le mot de passe. Pour chacune des connexions. Cinq bonnes minutes de setup, ça reste raisonnable.
  2. La connexion n’est pas automatique au démarrage. Il est cependant possible de la lancer automatiquement lors d’une connexion wifi, mais cela se fait réseau par réseau.
  3. Possible DNS leak. J’invite à vérifier avec un outil en ligne que vous n’êtes pas sujet à ce problème.

On s’amuse à faire un ping sur un domaine bloqué :

$ ping kat.cr
PING kat.cr (195.3.147.99) 56(84) bytes of data.
^C
--- kat.cr ping statistics ---
27 packets transmitted, 0 received, 100% packet loss, time 26199ms

Voilà, donc outre le DNS menteur, les IP semblent bloquées également. Oui, les 8 qu’utilise Kickass. The Pirate Bay, lui, fonctionne correctement…

EDIT 15 septembre 2015 : Certains sites comme Kickass ne sont plus bloqués au niveau IP.