comment utiliser les réseaux sans-fil de façon un peu parano!
Par Charles Lacroix le mercredi, septembre 22 2010, 19:13 - Informatique - Lien permanent
Il y a quelques années, quand j'ai acheté mon premier portable, les réseau sans-fil était tout neuf. Personne ne les sécurisait, le wardrivin' était à la mode dans mon entourage. J'avais même volontairement laissé mon wifi ouvert afin d'espionner mes voisins qui décidaient d'utiliser ma connexion internet. En faisant cela, j'ai réalisé ce qui se passe quand on ne contrôle pas notre dhcp et/ou notre gateway vers internet. C'est à ce moment que j'ai décidé d'encapsuler mes communications dans un tunnel VPN. J'ai essayé plusieurs technologies: IPSEC, CIPE, pptp, des tunnel SSH bidon, mais rien n'était satisfaisant, souvent trop de manipulations à faire à chaque fois qu'on se connecte. J'ai longtemps utilisé CIPE ( Crypto IP Encapsulation ) un logiciel très simple à configurer comparativement à IPSEC mais il comporte encore quelques lacunes. Un jour, apparu, OpenVPN!!
Depuis plusieurs années, j'utilise OpenVPN dès que j'ai besoin d'une solution vpn. Simple, stable, sécuritaire, supportant plusieurs niveau d'authentification, du proxy http, bref rien à dire de plus pour me convaincre. Il y a même des outils hyper simple à utiliser pour faire la gestion des clef SSL.
La première étape est de se configurer un serveur OpenVPN.
Voici mon setup. J'utilise Centos 5.5, mais n'importe quelle version de linux/bsd ferait le travail tout aussi bien. Il se peut que les path des logiciel ne soient pas au même endroit, mais le concept reste le même.
Voici les grande lignes:
* Installer OpenVPN sur le serveur * Générer les clefs SSL * Éditer le fichier server.conf * Paramétrer notre firewall * Copier certaines clefs vers nos clients ( portable, téléphone cellulaire, etc. ) * Configurer notre client pour se connecter sur notre serveur.
yum install openvpn cd /etc/openvpn/ cd easy-rsa ### configurer le fichier "vars" et répondre aux questions qui nous sont demandées. . ./vars sh clean-all sh build-ca sh build-key-server my-srv sh build-key my-cli1 sh build-key my-cli2 sh build-key my-cli3 sh build-dh openvpn --genkey --secret ta.key cp keys/*.crt ../keys/ cp keys/*.key ../keys/
Quant à la configuration du firewall, je n'entrerai pas dans les détails. Brièvement, j'utilise du SNAT étant donné que j'ai une ip fixe ( chez iWeb ), mais si j'étais hébergé à la maison j'utiliserais fort probablement du Masquerade et un Dyndns.
Éditer /etc/sysctl.conf et s'assurer que les lignes suivantes sont présentes:
net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 1 # relire notre config et l'appliquer sysctl -p iptables -t nat -A POSTROUTING -s 10.18.137.0/255.255.255.0 -o eth0 -j SNAT --to-source 72.55.147.X iptables -I RH-Firewall-1-INPUT -d 72.55.147.X -p udp -m udp --dport 1194 -j ACCEPT service iptables save
Ensuite, on peut éditer /etc/sysconfig/iptables ou votre quelconque script de firewall.
Voici mon fichier de configuration
local 72.55.147.X port 1194 proto udp dev tun ca keys/ca.crt cert keys/serveur.crt key keys/serveur.key # This file should be kept secret dh keys/dh2048.pem server 10.18.137.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1" push "dhcp-option DNS 10.18.137.1" # rediriger son dns sur une machine qu'on contôle! keepalive 10 120 tls-auth keys/ta.key 0 # This file is secret comp-lzo persist-key persist-tun status openvpn-status.log verb 3
Ensuite il faut copier nos clef "clients" vers nos ordinateurs portables. Dans mon cas, j'utilise TunnelBlick sur macosx et le client OpenVPN qui vient avec Android.
Pour utiliser OpenVPN sur son cellulaire il faut malheureusement l'avoir préalablement rooté son appareil. Je n'entrerai pas dans ces détails, mais sur ce site ils ont tout expliqué comment faire: http://www.cyanogenmod.com/ Lorsque CyanogenMod-6.0, de préférence, est installé, on va dans le Market, on installe OpenVPN-Installer et OpenVPN-Settings. Ensuite, il faut copier les clefs ca.crt, ta.key, my-cliX.crt. my-cliX.key dans un répertoire qui s'appelle openvpn à la racine de notre carte SD.
Voici le fichier de configuration que j'ai sur mon appareil: Notez qu'il a été créé par OpenVPN-Settings et qu'il est ensuite facilement éditable à partir de notre ordinateur.
client dev tun proto udp remote 72.55.147.X 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert my-cliX.crt key my-cliX.key tls-auth ta.key 1 comp-lzo verb 4
Ceci étant fonctionnel, j'ai tout de même quelques désagréments. Le vpn ne s'accroche pas automatiquement au démarrage du wifi. Si le téléphone tombe en veille ça cause parfois problème lors du réveil. Quand on est dans un environnement où il y a plusieurs bornes ( cégep, université, etc ), il se peut qu'en se déplaçant, et qu'on change de borne, le routing se brise, mais rien de terrible... Off/On du vpn et le tour est joué.
Attention à votre batterie! Elle se vide à vue d'oeil.


Commentaires
Salut, génial cet article. j' ai aussi un site ou j' essaye de traiter des vpn et de la sécurité avec des tutos d' installation sur routeur ou autres supports...
Cela m' intéresserait que tu viennes publier cet article sur mon blog. A moins que je puisse l' utiliser ?
Tu as mon mail. a plus et bravo