NT en 5 Leçons

Partie III : un serveur Web de série

Leçon 1 Leçon 2 Leçon 3 Leçon 4 Leçon 5

eric@netline.be

Microsoft Internet Information Server 2.0 est un serveur HTTP fourni gracieusement avec votre Microsoft Windows NT Server 4. 0. MS IIS 2.0, pour les intimes, est par trop incomplet pour que je me risque à vous le recommander. Il en va de même pour MS IIS 3.0, fourni tout aussi gratuitement avec Windows NT Service Pack 3. Mieux vaut pour vous passer directement à MS IIS 4.0 inclus dans Windows NT Option Pack. Tout ce qu'il vous en coutera, c'est le téléchargement des 87 MB de l'Option Pack à l'adresse http://www.microsoft.com/NTServer/default.asp ou http://backoffice.microsoft.com/downtrial/optionpack.asp .

Neuf heures de téléchargement avec un modem 28.8 kbps, vous allez faire des heureux chez Belgacom !

NT Option Pack, un peu méconnu, contient toute une série de nouveaux services proposés par Microsoft en attendant Windows NT 5.0. Il inclut :

MS IIS 4 est l'organe fédérateur qui permet de combiner les couches système, sécurité et réseau de Windows NT, avec les services HTTP et l'infrastructure distribuée de Microsoft Transaction Server. Grâce au Transaction Server, IIS 4 dispose d'une plus grande fiabilité. un système baptisé Crash Protection permet à des utilisateurs distants de faire tourner plusieurs applications sur le serveur Web. En cas de crash d'une application, les autres tâches ne sont pas inquiétées et l'application peut redémarrer à la prochaine requête d'un utilisateur. Les Transacted Active Server Pages sont des pages ASP, c'est-à-dire des scripts tournant côté serveur, capable de fonctionner dans un environnement TP (Transaction Processing). Ces scripts génèrent plusieurs actions qui sont toutes validées ou rejetées ensemble de manière à ne pas compromettre l'intégrité d'une base de données par exemple. IIS 4.0 propose un mode Script Debugging facilitant le développement et le débogage de pages ASP. Microsoft Message Queue Server (MSMQ) fournit une méthode aux applications désireuses de recevoir et envoyer des messages sur le réseau.

Enfin, IIS 4.0 contient une nouvelle série de classes Java pour construire des composants côté serveur et optimisés pour JDirect, la Java Virtual Machine revisitée par Microsoft. L'inclusion de Site Server Express permet d'analyser le trafic et les visites sur un site Web et de visualiser la structure d'un site et ses contenus.

Via le support de multiples adresses IP, IIS 4 est capable de supporter l'hébergement de plusieurs sites Web. IIS 4.0 est désormais compatible au protocole Hyper Text Transfer Protocol HTTP 1.1 et gère les certificats d'authentification X.509. Il inclut un serveur de news NNTP ainsi qu'un serveur SMTP ( Simple Mail Transfer Protocol). Le moteur de recherche Index Server est facilement personnalisable via des masques de recherche créés par des Active Server Pages, des ActiveX Data Objects ou des requêtes SQL.

IIS 4.0 est capable de lancer de nouvelles applications via le MTS (Microsoft Transaction Server) qui resteront actives pour les prochains visiteurs sans devoir être chargées et déchargées en mémoire comme de simples applications CGI d'où une meilleure stabilité du système.

La force de cet IIS 4.0 est aussi d'être finement lié à un serveur de transactions ( TP ) Microsoft Transaction Server fournit toute la "plomberie" pour construire des applications découpées en trois couches : présentation, business logic, data logic au lieu des deux seules couches habituelles client/serveur. Des applications pour Transaction Server se présentent sous forme de composants logiciels , de DLL ActiveX écrites en Visual Basic, Visual C++ ou Visual J++ ou encore en PowerSoft PowerBuilder, Optima++, Borland Delphi ou MicroFocus COBOL. Son but premier est bien sur de protéger toute opération sur la base de données d'échec ou de corruption. Toute la sécurité est gérée par le Security Access Manager de NT tandis que DCOM se charge du dialogue entre composants distribués sur le réseau. L'interaction avec SQL Server est assurée par le protocole OLE Transactions. Les autres protocoles supportés sont XA , TIP (Transaction Internet Protocol) et SNA Lu 6.2. Le Transaction Server Explorer fournit un chouette environnement graphique pour la gestion simultanée des packages, composants, transactions, la sécurité et l'administration en général.

Les composants ActiveX sont invoquables à partir d'une application Win32 ou bien d'une page HTML ce qui fait de la couche présentation un véritable jeu d'enfant. A côté de SQL Server, MTS s'ouvre aussi à Informix and Sybase in 1997

Microsoft Management Console

Installons les composants nécessaires de Windows NT Option Pack : Index Server, FrontPage Server Extensions, Internet Information Server etc… Après une très longue pause café et quelques reboot, vous devriez trouver un nouveau menu Programs/ Windows NT Option Pack/Microsoft Internet Information Server/Internet Service Manager.

La gestion du serveur HTTP et FTP passe par un nouvel outil d'administration, le Microsoft Management Console qui va vous donner un avant-gout de ce que sera NT 5.0. Microsoft s'est enfin décidé à nous fournir un outil de gestion centralisé. N'importe quel objet système est maintenant gérable à partir d'un outil de gestion unifié : le Microsoft Management Console ou MMC. MMC est une espèce de container où peuvent venir s'insérer des snapins c'est-à-dire des composants logiciels supplémentaires. Le gestionnaire du système peut donc y administrer la totalité des objets de base : ordinateurs, utilisateurs, imprimantes, ressources partagées, stratégies de sécurité, Directory, Services etc. L'impression d'un OS centré sur l'objet est considérablement renforcée par cette nouvelle approche.

Dans l'outil d'administration MMC, sélectionnez votre serveur puis, du bouton droit de la souris, choisissez "new/web site". un assistant vous prend en main vous demandant le nom du site. A la question "Select the IP address to use for this Web site", choisissez l'adresse IP que vous avez réservé pour ce site Web parmi les adresses IP allouées à votre machine. Il vous restera à définir le répertoire racine du site Web de type c:\inetpub\wwwroot\mywebsite. Ce site une fois créé apparaît dans la partie gauche du menu MMC mais n'est pas encore démarré. Sélectionnez le site à la souris, du bouton droit, lancez la commande "start" puis la commande "properties". Voilà ce qui devrait apparaître.

Dans la partie IP Adress Advanced, vous allez devoir entrer tous les noms de domaine et toutes les adresses IP auxquels ce site doit réagir : n'oubliez pas d'y inclure l'adresse loopback 127.0.0.1 comme suit :

Par défaut, le site supporte 1000 utilisateurs simultanés. Adaptez le cas échéant ce nombre pour la porter à une valeur réaliste.

Activez ensuite le journal d'activités en sélectionnant le format "W3C Extended Log File Format". Dans "Properties", déterminez la périodicité du fichier "log", un fichier mensuel par exemple, et notez dans quel répertoire sera conservé ce fichier log, généralement c:\winnt\system32\logfiles\w3svc1\exYYMM.log

Le fichier journal contient des lignes comme ceci :

16:01:51 193.121.193.6 - GET /pamela.gif - 200 1233 Mozilla/4.0+(compatible;+MSIE+4.01;+Windows+NT)

En clair, à 16 H 01, un utilisateur 193.121.193.6 utilisant Internet Explorer 4 a réclamé l'image pamela.gif avec comme résultat de l'opération 200 = OK.

un outil comme Microsoft usage Analyst dans la suite Site Server vous permettra de créer des statistiques détaillées à partir de ce fichier brut.

Sélectionnez maintenant l'onglet "operators" où vous pourrez déterminer la liste des utilisateurs pouvant gérer ce site Web.

Sous l'onglet "performance", vous allez pouvoir optimiser votre serveur Web en estimant le nombre de hits attendus par jour ( moins de 10000, moins de 100000, plus de 100000). C'est là aussi que vous allez pouvoir restreindre la bande passante consommée par le serveur Web en cochant la case "Enable Bandwith Throttling".

Imaginons que vous disposez par exemple d'une ligne louée de 64 kilobits par seconde, vous disposez d'une bande passante de 64 % 8 = 8 Kilobytes à la seconde dont vous ne voulez pas utiliser plus de la moitié pour ce site Web. Choisissez donc 4 KB/s comme "maximum network use".

Passons ensuite à l'onglet "Home Directory". Vous allez pouvoir y déterminer pour le site des accès en lecture (indispensable), en écriture ( à déconseiller sauf si vous aimez être attaqué )

Si vous cochez la case "log access", toutes les visites seront répertoriées dans votre fichier journal.

Si vous cochez "directory browsing allowed", les visiteurs auront accès aux différents répertoires de votre site mêmes si ces répertoires ne contiennent pas de page par défaut ( cela peut constituer une faille en terme de sécurité)

Cochez "index this directory" si vous désirez que le Microsoft Index Server 2.0 indexe l'ensemble des documents du site pour gérer votre propre moteur de recherche.

Cochez "FrontPage Web" si vous devez inclure des composants frontPage ( compteurs, gestionde formulaire etc…) dans vos documents.

Sélectionnez également le mode de permission "script" afin d'autoriser l'exécution de pages Active Server Pages côté serveur.

Sous l'onglet suivant "documents", choisissez les noms des pages qui doivent faire office de page par défaut dans chaque répertoire. La tradition veut souvent qu'elles s'appellent "index.htm", "index.html", "default.htm" ou "default.asp".

Vous pouvez, en cochant "enable document footer", définir un fichier pied de page incluant par exemple un copyright et qui sera ajouté automatiquement au bas de chaque document HTML

Sous l'onglet" Directory Security", vous pourrez définir les droits d'accès à votre site Web.

Commencez par cliquer sur "edit anonymous access and authentication control"

La première étape est de définir si vous acceptez des visiteurs anonymes sur votre site. Si c'est le cas, toutes les personnes inconnues se connectant à votre serveur Web utiliseront le même compte utilisateur NT IuSR_XXX où XXX est le nom de votre ordinateur. Ce compte IuSR_XXX est très important puisque c'est à travers lui que vont être gérés la sécurité et l'accès aux fichiers. Vérifiez que cet utilisateur n'a accès aux fichiers du répertoire Web qu'en mode RX ( Read et eXecute). S'il a plein droit sur les fichiers ( Read, Write, eXecute, Delete ), n'importe quel farceur pourra venir triturer votre site Web en en changeant les contenus.

Si vous travaillez dans le cadre d'un serveur Intranet, vous pouvez supprimer cet accès aux anonymes, les membres de votre Intranet devant s'identifier avec leur compte et mot de passe NT pour accéder à votre serveur HTTP. Cette identification aura lieu via la méthode Windows NT/Challenge Response. Malheureusement, cette identification n'est pas possible à partir d'un navigateur Netscape ou bien à travers un serveur proxy. Dans ces deux cas, il faudra cocher la méthode d'indentification "Basic Authentication" qui a l'inconvénient de faire passer votre mot de passe "en clair" sur le réseau.

L'option "secure communications" va vous être utile si vous envisagez de réaliser de l'e-commerce. Faire du commerce électronique suppose que vous disposiez d'un certificat obtenu auprès d'une autorité de certification et prouvant que vous êtes bien la société que vous prétendez être. un certificat SSL ( Secure Socket Layer) rassurera vos clients potentiels quant à votre sérieux et vous permettra également d'encrypter les informations les plus sensibles ( numéro de carte de crédit etc) avant de les faire transiter sur Internet. Vous pouvez vous adresser à une autorité de certification comme Verisign ( http://www.verisign.com ) qui vous réclamera 349 $ pour authentifier votre serveur ecommerce.

En cliquant sur "key manager", vous ferez apparaître un programme qui vous permettra de générer une demande de certificat.

Rendez-vous dans le menu "key", "create new key" et remplissez les informations réclamées sur votre identité, les coordonnées de votre société, tél, fax etc… Cette opération va générer un fichier MyReqKey.txt que vous pourrez transmettre sur le site de Verisign en échange de quoi vous recevrez un certificat qu'il vous faudra importer dans MS IIS via le même Key Manager.

Il est possible d'arriver à un niveau de sécurité maximum si vous autorisez et refusez les accès à votre site Web en fonction des adresses IP. Vous pourrez par exemple interdire tout accès à votre site Web excepté pour les ordinateurs de votre entreprise disposant d'une adresse IP statique.

L'onglet "HTTP Headers" permet d'associer une date de préemption à vos pages HTML comme de vulgaires pots de yaourt. Si vous craignez que le contenu de votre site ne choque certaines personnes, il est opportun de vous rendre dans le menu "Edit Ratings"

Vous allez pouvoir classer votre site sur une échelle définie par le Recreational Software Advisory Council et comportant quatre critères : violence - sexe - nudité et langage

un avertissement pour les personnes sensibles sera généré automatiquement pour toutes vos pages sous forme de commande HTML meta

<META http-equiv="PICS-Label" content='(PICS-1.1 "http://www.rsac.org/ratingsv01.html"

l gen true comment "RSACi North America Server" for "http://www.rsac.org" on "1996.04.16T08:15-0500"

r (n 3 s 1 v 3 l 1))'>

Cette ligne de code HTML signifie en clair

Nudité : 3 ( nudité frontale)
Sexe : 1 ( baiser fougueux )
Violence : 3 ( scène de meurtre )
Language : 1 ( argot inoffensif )

un dernier onglet pour la route "Custom Errors". Plutôt que des messages d'erreur incompréhensible de type

"401 Not Found", vous allez pouvoir agrémenter vos messages d'erreur de quelques images et proses bien pensées.

A chaque requête HTTP, correspond un code de retour informant le navigateur sur le succès ou l'échec de cette requête.

Les codes de succès sont de type 2xx tandis que les codes d'erreurs s'échelonnent de 400 à 599.

200 OK

201 Créé. Suite à une commande POST, la réponse consiste en un uRI par lequel le document créé est identifié.

202 Accepté. La requête a été acceptée pour traitement mais ce dernier n'a pas été finalisé.

203 Information partielle. En réponse à une commande GET, ###

204 Pas de réponse. Le serveur a bien reĉu la requête mais n'a pas d'informations à renvoyer. C'est généralement le cas lorsqu'un script doit être exécuté sans que le document ne soit modifié.

301 Déplacé. Les données demandées ont reĉu un nouvel uRI, cette modification étant permanente.

302 Trouvé. Les données réclamées ont été trouvées bien qu'elles soient définies sous un autre uRL.

303 Méthode. Suggère que le programme client utilise une autre adresse uRL mais également une autre méthode.

304. Non modifié. Le document a été trouvé mais n'a pas été modifié depuis la date précisée dans le champ "If-Modified-Since".

400 Requête incorrecte. La requête est de syntaxe incorrecte ou impossible à exécuter.

401 Non autorisé.

402 Payement requis. Le client doit recommencer sa requête en précisant dans son en-tête la mention "ChargeTo".

403 Interdit

404 Document non trouvé

500 Erreur Le serveur a rencontré une condition non prévue qui l'empêche d'exécuter la requête.

501 Non implémenté. Le serveur ne supporte pas la fonction demandée.

502 Service temporairemeent surchargé. Le srveur ne peut provisoirement répondre à la demande suite à un trafic important.

503 Gateway timeout. Apparaît lorsque le serveur, à son tour, fait appel à un service extérieur qui ne répond pas dans les délais impartis.

A coté de votre site Web public, IIS 4 vous fournit la possibilité de gérer un site Web parallèle et privé pour l'administration distante de votre serveur Web. Ce site Web administratif sera généré sur un autre port que le port 80 du site Web public. Il vaut mieux le protéger fortement car il permettra à un utilisateur distant d'accéder aux mêmes fonctionnalités que Microsoft Management Console à condition d'utiliser Internet Explorer 4.01