NT en 5 leçons

Eric@netline.be

Leçon 2 Installer et configurer les services TCP/IP

Après un bref rappel historique dans le précédent numéro, nous passons directement au cœur du sujet en nous attaquant aux fonctionnalités TCP/IP du système d'exploitation Windows NT.

Nous allons au travers des prochaines leçons, configurer une station Windows NT Server 4.0 comme système nerveux Internet ou Intranet : serveur Web, serveur FTP, serveur de courrier électronique, serveur DNS, serveur DHCP, serveur de news etc etc…

Notre première recommendation sera de vous conseiller de n'utiliser que la version US de Windows NT. Même s'il est très agréable de travailler dans votre lanque maternelle, Microsoft ne soigne pas avec le même égard ses utilisateurs francophones ou néerlandophones qui ne recoivent qu'avec plusieurs semaines ou mois de retard (voire jamais !) les corrections apportées rapidement à la version US. Notre deuxième conseil sera de vous procurer un maximum de barrettes mémoire. 128 MB de mémoire est vraiment un minimum pour gérer un serveur NT digne de ce nom.

Depuis la version 4 de Windows NT, le programme d'installation sélectionne automatiquement le protocole TCP/IP à côté d'IPX/SPX dès que vous installez une carte réseau. Si vous ne l'avez pas encore fait, connectez vous au serveur avec des privilèges d'administrateur puis sélectionnez l'icône Network du Control Panel.

Choisissez l'onglet Protocols puis cliquez sur TCP/IP Properties. Vous obtiendrez ceci :

A chacune des cartes réseau installées dans votre serveur, vous allez devoir associer une adresse IP unique.

Si un serveur DHCP (Dynamic Host Configuration Protocol) est déjà présent dans votre réseau, vous pouvez choisir l'option "Obtain an IP address from a DHCP Server". Ce serveur DHCP contient des informations propres au standard TCP/IP pour la configuration automatique d'autres stations TCP/IP. Une machine TCP/IP qui se connecte au réseau sans une adresse IP définie va envoyer une sorte de bouteille à la mer ( nous parlerons plutôt de "paquet broadcast") en espérant qu'un serveur DHCP lira ce message et lui communiquera une adresse IP valide et unique ainsi qu'un masque de sous-réseau.

Si vous n'utilisez pas le protocole DHCP pour recevoir automatiquement et dynamiquement ces adresses, vous allez devoir définir manuellement des adresses IP ( Internet Protocol) statiques.

Une adresse Internet Protocol est constituée de quatre nombres de 0 à 255 et séparés par un point comme dans l'exemple : 193.121.193.67. Dans cette adresse Internet, il faut distinguer deux parties, l’identifiant de réseau et le numéro d’hôte. Une adresse IP est composée de deux parties :

1.Le numéro de réseau

2.Le numéro de machine sur ce réseau

Dans l'exemple ci-dessus, 193.121.193 est le numéro de réseau de votre serviteur et le serveur est la soixante-septième machine du réseau. Ce numéro de réseau vous sera attribué officiellement par votre fournisseur d'accès Internet ou un organisme dépendant de IANA ( Internet Assigned Numbers Authority http://www.iana.org ) L'IANA est responsable de l'allocation des adresses IP dans l'Internet. Cet organisme a délégué cette responsabilité à des organismes régionaux comme NIC (Network Information Center) aux USA, RIPE ( Réseaux IP Européens http://www.ripe.net ) NCC en Europe, et APNIC ( Asia Pacific Network Information Center) en Asie.

En fonction de la taille de votre réseau, ces organismes vous remettront un réseau de classe A, B ou C valable respectivement pour 16 777 214, 65 534 ou 254 machines. Le premier octet de l'adresse IP permet de distinguer la classe de votre réseau. Une adresse de classe A commence impérativement par une valeur de 1 à 126, une classe B par 128 à 191, une classe C par 192 à 223. Les adresses au delà de 223 sont réservées pour d'autres extensions comme les adresses de classe D destinées à des réseaux multipoints ou de classe E pour réseaux expérimentaux. Les adresses ne peuvent jamais commencer par 0,127, ou des valeurs supérieures à 223. Les personnes qui ne respectent pas ces règles sont appelées des "martiens" en jargon réseau.

Si vous attendez une adresse officielle IP ou désirez utiliser des adresses de test, évitez de passer pour un extra-terrestre en utilisant plutôt des adresses spéciales de test :

10. 0.0.0 à 10.255.255.255 soit 1 adresse de classe A

172. 16.0.0 à 172. 31.255.255 soit 255 adresses de classe B

192.168.0.0 à 192.168.255.255 soit 65536 adresses de classe C

L’Internet Assigned Numbers Authority (IANA) a réservé ces adresses pour les réseaux privés dans la recommandation RFC (Request For Comments) 1597.

 

Veillez bien à ce que chaque machine dans votre réseau NT dispose d'une adresse différente car les machines Windows 3.1 ou NT ont une fâcheuse tendance à "planter" lorsqu'elle démarre sur le réseau avec une adresse IP déjà attribuée à une autre bécane.

Après avoir défini l'adresse IP du serveur NT, il vous est demandé de définir votre masque de sous-réseau ou subnet mask. Qu’est-ce ? La notion de sous réseau intervient lorsqu’il est nécessaire de subdiviser un réseau de classe X entre une série de départements, buildings ou filiales ou même un simple schéma organisationnel. Cette division n’est perceptible qu’au sein de votre organisation, pour le monde extérieur elle est invisible. Si vous n'avez pas de sous-réseau, la tâche est simple. Choisissez le masque

255.0.0.0 pour un réseau de classe A

255.255.0.0 pour un réseau de classe B

255.255.255.0 pour un réseau de classe C

Si par contre, vous subdivisez votre réseau, vous allez devoir utiliser des bits de la portion hôte pour définir le sous-réseau. En utilisant par exemple les deux bits de poids forts (128+64 =192) de la portion hôte d’une adresse de classe C, vous allez pouvoir définir deux sous-réseau, les six autres bits vous offrant 32+16+8+4+2 = 62 adresses par sous réseau.

La troisième étape sera de définir le "Default gateway", alias la passerelle par défaut, c'est-à-dire le routeur qui vous relie physiquement à Internet ou à d'autres réseaux. Dans notre exemple, tous les paquets TCP/IP qui sont adressés à une machine du réseau 193.121.193.x seront transmis directement au destinataire situé physiquement sur le même segment de câble tandis que tous les autres paquets seront relayés vers le routeur 193.121.193.1 qui dispose d'une intelligence au niveau routage des données pour acheminer les paquets à bon port.

Visitons maintenant la boîte de dialogue "Advanced" du panneau "TCP/IP Properties". Jusqu'à présent, votre serveur NT ne répond qu'à une seule adresse Internet Protocol. Dès que nous l'aurons transformé en serveur de pages Web en ajoutant un service HHTP, il nous faudra une adresse IP différente pour chaque site Web hébergé sur la machine

Cliquons sur le bouton "Add" pour ajouter l'adresse IP 193.121.193.2 qui correspondra à l'adresse www.bestof.be et 193.121.193.3 pour www.insideinternet.be. La même carte réseau interceptera donc les paquets destinés aux adresses 2, 3 et 67 du réseau 193.121.193. Dans le même panneau, vous pouvez également spécifier d'autres passerelles alternatives pour atteindre l'extérieur, installer le protocole PPTP (Point to Point Tunneling Protocol) si vous désirez encrypter vos paquets TCP/IP et paramétrer la sécurité de votre réseau.

Dans l'exemple ci-dessus, nous demandons au système d'exploitation de filtrer les paquets TCP/IP transitant par la carté réseau 3COM pour ne laisser passer que les paquets autorisés. Nous acceptons les paquets TCP (Transmission Control Protocol ) transitant par le port 80 (c'est-à-dire le port utilisé par le protocole HTTP (Hyper Text Transfer Protocol) pour l'échange de pages HTML entre un client et un serveur). Nous acceptons les paquets UDP (User Datagram Protocol ) sur le port 53 utilisé par un serveur DNS pour répondre aux requêtes de clients. Les autres paquets seront jugés indésirables sur le plan de la politique de sécurité de l'institution et rejetés radicalement.

Nous sommes loin d'avoir terminé notre configuration TCP/IP. Pour l'instant notre machine est déjà capable de transmettre des paquets TCP/IP si on lui communique l'adresse IP du destinataire mais elle ne sait pas encore faire face aux noms de domaine de type www.insideinternet.be. En clair, elle ne peut établir une corrélation entre une adresse IP et un nom de domaine sans l'aide d'un serveur de nom de domaine DNS ( Domain Name Server) .

Toutes ces adresses IP n’étant pas simples à retenir, on a créé en 1984 un système de "Domain Name", une simple liste qui associe à chaque adresse IP un nom un peu plus humain constitué de domaines imbriqués. Il y a alors correspondance unique entre une adresse IP et un nom symbolique.

Toujours dans Control Panel/Network/TCP/IP Properties, cliquons sur l'onglet DNS

C'est à cet endroit que j'explique au système d'exploitation que ma machine s'appelle Mogwai et fait partie du domaine netline.be. Les noms de domaine se préparent de droite à gauche. Le premier niveau désigne un type d'organisation ( COM pour commercial, ORG pour organisation, MIL, EDU, NET etc) si vous avez déposé un nom de domaine aux Etats-Unis chez http://www.internic.net ou le code ISO du pays donc .BE si vous avez réclamé un domaine auprès de http://www.dns.be . Le second niveau du nom représente généralement le nom de l’organisation de façon la moins équivoque possible : Microsoft, Novell, Apple par exemple.

Les niveaux 3 et suivants sont laissés à la libre appréciation du site. On y retrouve généralement des noms de machines ou de services comme www, gopher ou ftp. Pour distinguer chaque machine, on peut choisir des noms de fleurs, de villes, de couleurs, de mousquetaires ou que sais-je encore

Veillez par simplicité à ce que votre machine porte le même nom dans le réseau Windows NT et sur le réseau Internet. Dorénavant, la machine sera capable d'intercepter les paquets destinés au 193.121.193.67 mais aussi à mogwai.netline.be

Il nous reste à communiquer à la machine l'adresse d'un ou plusieurs serveurs DNS qui se chargeront de convertir des noms de domaine en adresses IP. Comme les serveurs DNS croulent régulièrement sous la besogne, j'en ai configuré 3, un dans le réseau local et deux autres d'appoint chez notre FAI ( Fournisseur d'Accès Internet - c'est comme cela qu'on appelle un ISP en France ;-) )

La résolution de noms est le processus de conversion d'un nom de machine en une adresse IP. Cette résolution peut s'opérer via un serveur de noms de domaine comme nous venons de le voir ou via un fichier de résolution local /etc/hosts.

Si l’on veut se passer de DNS, il faut recourir au fichier local /etc/hosts qui a la même finalité mais n’est pas mis à jour dynamiquement. Dans un système Windows NT, le fichier HOSTS et les autres fichiers de configuration TCP/IP sont conservés dans un répertoire défini dans la base Registry sous la clé HKEY_LOCAL_MACHINE\ Current_Control_Set_Services\Tcpip\Parameters\DatabasePath qui par défaut pointe sur \winnt\system32\drivers\etc. Il ressemble à ceci:

# hosts This file describes a number of hostname-to-address

# mappings for the TCP/IP subsystem. It is mostly

# used at boot time, when no name servers are unning.

# On small systems, this file can be used instead of a

# "named" name server. Just add the names, addresses

# and any aliases to this file...

# For loopbacking.

127.0.0.1 localhost

193.121.193.67 mogwai.netline.be mogwai

        1. www.bestof.be
        2. www.insideinternet.be

# End of hosts.

Le moment fatidique pour presser le bouton "OK" est enfin arrivé. Veillez à bien paramétrer toutes ces informations car Windows NT va redémarrer complètement votre machine à chaque modification des paramètres TCP/IP.

Un "reboot" et une pause café plus tard, vous êtes enfin prêts à tester votre configuration TCP/IP. Votre outil de diagnostic favori deviendra rapidement le programme PING. Ping est l'acronyme de Packet INternet Groper, qui envoie une demande d'écho ICMP à une autre station et attend une réponse. Cela permet de tester l’accessibilité d’une machine distante. Ce petit programme est indispensable pour diagnostiquer si votre connexion est opérationnelle. Accessoirement, Ping vous informe aussi du nombre de millisecondes qu'il a fallu à ce paquet pour atteindre l'appareil distant.

Testons notre carte réseau pour voir si elle réagit à des paquets TCP/IP. Lançons une console MS-DOS Via Start/Programs/Command prompt et tapons

C:\>ping 127.0.0.1

Pinging 127.0.0.1 with 32 bytes of data:

Reply from 127.0.0.1: bytes=32 time<10ms TTL=128

Reply from 127.0.0.1: bytes=32 time<10ms TTL=128

Reply from 127.0.0.1: bytes=32 time<10ms TTL=128

Reply from 127.0.0.1: bytes=32 time<10ms TTL=128

Le programme ping fourni par Microsoft avec NT crée un paquet de 32 octets et l'envoie à quatre reprises à l'adresse 127.0.0.1 qui lui a renvoyé ce paquet en écho en moins de 10 millisecondes.

L'adresse 127.0.0.1 ou "localhost" est une adresse spéciale qu'on appelle adresse "loopback" ou de bouclage local. Chaque carte réseau est capable de répondre à cette adresse. En envoyant un paquet à l'adresse 127.0.0.1, vous faites en sorte qu'un paquet soit généré par votre carte réseau et réceptionné en boucle par elle-même. C'est donc le meilleur moyen de savoir si votre carte fonctionne.

Dans la réponse générée par Ping, l'abbréviation TTL désigne un Time To Live c'est-à-dire une sorte de date de péremption. Le compteur TTL démarre à 128 et sera décrémenté de 1 à chaque fois que le paquet Ping passera par un routeur du réseau. Si la valeur TTL tombe à 0, le paquet sera écarté car il y a de grandes chances qu'il n'arrivera jamais à destination suite à une mauvaise configuration.

Continuons notre test avec ping et voyons si la véritable adresse IP du serveur NT fonctionne

( Ping 193.121.193.67 ) si la machine NT voit ses voisines ( ping 193.121.193.5) ainsi que le routeur/gateway ( ping 193.121.193.1) Sortons sur Internet avec un ping 192.92.130.1

Pinging 192.92.130.1 with 32 bytes of data:

Reply from 192.92.130.1: bytes=32 time=70ms TTL=250

Reply from 192.92.130.1: bytes=32 time=110ms TTL=250

Reply from 192.92.130.1: bytes=32 time=120ms TTL=250

Reply from 192.92.130.1: bytes=32 time=310ms TTL=250

Ici, il nous a fallu entre 70 et 310 millisecondes pour atteindre une machine distante sur Internet via notre ligne louée. C'est donc un bon indicateur pour évaluer la vitesse de notre ligne et la bande passante qui nous est allouée.

Maintenant que tout marche avec nos adresses IP, reprenons le même test en utilisant cette fois des noms de domaine

Ping localhost pour l'adresse loopback

Ping mogwai.netline.be pour notre serveur NT

Ping routeur.netline.be pour atteindre notre gateway

Ping www.microsoft.com pour sortir sur Internet

Traceroute

Imaginons maintenant que nous n'arrivions pas à atteindre le site www.microsoft.com avec notre programme ping. Ping ne nous donnera aucune information sur le problème rencontré et nous ne saurons jamais où le paquet de test s'est égaré. Il vaut mieux alors recourir au programme traceroute fourni par Microsoft sous le nom tracert.exe

Tracert ou Traceroute est un utilitaire pour analyser la route empruntée par un paquet pour atteindre sa destination finale. Tracert fonctionne en envoyant des requêtes d'écho ICMP vers une adresse IP en incrémentant le champ TTL (Time To Live) de l'en-tête IP d'unité en unité et en examinant les messages d'erreur ICMP renvoyés par les machines sur le chemin.

Traceroute émet des paquets IP normaux vers un port UDP non utilisé du système distant. Trois datagrammes sont émis avec une valeur de TTL à 1. Cette valeur TTL à 1 provoque un "timeout" dès que le paquet atteint le premier routeur du chemin qui va émettre un message ICMP TEM "Time Exceeded Message". Trois datagrammes UP sont ensuite envoyés avec un TTL de 2. Le TTL est incrémenté jusqu'à ce que soit atteinte la destination finale. Puisque les datagrmmes sont adressés à un port invalide de la destination finale, le message ICMP " Destination Unreachable" est généré et signale au programme Traceroute que son but est atteint.

 

[c:\]tracert www.best.be

Tracing route to www.best.be [193.74.105.50]

over a maximum of 30 hops:

1 20 ms 20 ms 20 ms routeur.netline.be [193.121.193.1]

2 891 ms 781 ms 781 ms router1.namen.eunet.be [193.74.9.254]

3 831 ms 781 ms 771 ms router.namen.eunet.be [193.74.9.250]

4 280 ms 50 ms 50 ms S2-2.Leuven.Belgium.EU.net [192.92.131.61]

5 50 ms 60 ms 60 ms S1.BrusselsI.Belgium.EU.net [192.92.131.6]

6 * * * Request timed out.

7 852 ms 981 ms 981 ms 193.74.105.254

8 942 ms 80 ms 200 ms NTBESTOF [193.74.105.50]

Trace complete.

En examinant le rapport généré par traceroute, nous voyons exactement le trajet emprunté par notre paquet de test Namur, Louvain, Bruxelles en passant par huit hops ici 8 routeurs. Le routeur à l'étape n° 6 n'a pas répondu dans les délais impartis. L'administrateur du réseau best.be a oublié d'associer l'adresse 193.74.105.254 de l'étape 7 en reverse-mapping à l'adresse router-eunet.best.be et à l'étape 8 nous remarquons que le serveur www.best.be est installé sur une machine NT dont le nom Windows est NTBestOF.

Traceroute est indispensable pour comprendre pourquoi un paquet entre Namur et Bruxelles peut quelquefois s'égarer dans le Connecticut ou è Stockholm en fonction des accords de "peering" passés entre les fournisseurs d'accès Internet pour s'échanger leurs paquets.

ARP

Avant de passer à l'installation de nos différents outils serveurs Internet, continuons à passer en revue les différents outils de diagnostic réseau fournis en standard par Microsoft dans Windows NT

Le programme arp.exe est associé au standard Address Resolution Protocol, le protocole Internet qui permet d'associer dynamiquement une adresse Internet à une adresse physique dans un réseau local. Les réseaux physiques qui véhiculent du TCP/IP répondent à d’autres schémas d’adressage et il est indispensable de recourir à des protocoles capables de transformer une adresse IP en une adresse physique de réseau. C’est le cas par exemple d’ARP ou Address Resolution Protocol qui se charge de la conversion IP vers Ethernet et son schéma d’adressage MAC. Les paquets Ethernet utilisent des adresses physiques encore appelées adresses Medium Access Control (MAC) . Ces adresses MAC, d'une longueur de 48 bits - 24 pour le constructeur et 24 pour la carte, sont fixes puisqu'elles sont définies dans les couches hardware de n'importe quelle carte réseau. Les adresses MAC doivent être uniques de manière à pouvoir identifier sans équivoque n'importe quelle NIC ( Network Interface Card).

Quand nous avons utilisé le programme ping tout à l'heure, notre serveur NT a du faire appel au protocole ARP pour trouver à quelles adresses Ethernet correspondaient les adresses IP que nous lui avons demandé de tester. Il a conservé cette information dans un cache géré de manière dynamique. En tapant arp -a, nous pouvons examiner le contenu de ce cache et trouver les adresses MAC Ethernet associées.

[c:\]arp -a

Interface: 193.121.193.67 on Interface 2

Internet Address Physical Address Type

193.121.193.1 00-00-a5-74-69-00 dynamic

193.121.193.2 00-60-97-6d-f4-ac dynamic

193.121.193.17 00-60-08-14-c1-fb dynamic

193.121.193.18 00-20-af-f9-ad-4f dynamic

193.121.193.70 48-54-e8-2b-3e-78 dynamic

193.121.193.211 00-20-18-02-68-dd dynamic

Arp -s permet l’addition d’une entrée statique dans la table.

C:\>arp -s 10.57.10.32 00-60-8c-0e-6c-6a 10.57.8.190

La suppression d’une entrée se réalise par l’option Arp -d

C:\>arp -d 10.57.10.32

Route

Quand nous avons configuré nos adresses TCP/IP tout à l'heure dans le panneau de contrôle Network, Windows NT a généré automatiquement pour nous une table de routage recréée dynamiquement à chaque démarrage du système. Nous pouvons examiner cette table de routage avec la commande

[c:\]route print

Active Routes:

Network Address Netmask Gateway Address Interface Metric

0.0.0.0 0.0.0.0 193.121.193.1 193.121.193.67 1

127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

193.121.193.0 255.255.255.0 193.121.193.67 193.121.193.67 1

193.121.193.67 255.255.255.255 127.0.0.1 127.0.0.1 1

193.121.193.255 255.255.255.255 193.121.193.67 193.121.193.67 1

224.0.0.0 224.0.0.0 193.121.193.67 193.121.193.67 1

255.255.255.255 255.255.255.255 193.121.193.67 193.121.193.67 1

La table de routage ci-dessus est relative à l'adresse de classe C 193.121.193.67. Elle contient 7 entrées signifiant ceci :

La première ligne définit le routage par défaut pour tout ordinateur de n'importe quel réseau qui passera par notre gateway 193.121.193.1

La seconde gère l'adresse loopback.

La troisième est la route pour notre réseau 193.121.193 avec l'interface locale définie comme chemin d'accès vers ce réseau.

La quatrième spécifie la route pour l'adresse locale 67. Elle se réfère à l'adresse loopback 127.0.0.1 puisque le datagramme envoyé à l'adresse locale doit être traité en interne

La cinquième est l'adresse broadcast pour le sous réseau.

La sixième est l'adresse IP multicast de classe D

La dernière est l'adresse broadcast à laquelle doit répondre l'interface locale.

La table de routage est maintenue automatiquement mais on peut également utiliser la commande route pour la modifier manuellement. (route add, route delete etc…)

 

Netstat

La commande Netstat affiche des statistiques relatives à la connexion courante. Elle affiche des statistiques sur chaque protocole et chaque connexion TCP/IP Netstat -e affiche des statistiques Ethernet tandis que Netstat -a affiche des informations sur tous les ports à l'écoute sur votre machine

[c:\]netstat -a

Active Connections

Proto Local Address Foreign Address State

TCP mogwai:1029 0.0.0.0:0 LISTENING

TCP mogwai:1031 0.0.0.0:0 LISTENING

TCP mogwai:1028 localhost:1029 ESTABLISHED

TCP mogwai:1029 localhost:1028 ESTABLISHED

TCP mogwai:1030 0.0.0.0:0 LISTENING

TCP mogwai:1030 localhost:1032 ESTABLISHED

TCP mogwai:1032 localhost:1030 ESTABLISHED

TCP mogwai:1034 0.0.0.0:0 LISTENING

TCP mogwai:1292 0.0.0.0:0 LISTENING

TCP mogwai:1292 localhost:1294 ESTABLISHED

TCP mogwai:1294 localhost:1292 ESTABLISHED

TCP mogwai:1039 0.0.0.0:0 LISTENING

TCP mogwai:1297 0.0.0.0:0 LISTENING

TCP mogwai:1046 0.0.0.0:0 LISTENING

TCP mogwai:80 0.0.0.0:0 LISTENING

TCP mogwai:ftp 0.0.0.0:0 LISTENING

TCP mogwai:3103 0.0.0.0:0 LISTENING

TCP mogwai:domain 0.0.0.0:0 LISTENING

Cela vous permettra de voir quels sont les ports visibles de l'extérieur et qu'emprunteront les hackers potentiels pour visiter votre machine.