Quentin Demoulière

Mon blog personnel

Bénéficier d'un accès internet propre et respectueux des questions de neutralité sans changer de FAI, c'est possible !

Rédigé par Quentin Demouliere - - 4 commentaires

Comme vous le savez, je suis attaché aux questions de neutralité du net et du réseau ainsi qu'à l'internet libre. Mais pour de mauvaises raisons (téléphone, TV par ADSL, flemmingite aïgue), je suis abonné chez un opérateur assez important qui ne respecte pas ces concepts.

J'ai donc trouvé une solution intermédiaire et un petit peu militante quand-même :p. J'ai souscrit à un accès VPN chez FDN dont le prix est plus que modeste. A partir de là, je vais vous expliquer comment utiliser "la machine à laver les paquets IP" de FDN pour l'ensemble de votre réseau domestique.

Voici un petit listing des outils nécessaires :

  • Un abonnement VPN FDN où l'on vous attribue une adresse IPv4 fixe publique et un préfixe IPv6 global en /48
  • Un Raspberry PI, ou un équipement équivalent (Soekris, Alix, ou une machine quelconque toujours connectée)
  • Raspbian Jessie (dans le cas d'un Rasberry ou toute autre distribution Linux)
  • Un accès Internet effectif depuis votre FAI historique
  • Un service DHCP (à activer sur votre Rasberry, pour ma part, il est activé sur mon commutateur Cisco)
  • OpenVPN pour la partie client VPN

L'idée est assez simple : créer un tunnel chiffré jusqu'au réseau FDN passant par l'infrastructure de mon FAI. Puis re-router tout le trafic de mon réseau domestique à destination d'Internet dans ce tunnel. Ainsi votre opérateur ne voit uniquement que le tunnel et n'est (en théorie) pas capable de voir le contenu qui y circule puisque le tunnel est chiffré.

 

Mise en place

Installation d'OpenVPN

$ sudo aptitude install openvpn

$ modprobe tun

 

Configuration d'OpenVPN

Concernant la création du fichier de configuration de votre client VPN, je vous invite à consulter ce lien. En effet, FDN fournit un fichier quasi-prêt à l'emploi. Votre fichier devra se trouver dans le répertoire : /etc/openvpn/ avec une extension en .conf.

Exemple : /etc/openvpn/ovpn.conf

Pour la première connexion, c'est plutôt pas mal d'avoir la verbosité du daemon OpenVPN sur la  sortie standard (l'écran) :

$ sudo openvpn -c /etc/openvpn/ovpn.conf &

Si tout se passe bien, pour les fois suivantes, passez par le gestionnaire de service :

$ sudo service openvpn start|stop|restart

 

Activation du routage et NAT

Votre Raspberry (votre nouvelle passerelle) va devoir router les paquets provenant de votre réseau local sur son interface physique eth vers FDN par le tunnel VPN et son interface virtuelle tun0. Par défaut, sous Linux, le routage n'est pas activé, on va donc y remédier :

echo 1 > /proc/sys/net/ipv4/ip_forward

Vous le savez sûrement votre réseau local fonctionne avec des adresses IP privées non routables sur Internet (RFC 1918). Votre Raspberry jouera donc le même rôle que votre MachinBox puisqu'il aura une adresse IP publique sur son interface tun0. C'est lui qui s'occupera de la translation entre vos adresses IP privées et son adresse IP publique afin que vous puissiez communiquer avec le reste du Net.

Ce mécanisme un peu ragoutant mais bien pratique se nomme le NAT (masquerading, ou surcharge NAT pour les aficionados Cisco). Il est indispensable et nous allons donc l'activer sur notre Pi avec l'aide de Netfilter/IPTABLES. Cela doit vous donner un truc dans ce goût-là :

$ sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o tun0 -j MASQUERADE

Après l'option -s, il est nécessaire de renseigner votre préfixe IPv4 privé.

J'ai également décidé de faire passer par le tunnel VPN l'ensemble de mon trafic IPv6. Mon opérateur m'a attribué un préfixe IPv6 /61 global (publique) qui permet à tous mes équipements de communiquer sur Internet sans l'aide du NAT. Cependant, je veux forcer l'ensemble de mon trafic IPv6 à passer par mon tunnel VPN tout en conservant le préfixe fournit par mon FAI.

J'ai donc réalisé une manip très crade, déconseillée par l'IETF et la plupart des spécialistes IPv6. Pas grave, je voulais aller vite, je suis resté pragmatique et j'ai choisi d'utiliser encore le NAT mais en IPv6 (si, si, ça marche je vous jure !). Par contre, le NAT 66 n'est pas supporté par toutes les versions de netfilter, donc faites attention (la version fournie avec Raspbian Jessie le supporte).

$ sudo vim /etc/sysctl.conf

net.ipv6.conf.all.forwarding=1

$ sudo ip6tables -t nat -A POSTROUTING -s 2001:0DB8::/61 -o tun0 -j MASQUERADE

 

Les dernières étapes

Il ne vous reste plus qu'à configurer proprement un service DHCPv4 et un service DHCPv6 (ou radvd) vous fournissant comme passerelle non plus les adresses de votre MachinBOX et les adresses IP des resolvers DNS de votre FAI mais bien les adresses IP de votre Pi et des serveurs DNS de chez FDN. Pensez enfin à rajouter quelques règles de filtrage iptables sur votre Pi afin de sécuriser le tout.

 

Conclusion

Lorsque l'on est militant et un peu feignant, voici une solution intermédiaire qui permet de contourner les atteintes à la neutralité du NET émisent par la majorité des grands FAI, tout en conservant quelques avantages (Mfin... des avantages pas si sûr) liés à ce type d'abonnement. Le petit bémol lorsque l'on utilise une connexion ADSL : une perte de performance obligatoire mais absolument pas rédhibitoire.

Peut-être passerai-je un jour sur un abonnement complet chez un FAI associatif. Ce n'est pas encore le cas, mais voilà finalement une alternative crédible pour les gens sensibles aux questions de neutralité du réseau Internet et qui sont encore chez l'un des 4 grands FAI français.

Et n'oubliez pas, Have lot of fun ;)

 

Debian and Unix Addict

4 commentaires

#1 Informatique Rouen a dit :

Bonjour
je vous recommande Vpnbook 6 serveurs totalement gratuits ...
il y a deux failles importantes à boucher...

Comment sécuriser efficacement son Vpn

Lorsque vous utilisez une connexion par VPN, vous pourriez vous attendre à ce que l’ensemble de votre trafic passe par celui-ci et c’est bien évidemment ce que vous recherchez ! Ce n’est malheureusement pas tout le temps le cas…

Le DNS (système de noms de domaine) est utilisé pour traduire un domaine tel que freedom-ip.com en adresse ip directement utilisable pour l’acheminement des paquets de données sur internet.

Donc lorsque vous entrez une URL dans votre navigateur par exemple, votre ordinateur contacte un serveur DNS. Jusque là tout vas bien.

Seulement il y à un hic ! La plupart des FAI attribuent à leurs clients des serveurs DNS dont ils ont le contrôle ce qui leur permet, entre autres, l'enregistrement de votre activité sur Internet…

Pour commencer on ouvre le panneau de configuration
on clic sur réseau et internet puis sur Centre réseau et partage
puis on clic sur Ethernet.
On clic ensuite sur propriété ... et cliquez sur protocole internet version 4 choisir utilisez les serveurs dns suivant ...

DNS Publics filtrant Yandex (anti malware)
Serveur DNS préféré mettre 77.88.8.8
Serveur DNS auxiliaire mettre 77.88.8.2

puis sélectionner valider en quittant ..

Dans la barre de recherche en bas on tape cmd et on l exécute en administrateur ....
on tape la ligne de commande ipconfig /flushdns
on se connecte ensuite a son vpn et on retape ipconfig /flushdns
Cette commande dos va vider le cache DNS

il y a une faille de sécurité importante dans Firefox et Google Chrome
il faut désactiver WebRTC (masquer l isp et l adresse ip privé )
dans la barre d adresse de Firefox ...tapez about:config
Trouvez la ligne media.peerconnection.enabled.
faire un double clic dessus pour la mettre sur false ce qui va désactiver le WebRTC.

Reste plus qu à tester !

http://ipleak.net/

#2 Quentin Demouliere a dit :

@Informatique Rouen :
Bonjour,

Personnellement, je me méfie toujours des serveurs VPN que je ne connais pas... Je ne sais pas qui les administre et dans quels buts ? Ceci a son importance puisqu'en tant qu'utilisateur du VPN, tout mon trafic transite par celui-ci. L'avantage d'un VPN via un FAI associatif dont je suis membre est tout simplement le niveau de confiance qui est accru. Par contre, l'idée majeure du VPN associatif est de garantir un accès internet propre, neutre et éthique et non de favoriser l'anonymat (et il existe des entreprises qui proposent cela mais encore une fois la question de la confiance vis à vis de ces dernières reste entière...).

Concernant les resolvers DNS que j'utilise, ne vous inquiétez pas ! Je dispose de mon propre résolver DNS hébergé sur mon boitier VPN mobile qui passe par le tunnel VPN grâce à l'option redirect-gateway def1 d'OpenVPN. De plus, si j'avais à utiliser des DNS proposés par des tiers, j'éviterai soigneusement ceux que vous proposez ainsi que ceux de google et d'opendns. Je me dirigerai plutôt vers ceux de FAI associatifs que je connais.

Pour l'option à configurer sur Firefox, merci je ne la connaissais pas.
Cordialement.

#3 Informatique sur dieppe a dit :

J utilise Openvpn avec les serveurs vpnkeys et Free Openvpn...
pour les DNS j utilise soit opendns ou yandex ...

#4 Quentin Demouliere a dit :

OpenDNS et Yandex ne sont pas vraiment recommandés. L'idéal est d'avoir son propre resolver DNS personnel supportant DNSSec genre un Unbound sous NuxNux ou BSD. Ensuite concernant les VPN, je préfère connaître exactement les fournisseurs que je sollicite, question de confiance et de point de vue.

Cdlt,

Écrire un commentaire

Quelle est la quatrième lettre du mot inrhsu ? :