URL: https://linuxfr.org/users/sebastienb/journaux/identifier-un-r%C3%A9seau Title: Identifier un réseau Authors: Sébastien B. Date: 2011年11月18日T13:37:18+01:00 License: CC By-SA Tags: debian Score: 12 Bonjour à tous ! Les VPNs, c'est vraiment super pratique. Surtout quand on est étudiant et qu'on vadrouille de réseaux en réseaux dans lesquels on a pas confiance. Alors déja je vais essayer d'attiser votre paranoïa pour que je me sente moins seul dans mon délire, et ensuite je vais vous parler de ce que j'utilise en solution de VPN, et enfin je finirais par poser une petite question pour pouvoir améliorer ma petite infrastructure. Pour conclure, je vous proposerez des jolis NVidéos, mais ça c'est si vous êtes sages. Bon, c'est parti ! Comme j'aime bien raconter ma vie, je suis étudiant, dans une école d'informatique, et je loge dans une chambre universitaire. Dans les chambres universitaires, il n'y a pas de prises téléphoniques (pas dans la mienne en tous cas), donc impossible d'avoir une connexion à Internet. Mais comme au Crous ils sont sympas, ils nous mettent à disposition un réseau wifi nous permettant d'avoir accès à Internet. Ok, alors techniquement, c'est un wifi ouvert où tout le monde peut se connecter. Sur ce wifi qui se trouve être un réseau privé, se trouve un serveur proxy (et DNS) HTTP et HTTPS (je crois que c'est du SQUID derrière) sur authentification (avec mots de passes envoyés en clair). Ok donc alors, tout accès à un site web est logué par ce proxy, c'est écrit dans la chartre (et supprimé au bout de quelques mois ou un an me semble il). Déja, ça c'est pas terrible, mais moi ce qui me pose vraiment problème c'est quand même que ... euh, réseau wifi ouvert quoi ! Tout le monde peut lancer airodump-ng et regarder TOUT ce qui se passe. Vous vous loguez à un site web en HTTP ? Toute la résidence est suceptible de le savoir, et de connaître vos identifiants par la même occasion (ou toute autre donnée sensible qui peut transiter dans ces pages web). Amis défenseurs du HTTP sans chiffrement parce que sinon ça consomme plus, n'oubliez pas de penser à ceux qui ont un réseau tout pourri ;-) (mais je comprends votre point de vue). La solution serait de n'aller que sur des sites en HTTPS ... Mais c'est pas forcément toujours possible. En plus, notre seul canal de communication avec l'extérieur, c'est via du HTTP, mais comme Internet ne se résume pas au Web, et que j'aimerais bien pouvoir aller sur Jabber et me connecter en ssh quand je suis chez moi, ben je me sens assez vite limité. À mon école, c'est un peu mieux. Pas de proxy obligatoire (pour l'instant), par contre, interdiction de communiquer via UDP vers l'extérieur, et seuls quelques ports TCP d'une liste blanche sont autorisés (mais ils suffisent pour la plupart des usages). Par contre, quand je suis connecté en wifi (oui, on a des prises ethernet dans chaque salle de cours, mais pour une question de mobilité, des fois, le wifi ça peut vraiment être pratique), j'ai un peu peur. Non, ici, le wifi n'est pas non sécurisé (double négation, youpee) puisqu'il est sécurisé via WPA. Ah, euh, WPA seulement ? Ça ne me dérangerait pas ... Si j'étais le seul à connaître la clef ! Sauf que là, toute l'école la connaît la clef ! Du coup, il existe un gros problème de sécurité, en effet, en WPA, si on connaît la clef et que l'on a réussi à capturer un handshake (les messages qui sont échangés lors d'une connexion). Et c'est vraiment pas dur, il suffit d'arriver avant tout le monde ou d'envoyer des demandes de déauthentification avec aireplay-ng. Évidemment, même en cablé, on est pas à l'abri d'attaques genre arp spoofing. Accessoirement, il peut toujours arriver de se connecter à des réseaux un peu douteux (macdo, hôtels, hotspot, ...). Pour cela, avoir un serveur distant avec un accès VPN permet de créer un tunnel sécurisé entre moi et le serveur me permet de ne pas avoir à réfléchir en permanence à la question "est ce grave si quelqu'un voit ce qui transite sur le réseau ?". Des VPNs, il y en a plein. Moi, j'en ai testé deux (eh oui, depuis 2 ans que je dépends de ce genre de bidouilles, j'ai eu le temps d'améliorer le bouzin). Le premier que j'ai testé : OpenVPN. Simple à mettre en place, avec des dizaines de HowTo au mètre carré, c'est un logiciel de VPN assez puissant permettant de faire un réseau de pas mal de personnes. C'est plutôt sympa, basé sur un système de certificats pour se connecter. Mais j'ai un gros problème avec, et je ne dois pas être le seul, sous Linux. Faire une requête DNS peut prendre plusieurs secondes ! Je n'ai jamais compris d'où ça venait, et ça fait pas mal de temps que l'on dit qu'on (moi et un mec dans ma classe) qu'on va essayer de se prendre une après midi pour enquêter, mais on l'a encore jamais fait. Romain : faudrait d'ailleurs, je suis curieux ! Actuellement, j'utilise vtun et je remercie Yoann de me l'avoir fait découvrir. http://vtun.sourceforge.net/ Plus maintenu depuis plusieurs années, Vtun est un super logiciel de VPN avec lequel on peut tout faire et avec des performances vraiment super qui me convienne parfaitement. Il est dans les dépots debian / ubuntu. Il m'a fallu une petite soirée pour bien comprendre comment il se configurait, mais ça valait le coup. Pour le configurer, regardez du coté des fichiers de configuration d'exemple et de la documentation du site officiel. J'avais aussi trouvé un article de blog qui expliquait ça plutôt bien. Par contre, par rapport à openVPN, vtun est rustre. Lui, il s'occupe juste de faire un lien entre nous et le serveur, c'est à nous de définir le serveur distant comme notre passerelle par défaut, et à nous de ne pas oublier de rajouter une route vers ce serveur sans quoi votre accès à Internet risque d'être plutôt inexistant. OpenVPN lui, s'occupe de tout automatiquement. Pour me connecter en passant par un proxy HTTPS, j'utilise proxytunnel, un petit logiciel bien sympa qui marche impeccablement bien (ah, et mon VPN écoute sur le port 443 sinon ça ne va pas). Du coup, aujourd'hui, j'ai un système de scripts : je lance le script correspondant à ma chambre ou à mon école selon là où je suis. Seulement voilà, j'aimerais un truc un peu plus automatique : un script qui se lance automatiquement quand je me connecte quelque part (avec mon petit network-manager) et qui détermine quel script doit être lancé : comme ça j'ai rien d'autre à faire. Mais du coup, il faut que mon ordinateur devine sur quel réseau il est. Alors, à votre avis, comment on peut faire ça facilement ? (Eh oui, en fait ce journal aurait plus sa place dans les forums !) Quels sont les caractéristiques d'un réseau ? Moi j'ai le réseau et le netmask, l'IP des serveurs DNS donnés par le serveur DHCP. Je ne peux pas me baser sur la gateway par défaut puisqu'elle peut changer quand je suis à mon école, selon la salle. Des idées ? Si tout cela ne vous intéresse pas, je vous invite à regarder de jolies [NVidéos](http://ubuntu-paris.org/videos).