Académique Documents
Professionnel Documents
Culture Documents
com/p/g/DVYfLr
dethegeek
Membre
Inscription : 2014-01-14
Messages : 43
Bonjour
Je propose un tutoriel pour configurer OpenWRT avec OpenVPN de manière à utiliser les services de Freedom-IP. Le début n'est
qu'introduction et présentation rapide d'OpenWRT (car il mérite à être connu et utilisé). Je suppose qu'OpenWRT 12.09 est installé sur un
routeur et possède une configuration permettant d'accéder à internet sans VPN.
Le 2e message de ce sujet contient des notes sur les corrections, améliorations, et limitations de ce tuto. Il est important de lire les
limitations avant de se lancer. A mesure que des améliorations serons faites, elles y seront historisées.
# Introduction
Je suis de plus en plus fâché avec les politiques de respect de la vie privée des grands de ce monde et des grands du monde virtuel (enfin..
d'internet). C'est d'ailleurs une des raisons qui nous rassemblent autour de Freedom-IP. Je n'utilisais le service VPN qu'occasionnellement et
j'estime qu'un usage en pointillé d'un VPN revient à ne pas en avoir du tout. J'ai donc cherché à profiter d'un VPN permanent, pour tous les
équipements ayant accès à internet chez moi. Je veux une solution à configurer et à oublier.
J'utilise OpenWRT sur un routeur grand public de chez Netgear depuis pas mal d'années (WNR854T). C'est donc l'endroit idéal pour
configurer en 1 seule fois la protection totale que je veux obtenir (du point de vue VPN, car le VPN n'est qu'une seule brique d'un grand
chantier que je mène pour rétablir mes droits fondamentaux sur la vie privée).
OpenWRT fonctionne si bien avec mon routeur que quand celui-ci a rendu l'âme il y a 2 mois, je l'ai remplacé à l'identique. C'est pourtant un
produit obsolète (facilement trouvable en occasion à moins de 30 euros; auxquels il faut rajouter l'achat d'une interface wifi mini-pci
compatible (Atheros idéalement).
# Tutoriel
Ce tuto montre comment configurer OpenVRT de manière à utiliser le VPN sans avoir à configurer quoi que ce soir sur les ordinateurs du
réseau local. Cela est valable pour tout les équipements : PC, téléphones (en wifi), tablettes, consoles de jeu (donc attention aux
performances des jeux en ligne en terme de latence).
En supplément facultatif : ouverture du port 22 (SSH) pour une utilisation d'un serveur SSH depuis internet. Cela est transposable assez
facilement pour d'autres services.
Second supplément : Utilisation d'un proxy routé hors du VPN pour une utilisation des deux services principaux de FIP : économie de bande
passante soumise au quota mensuel.
# Prérequis
Un routeur sous OpenWRT 12.09 (attitude adjustment). La version précédente devrait fonctionner également
Un PC sous windows
le logiciel Putty http://www.putty.org/
le logiciel WinSCP http://winscp.net/eng/download.php
Ceux qui utilisent linux devraient être autonomes sur le choix et l'utilisation des outils requis. Sinon, le mieux est de poser la question.
# Installation d'OpenVPN
Se connecter à OpenWRT via son interface web Luci.
Cliquer sur Update package lists. Dans Download and install package saisir openvpn et cliquer sur le bouton OK.
L'interface tun0 est maintenant créée et affichée. Cliquer sur l'onglet Firewall Settings. Choisir la zone rouge wan, puis cliquer sur Save and
apply.
# configuration d'OpenVPN
Pour l'instant OpenWRT 12.09 n'a plus d'interface graphique stable pour configurer OpenVPN. La configuration se fera donc à la main et de
manière simple.
Il est possible que des messages d'erreurs apparaissent après la connexion. Ils ne sont pas génants.
Dans le panneau de droite naviguer dans /etc/openvpn. Appuyer sur F7 pour créer un nouveau dossier nommé freedom-ip
Télécharger sur le site de Freedom-IP le ZIP contenant la configuration d'OpenVPN. Décompresser l'archive dans un dossier du PC. Copier
avec WinSCP les fichiers dans le dossier freedom-ip créé sur le routeur.
Avec WinSCP créer un nouveau fichier dans le dossier freedom-ip du routeur, nommé login.txt
Saisir sur la première ligne l'identifiant de connexion VPN de Freedom-IP
Saisir sur la seconde ligne le mot de passe de connexion VPN de Freedom-IP
cliquer sur un des fichiers .ovpn, le dupliquer en appuyant sur MAJ+F5. Dans le répertoire distant de destination conserver le chemin et
remplacer *.* par openvpn.ovpn. La configurationdu serveur est copiée dans un nouveau fichier et sera utilisé pour le tunnel permanent.
auth-user-pass /etc/openvpn/freedom-ip/login.txt
Eventuellement modifier la ligne remote pour utiliser na nouvelle fonction de selection automatique de serveur dans un pays donné. Exemple
:
remote nl1.freedom-ip.com
deviendra
remote nl-any.freedom-ip.com
Sélectionner le fichier openvpn. Appuyer sur MAJ+F5 pour copier le fichier. Conserver le chemin et remplacer *.* par openvpn.stock
package openvpn
config openvpn 'freedom_ip'
Si OpenVPN arrête d'aficher du texte et que la dernire ligne est similaire à la ligne suivante :
alors la connexion a réussi. Si ce n'est pas le cas, utiliser les messages affichés pour diagnostiquer les problèmes.
Appuyer sur CTRL+C pour arrêter OpenVPN.
nslookup checkip.dyndns.com
Server: 127.0.0.1
Address 1: 127.0.0.1 localhost.
Name: checkip.dyndns.com
Address 1: 216.146.38.70 checkip-iad.dyndns.com
Address 2: 216.146.39.70 checkip-lax.dyndns.com
Address 3: 216.146.43.70 checkip.dyndns.com
Address 4: 91.198.22.70 checkip-ams.dyndns.com
Ouvrir le fichier /etc/config/openvpn avec WinSCP et ajouter les lignes suivantes (une ligne par IP) :
/etc/init.d/openvpn start
logread -f
Après quelques secondes supplémentaires la table de routage devrait afficher des routes dédiées à ces 4 adresses IP :
route -n
Cela activera le mode verbeux au niveau 3 pour voir ce qu'il se passe dans le journal système. Ce journal filtré pour n'afficher que ce qui
concerne OpenVPN est lisible avec la comande :
Tester le routage :
Une route qui n'emprunte pas le VPN affichera en ligne 1 l'adresse IP publique du routeur. Une route qui emprunte le VPN utilise une IP
différente (ici 10.10.0.1)
/etc/init.d/openvpn enable
Ouvrir l'interface web d'OpenWRT, se rendre dans Network, Firewall, Custom rules.
Ajouter dans le fichier affiché le code suivant, en remplacant les 2 occurences de eth1 par le nom de l'interface côté WAN. Modifier
également l'IP 192.168.16.20 par l'IP (dans le LAN) du serveur SSH. si le routeur n'utilise pas br-lan comme interface côté LAN, changer
également ce nom en fonction de la configuration.
Explication : Le code crée une nouvelle table de routage numéro 128 contenant une route par défaut. La route par défaut utilise la passerelle
hors VPN. Quanf un paquet IP provient de l'interface côté LAN, et que l'IP émetrice du paquet est l'IP du serveur SSH, et provient du port 22
(et avec le protocole TCP) alors le paquet est marqué avec le nombre arbitraire 1. Au moment du routage, les paquets marqués avec ce
nombre 1 sont routés en utilisant la table 128. Les autres paquets utilisent le chemin "normal" (le tunnel VPN).
Attention cependant : le trafic ne passant pas par le VPN n'est pas masqué ! le Fournisseur d'Accès Internet peut collecter les adresses IP
qui communiquent par les ports ouverts de cette façon. Il faut donc bien réfléchir aux conséquences de l'ouverture de tel ou tel service. (le
cryptage est de rigueur).
/etc/init.d/firewall restart
/etc/init.d/firewall restart
configurer un navigateur pour utiliser le proxy. Ouvrir une page web quelconque (une page qui affiche son IP par exemple)
Vérifier que le routage fonctionne comme prévu : le compteur de paquets concernés par cette nouvelle règle doit être supérieur à 0
Le résultat ressemble à quelque chose comme ceci (la 2e ligne est celle qui nous intéresse, reconnaissable à l'IP destination et le port
destination) :
La 2e ligne étant celle qui nous intéresse, les compteurs ne doivent plus être nuls si un navigateur configuré avec le proxy a chargé au
moins 1 page web. Cela prouve que le routage fonctionne comme attendu.
# Commandes utiles
Pour désactiver le démarrage automatique d'openVPN :
/etc/init.d/openvpn disable
/etc/init.d/openvpn stop