8 mars 2006
de Agarwaën
Commentaires fermés sur IP & DNS for dummies
Voici un petit tutoriel que j’avais rédigé il y a un moment. Pour qu’il ne soit pas perdu dans l’interzone du web, je le reposte ici.
NB : Cet article est maintenant très vieux. Je vous conseille de vous reporter sur des documentations plus actuelles pour votre sécurité.
IP & DNS for dummies !
Si on veut comprendre quelques points importants sur la façon dont le Net fonctionne, il est absolument crucial de comprendre que les ordinateurs ne sont pas des humains : ils communiquent de façon radicalement différente et ne se repèrent pas dans un espace physique. Les ordinateurs ne sont rien de plus que de grosses machines à calculer, et tout est donc basé sur des chiffres. Quand on veut faire quelque chose de vraiment rapide et efficace avec un ordinateur, on lui parle directement en chiffres. Par ailleurs, il est beaucoup plus compréhensible pour un humain d’utiliser des mots et des noms plutôt que des chiffres. C’est pourquoi il existe quasi-systématiquement une phase de traduction dans la communication entre un humain et un ordinateur.
Le principe du Domain Name System
Le système du DNS est cette phase de traduction de l’organisation en réseau mondial des ordinateurs. DNS veut dire Domain Name System, c’est à dire Système de Nom de Domaine. Il s’agit ni plus ni moins que d’un catalogue permettant de faire correspondre un chiffre associé de façon unique à chaque ordinateur (ce chiffre s’appelle l‘adresse IP) à un nom d’hôte.
L’attribution des adresses IP
Ces adresses IP font l’objet d’une gestion par délégation : des organismes collaboratif (comme le RIPE en Europe) délèguent la gestion de blocs d’adresses IP à des opérateurs réseau, des fournisseurs d’accès internet, des entreprises, qui peuvent eux-même en sub-déléguer. L’attribution d’une adresse IP est indispensable pour connecter un ordinateur à Internet. En fait, lors de la connexion de votre ordinateur au Net via votre fournisseur d’accès, celui-ci vous prête une adresse IP pour le temps de votre session.
L’attribution des noms de domaine
Les noms de domaine sont gérés de façon similaire : un organisme ou une entreprise (le registry) est chargé de la gestion de chaque TLD (Top Level Domain, soit Domaine de Niveau Supérieur) : il s’agit des .com, .net, .org, .fr, .be, .info, etc… Cet organisme unique délègue le droit à des entreprises ou organismes (les registrars) de vendre des sous-domaines du TLD dont il a la charge, pour des durées déterminées. Par exemple : Network Solutions est le registry du TLD .com, et en a délégué la gestion à (entre autre) Gandi, qui est donc registrar.
Faire le lien entre les adresses IP et les noms de domaine
C’est là que ça commence à devenir vraiment intéressant : les fondements même d’Internet sont les serveurs DNS : ce sont des serveurs dont la tâche est d’associer un nom de domaine à une ou plusieurs adresse(s) IP. Lorsque vous cherchez à atteindre un site (web, ftp, smtp ou tout autre serveur), votre logiciel client n’utilise pas directement le nom de domaine du serveur : il commence par interroger un serveur DNS connu afin d’obtenir l’adresse IP de la machine qu’il cherche à joindre. C’est l’étape de résolution DNS ! Il existe des petits outils pour faire la résolution DNS à la main (cf. les deux logiciels cités plus bas).
La base de données du whois
Lorsqu’un domaine est enregistré auprès d’un registrar, automagiquement une base de données nommée le whois est mise à jour chez le registrar, qui contient de nombreuses informations sur le propriétaire du domaine : nom et adresse du propriétaire, nom, adresse et téléphone des contacts technique et administratif, adresse mail de contact, date d’expiration, ainsi que les serveurs DNS responsables du domaine. Ces données sont publiques et peuvent être consultées à loisir avec un logiciel dédié comme Sam Spade (freeware) ou WS_Ping (shareware), ou bien sur un site comme Sam Spade.
Les outils de base de l’analyse réseau
Il existe une myriade d’outils utiles pour obtenir des informations. Sans aller jusqu’aux scanners et sniffers utilisés par les administrateurs réseau et les pirates, on peut citer par exemple (la plupart de ces outils sont disponibles dans Sam Spade) :
- le bon vieux ping : à ne pas sous-estimer tant il est utile ! Ce petit utilitaire envoie une série de paquets à une adresse IP et indique le temps de réponse. Il permet entre autre de tester si une machine donnée est connectée au Net.
- reverse DNS : qui consiste à retrouver le nom de domaine associé à une adresse IP (résolution inverse). Ceci peut être très riche d’enseignement, puisque ce reverse DNS contient souvent des indications de localisation géographique : on peut y trouver un TLD national comme .fr, .be ou .uk. Les fournisseurs d’accès font également souvent figurer des indications géographiques sur la localisation de leurs points d’accès (par exemple :
ADijon-xxx-x-xx-xx.w81-49.abo.wanadoo.fr
). Enfin, les grosses entreprises ou institutions font généralement figurer un de leurs sous-domaine dans le reverse DNS des usagers de leur réseau.
- traceroute : cet outil utilise une série de pings de portée limitée pour lister tous les routeurs et serveurs traversés pour atteindre une IP donnée. Cela présente à peu près le même intérêt que le reverse DNS, mais avec plus d’infos. Par exemple :
traceroute to free.fr (213.228.0.42), 64 hops max, 44 byte packets
1 lo1-lns101-tip-voltaire.nerim.net (62.4.16.248) 64.472 ms 280.973 ms 97.321 ms
2 gi0-2-2-thevenin.nerim.net (62.4.16.7) 65.446 ms 140.768 ms 94.676 ms
3 gi0-2-42-nicol.nerim.net (194.79.130.9) 84.689 ms 63.921 ms 64.175 ms
4 ProXad-th1.freeix.net (213.228.3.225) 83.840 ms 64.758 ms 63.548 ms
5 vlq-6k-1-a6.routers.proxad.net (213.228.3.1) 63.530 ms 65.430 ms 66.194 ms
6 www1.free.fr (213.228.0.42) 66.783 ms 71.393 ms 66.208 ms
- telnet : c’est un outil archaïque mais dont il ne faut pas sous-estimer l’intérêt, tout comme le ping ! Il permet notamment de se connecter sur un port donné d’une machine donnée, et de tester ainsi sa réponse sur certains protocoles. Il permet même de dialoguer avec un serveur sur les protocoles en mode texte comme le http ou le smtp. Très utile pour tester des machines autrement muettes sur certains ports clés.
- dig : cet outil est nettement plus spécifique. Il permet de s’adresser directement aux serveurs DNS en leur envoyant des requêtes précises. Son utilisation est quelque peu complexe dans la mesure où elle nécessite de connaitre les différents types d’enregistrements DNS, mais on peut l’utiliser de façon basique pour avoir des renseignements détaillés sur un nom de domaine.
Les outils avancés
Si l’on s’intéresse de plus près à la sécurité des réseaux, il existe toute une panoplie d’outils d’analyse et de sécurité active et passive. Attention, le sujet est ardu, mais passionnant ! Un TOP 75 des meilleurs outils de sécurité a été réalisé et peut être consulté : très intéressant !
- netcat : cet outil est en quelque sorte le couteau suisse de la connexion IP : il permet de recevoir et d’émettre n’importe quel type de connexion TCP ou UDP, ce qui se révèle très utile pour explorer un réseau ou le débugguer.
- les sniffers réseau : le principe des sniffers est de capturer les paquets IP transitant sur le réseau poour les analyser. Ces paquets de données peuvent contenir un nombre surprenant de données utiles, même si la tâche de les analuser est particulièrement longue et ardue. Les plus connus sont ethereal et windump.
- les scanners réseau : un scanner permet d’examiner une machine à distance et de recueillir un grand nombre d’informations sur les services tournant sur cette machine, son système d’exploitation, voire ses vulnérabilités. Le plus connu est nmap.
- les systèmes de détection d’intrusion (IDS) : en réponse aux tentatives de prise d’info ou bien d’attaque sur votre système, il peut être utile d’être informé de ces tentatives : c’est tout l’intérêt des IDS ! Ce sont des programmes serveurs apparentés aux sniffers qui analysent le trafic réseau sur une machine ou un sous-réseau et tentent de repérer les attaques. Il en existe de nombreux d’origine commerciale ou bien gratuite : snort est l’un des plus connus.