Administration des serveurs Web avec IIS
Administration des serveurs Web avec IIS ressource de formation approfondie
...
1.2. INTERACTION ENTRE CLIENT ET SERVEUR
La base de cette architecture reste le protocole HTTP (Hypertext Transfer Protocol) qui assure les fonctions de base. Il est très rudimentaire et semblable au RPC. Il s'agit d'un protocole sans état (Stateless) qui :
- Etablit la connexion.
- Assure la réception ou la transmission de paramètres, dont le document demandé.
- Met fin à la connexion.
L'interaction entre le client et le serveur se déroule ainsi :
- Vous choisissez une URL cible
En cliquant sur un lien hypertexte ou en saisissant l'adresse dans la barre de contrôle de votre navigateur.
- Le navigateur envoie votre requête au serveur
L'URL est insérée dans une requête HTTP qui est transmise au serveur.
- Le serveur traite la requête
La demande du client provoque l'établissement d'une connexion de type socket (sur le port virtuel TCP 80 par défaut pour le service HTTP) entre celui-ci et le serveur HTTP qui tourne en tâche de fond dans l'attente des requêtes.
Le serveur interprète la demande du client, recherche le fichier HTML demandé, expédie celui-ci et ferme la connexion.
- Le navigateur interprète les commandes HTML
Le contenu de la page est affiché dans la fenêtre du navigateur.
1.3. L'IDENTIFICATION DES SERVEURS WEB PAR LE MECANISME DNS
- Le système DNS permet d’identifier une machine par un nom représentatif de la machine et du réseau sur lequel elle se trouve ; exemple :
…
- Le système est mis en œuvre par une base de données distribuée au niveau mondial
- Les noms sont gérés par un organisme mondial : l’interNIC et les organismes délégués : RIPE, NIC France, NIC Angleterre, etc.
1.4. LA STRUCTURE D'UNE URL
Nom du protocole :
Il indique quel est le service à utiliser pour atteindre la ressource spécifiée. Outre le protocole HTTP, les URL sont aussi utilisables pour les autres protocoles applicatifs de l'Internet tels que FTP pour le transfert de fichier, News pour les forum ou mailto pour envoyer un courrier électronique.
Nom du serveur :
Identifie le site publié sur le serveur : indique en général le nom de domaine de l'hôte, mais on peut éventuellement lui substituer l'adresse IP du serveur. Toutefois, un serveur identifié par une adresse IP peut publier plusieurs sites.
Numéro de port :
S'il est omis, c'est le port standard par défaut qui est utilisé.
L'adresse IP associée au port TCP constitue le socket TCP qui identifie un point terminal (machine et processus) cible.
Définition conventionnelle des ports TCP standards
Numéro de port Processus
20 FTP Transfert de données
21 FTP contrôle
23 Emulation de terminal Telnet
25 Envoi de courrier électronique SMTP
80 HTTP
Chemin et nom du document :
Indique l'arborescence des répertoires qui mène au document spécifié dans la dernière partie.
Ce nom peut être suivi du caractère ? et d'une chaîne de caractères qui permet de passer des paramètres complémentaires au serveur afin qu'il exécute une opération particulière. exemple :
…
Le script recherche.asp sera exécuté sur le serveur et la valeur "bidule" récupéré dans la chaîne de connexion au serveur.
1.5. HTTP : INTRODUCTION
HTTP (Hyper Text Transfer Protocol) est utilisé depuis 1990 sur Internet.
HTTP, de part sa simplicité, est extrêmement robuste. Il est toutefois peu performant Ainsi il doit établir une connexion TCP pour chaque requête (pas de session stateless) et il induit donc une charge inutile importante. Par exemple, si une page comporte 3 images, la demande de celle-ci demandera 4 connexions distinctes.
Une pour la page, et une pour chaque image insérée dans celle-ci.
La simplicité, et donc la fiabilité de HTTP, se paie au prix d'une consommation excessive de ressources. HTTP admet 2 méthodes très courantes et d'autres moins usitées. Les plus fréquemment utilisées sont de très loin :
GET Retourne l’objet demandé
POST Demande de stocker l’information (autorisée au sein d’un script)
La commande GET peut être aussi utilisée pour passer des paramètres au serveur. Contrairement à la méthode POST où les paramètres sont passés dans l'en-tête de la page, la méthode GET passe ces derniers dans l'URL derrière le point d'interrogation. Ainsi la requête suivante passe au script ASP Client_INS.asp les valeurs des champs de formulaire Nom et Adresse :
…
Parmi les autres on peut citer :
HEAD Retourne des informations sur l’objet
PUT Stocker une copie de l’objet (en HTTP 1.1 seulement)
DELETE Supprimer l ’objet (en HTTP 1.1 seulement)
Les informations adressées au serveur dans une requête HTTP comporte en autres :
User-Agent Type de navigateur
If-Modified-Since Récupère l’objet s ’il est plus récent que la date mentionnée
Authorization Informations d’authentification
Une requête HTTP comprend :
- une ligne de requête (request line), facultative, qui comporte 3 champs : la méthode, l'URL et la version HTTP utilisée par le client.
- un ou plusieurs champs d'en-tête (request header fields), facultatifs, se structurent de la manière suivante : nom du champ et valeur. Exemple :
Date + valeur : Contient la date et l'heure d'envoi du message
- et un corps de texte (entity body), facultatif : parfois utilisé pour utiliser des informations en vrac
La réponse du serveur contient :
- une ligne d’état : elle comporte un code + une description :
- une description de l’information dans l'entête :
Code + Server Type de logiciel serveur, Date Date et heure de la réponse, Content-Type Type MIME de l’objet retourné, …
- l'information attendue
- ORGANISER LES CONTENUS
Lors de la création d'un site Web, vous devez créer des répertoires de publication où seront stockés vos pages HTML, vos scripts ASP et vos programmes CGI. Un serveur Web ne peut pas publier de documents qui ne se trouvent pas dans les répertoires spécifiés. La première étape lors de la mise en place d'un site Web est donc l'organisation des répertoires de publication.
Les répertoires de publication existent sous deux formes, les répertoires de base et les répertoires virtuels.
2.1. LES REPERTOIRES DE BASE
Chaque site Web dispose d'un répertoire de base qui représente l'emplacement central des publications. Le répertoire de base est mappé sur le nom de domaine du site ou éventuellement sur le nom de l'ordinateur dans le cas d'un Intranet. Il peut disposer d'une page d'accueil, qui peut être définit comme étant une page par défaut. Ainsi L'URL WWW.mondomaine.fr affichera la page accueil.htm située dans le répertoire de base C:\InetPub\wwwroot. Il est possible de modifier le répertoire de base d'un site Internet dans la console de gestion des services Internet (onglet répertoire de base des propriétés du site). Vous pouvez indiquer :
- Un répertoire physique de votre machine
- Le partage d'un répertoire distant
- Une redirection vers une autre URL
2.2. LES REPERTOIRES VIRTUELS
Si vous souhaitez publier des pages depuis tout répertoire n'appartenant pas au répertoire de base, il vous faudra créer des répertoires virtuels. Un répertoire virtuel possède un alias qu'utiliseront les navigateurs pour accéder aux pages publiées dans le répertoire virtuel. Le recours au répertoire virtuel est intéressant à plus d'un titre :
- Un alias étant plus cours que le chemin d'accès à un répertoire est de ce fait plus pratique à utiliser.
- Un alias évite de communiquer aux utilisateurs l'endroit où se trouvent physiquement vos documents et apporte donc un plus au niveau de la sécurité de votre site.
- Un alias évite de modifier les URL de vos liens lorsque vous déplacer physiquement l'ensemble des documents d'un répertoire virtuel. Il suffit de modifier le mappage entre le nouvel emplacement physique et l'alias.
Pour utiliser un répertoire qui se trouve sur un ordinateur distant vous devez indiquer le nom UNC (Universal Naming Convention) du répertoire et donnez le nom et le mot de passe de l'utilisateur qui seront utilisés pour définir les permissions d'accès.
Il est possible de modifier ou de créer un répertoire virtuel depuis la console de gestion des services Internet (onglet répertoire virtuel des propriétés du site).
2.3. IDENTIFICATION DES CONTENUS
Vous avez la possibilité d'associer un entête HTTP qui décrit le contenu de vos publications au format PICS (PlatForm for Internet Content Selection) et qui utilise un système mis au point par le RSAC (Recreational Software Advisory Council) , permettant au navigateur de filtrer les contenus qui seront affichés dans sa fenêtre.
Il s'agit essentiellement de protéger le public de publications trop violentes, traitant de sujets à caractère sexuel, … Afin d'obtenir un certificat d'accès de votre contenu, il vous faut établir une demande au RSAC par le biais d'un questionnaire à envoyer électroniquement.
Pour obtenir un contrôle d'accès sur les contenus choisir l'onglet En-têtes HTTP puis sous contrôle d'accès, modifier le contrôle d'accès.
Vous pouvez obtenir auprès du RSAC un label pour une page, une branche ou pour un site entier comme le montre la figure suivante :
- ADMINISTRER LE SERVEUR WEB
Vous avez aujourd'hui la possibilité sur un serveur NT doté de IIS de publier plusieurs sites Web ou FTP simultanément sur la même machine. Il y a donc souvent une certaine confusion entre la notion de serveur et de sites. On utilisera en général le terme de site, plutôt que celui de serveur, car l'administration porte en général spécifiquement sur les paramètres d'un site et non sur le serveur Web lui-même. Vous pouvez administrer localement ces sites à partir de la console MMC de Windows NT ou à distance par le biais du gestionnaire de services HTML.
Pour pouvoir publier plusieurs sites sur une même machine, plusieurs solutions s'offrent à vous. Vous pouvez :
- Spécifier plusieurs adresses IP sur votre carte réseau et associer chacune de ces adresses au nom de domaine d'un site.
- Mapper plusieurs noms de domaine sur la même adresse IP en ayant recours à la technique des noms d'entête d'hôte.
- Associer un autre port IP que le port 80 à votre adresse IP pour publier un site sur un port nommé. Cette technique ne doit être utilisée que dans des cas très restreints, car elle nécessite d'accoler le N° de port à l'URL dans la requête HTTP, ce qui, pour le néophyte, présente une certaine complexité.
3.1. HERITAGE DES PROPRIETES
Chaque site possède sa propre feuille de propriétés modifiable dans la fenêtre propriétés du site. IIS propose un mécanisme d'héritage qui font que les propriétés définies à un niveau supérieur (serveur HTTP, site) seront automatiquement adoptées au niveau inférieur (site, répertoires, …). Des modifications spécifiques peuvent ensuite être manuellement apportées à ces dernières.
3.2. NOMMER DES OPERATEURS DE SITES WEB
Vous pouvez définir des comptes utilisateurs NT qui possèdent des droits d'administration limités à un site Web. Ces opérateurs de sites n'ont pas accès aux paramètres du système d'exploitation ou aux propriétés générales concernant IIS. Le recours à ces profils est particulièrement intéressant si vous hébergez sur une même machine les sites de plusieurs sociétés. Ainsi, vous avez la possibilité de nommer un responsable par entreprise chargé de l'administration du site de celle-ci.
L'opérateur de site peut :
- Définir les paramètres d'enregistrement dans le fichier historique
- Définir les permissions d'accès
- Modifier les paramètres du contrôle d'accès
L'opérateur de site ne peut pas :
- Modifier les paramètres relatifs à la limitation de bande passante
- Créer des répertoires virtuels ou modifier leur chemin
- Modifier les paramètres d'exécution des processus des applications
3.3. ADMINISTRER LES SITES A DISTANCE
IIS offre la possibilité d'administrer les sites à distance par le biais d'un gestionnaire de services HTML accessible depuis un simple Browser. L'administration distante se fait via un port d'administration définit aléatoirement lors de l'installation de IIS, via le navigateur. Il convient donc d'associer à l'URL le N° de port IP virtuel dans la requête HTTP. L'administrateur doit dans un deuxième temps fournir un profil utilisateur et un mot de passe.
Seuls les membres du groupe Administrateurs peuvent administrer un site à distance.
Il convient au préalable d'installer le gestionnaire de services HTML et de modifier les restrictions d'usage qui, par défaut, ne sont accordés qu'à l'ordinateur local.
Vue de la console d'administration distante
3.4. AFFECTER UN NOM AU SITE
Plusieurs possibilités vous sont offertes pour traduire les noms de vos sites en adresses IP correctes par un système de résolution de nom.
- Système de résolution de nom sur un Intranet
- Système de résolution de nom sur Internet
- Affectation de noms d'en-tête d'hôte
3.4.1. SYSTEME DE RESOLUTION SUR UN INTRANET
Le choix est fonction de la taille de votre réseau, de la fréquence des évolutions et de l'homogénéité ou non du parc.
- Mappage statique (fixe) des adresses IP sur des réseaux de petite taille et dont la stabilité importante ne demande pas de fréquentes mises à jour. L'administrateur créé un fichier HOSTS (pour les noms DNS) ou LMHOSTS (pour les noms Netbios) puis entre le nom et l'adresse IP de chaque ordinateur.
- Mappage dynamique : lorsque le client ouvre une session ou lorsque son bail arrive à échéance, l'ordinateur DHCP lui alloue une adresse IP et envoie celle-ci au serveur WINS (Windows Internet Name Service) qui enregistrera son nom et son adresse.
- Un mélange des deux : l'inscription dans les bases Wins peut se faire aussi manuellement pour les serveurs qui disposeraient d'adresses fixes et par un service DHCP pour les clients.
- Si votre réseau est hétérogène il est aussi possible d'associer un serveur DNS, qui contient une base de données statique, à un serveur Wins.
3.4.2. SYSTEME DE RESOLUTION DE NOM SUR INTERNET
Sur le réseau Internet, la résolution des noms sera prise en charge par les serveurs DNS (Domain Name System) qui permettront de traduire les noms de domaine en adresses IP pour les sites. Les noms de domaine auront du être au préalable déposés auprès de l'InterNIC ou l'un de ses représentants.
3.4.3. ATTRIBUTION DE NOMS D'EN-TETE D'HOTE
Chaque site Web est identifié au moyen d'une adresse IP, d'un N° de port et d'un nom d'en-tête d'hôte. Ainsi, un site peut partager la même adresse IP et le même port mais être différencié par le seul nom d'en-tête d'hôte. Cette technique n'est pas compatible avec les anciens navigateurs qui ne peuvent pas ajouter l'en-tête d'hôte dans leur requête. Ils arriveront donc sur le site Web par défaut correspondant à cette adresse et ce port IP.
3.5. AUTHENTIFICATION DES UTILISATEURS
Par défaut, les utilisateurs ouvrent sur un site Web des sessions en tant qu'utilisateur anonyme du site. Il n'y a donc pas authentification des utilisateurs. L'utilisateur se trouve connecté à l'aide d'un compte utilisateur Windows NT invité internet IUSRNomOrdinateur dont les accès sont restreints aux répertoires publiés sous IIS. Pour obliger les utilisateurs à s'authentifier au moment de leur connexion, il faudra donc interdire les accès anonymes. Les utilisateurs doivent s'authentifier dans deux cas de figure :
- Lorsque l'accès anonyme est désactivé
- Lorsque l'accès anonyme n'a pas les droits suffisants pour accéder à la ressource demandée.
Le serveur Web IIS prend en charge trois formes d'authentification :
- Authentification de base
- Authentification Stimulation / réponse de Windows NT
- Authentification des clients porteurs de certificat SSL
3.5.1. AUTHENTIFICATION DE BASE
C'est la méthode standard pour recueillir les informations relatives au compte utilisateur et à son mot de passe associé. Lorsque l'authentification de base est activée, l'utilisateur reçoit une boite de dialogue dans laquelle il doit préciser son nom d'utilisateur et son mot de passe. Le serveur Web vérifie les informations transmises et autorise ou non les connections. L'intérêt de cette méthode est quelle fonctionne avec tous les navigateurs Web. Son principal inconvénient réside dans le fait que le mot de passe est transmis en clair sur le réseau et qu'il peut dès lors être intercepté et utilisé frauduleusement.
3.5.2. AUTHENTIFICATION PAR STIMULATION REPONSE DE NT
Les échanges entre le serveur et le client sont encryptés et les risques de voir les pirates se procurer frauduleusement des accès à votre site sont donc fortement limités. Toutefois, cette fonctionnalité n'est à ce jour prise en charge que par les navigateurs IE au-delà de la version 2. C'est donc une technique plutôt réservée à un usage en Intranet où le type de navigateur peut être imposé. Lorsque les 2 techniques, authentification de base et authentification stimulation réponse NT sont mises en œuvre, c'est l'authentification de base qui est prioritaire si le navigateur client la prend en charge.
3.5.3. AUTHENTIFICATION DE CERTIFICATS CLIENTS SSL
Le serveur Web de IIS supporte les fonctionnalités du protocole SSL (Secure Socket Layout) et le protocole PCT (Private Communication Technology). Ainsi, vous pouvez mettre en œuvre ces protocoles et exigés que vos clients soient porteurs d'un certificat SSL valide pour valider leur connexion. Ils devront alors utiliser le protocole HTTPS au lieu du protocole HTTP pour accéder à votre site Web sécurisé.
Pour pouvoir prendre en charge les certificats de vos clients, le serveur doit lui-même être en possession d'un certificat SSL Serveur valide. Ce certificat s'acquière auprès d'une société tierce de certification (par courrier électronique et versement d'une redevance) et doit dans un deuxième temps être installé sur votre machine.
Ensuite, le fait que le client soit porteur de certificat ne suffit pas à valider sa demande de connexion. Il faut vérifier qu'il dispose bien d'un compte Windows NT correspondant. Il convient au préalable de mapper le certificat client avec les informations du compte utilisateur.
...
3.7.2. MODE D'ENREGISTREMENT DES FICHIERS JOURNAUX
Il est possible de préciser à IIS la façon dont il doit créer de nouveaux journaux plutôt que d'ajouter des enregistrements à ceux existants. Il existe 3 critères principaux :
- La période : tous les jours, toutes les semaines ou tous les mois.
- La taille : une fois la taille atteinte, un nouveau journal est créé.
- L'unicité : 1 seul journal est créé, les données sont alors toujours ajoutées à ce dernier. Ce fichier n'est accessible qu'après arrêt du site.
Le nom du journal a trait à son type et au mode d'enregistrement choisit, ainsi :
- Un fichier Microsoft IIS a pour préfixe in pour un enregistrement sur une période ou inetsv pour un enregistrement selon la taille.
- Un fichier NCSA a pour préfixe nc pour un enregistrement sur une période ou ncsa pour un enregistrement selon la taille.
- Un fichier W3C étendu a pour préfixe ex pour un enregistrement sur une période ou extend pour un enregistrement selon la taille.
- Un fichier dont l'enregistrement porte sur la journée aura un suffixe de type aammjj.
- Un fichier dont l'enregistrement porte sur la semaine aura un suffixe de type aammss ou ss est le N° de la semaine.
- Un fichier dont l'enregistrement porte sur le mois aura un suffixe de type aamm.
- Un fichier dont l'enregistrement est fonction de la taille aura comme suffixe un N° d'ordre nn séquentiel.
Ce qui donne en final des exemples de ce type :
- inetsv03.log IIS / mode fonction de la taille.
- NC991231 NCSA / mode enregistrement quotidien.
3.7.3. CONVERSION DES FICHIERS JOURNAUX
Un utilitaire convlog est disponible pour convertir les fichiers journaux de votre serveur Web en format NCSA standard. Le convertisseur permet de plus de remplacer les adresses IP par les noms DNS correspondants. Le logiciel convlog est accessible depuis une fenêtre de commandes DOS et admet les paramètres suivants :
- -i qualifie le format d'entrée (i IIS, n NCSA, e W3C)
- nomfichier.log nom du fichier en entrée
- -t type de sortie (par défaut NCSA) suivi du décalage
horaire par rapport à GMT ncsa:GMToffset
- -I format de date ((0 US, 1 Japonais, 2 Européen)
- -o répertoire de sortie
- -x place les entrées non HTTP dans un fichier .dmp
- -d remplacement des adresses IP par le nom DNS
Exemple : convlog –i i inetsv10.log –d –t ncsa:-0500 convertit un fichier IIS au format NCSA avec 5 heures de décalage par rapport à GMT et remplace les adresses IP par les noms de domaine.
3.8. REGLAGE DES PERFORMANCES
IIS permet un certain nombre de réglages afin d'améliorer les performances de votre serveur. Les performances de vos services peuvent être observées à l'aide de l'analyseur de performances de NT et d'après la lecture des enregistrements des journaux d'activité.
3.8.1. LIMITATION DE LA BANDE PASSANTE
Si vous publiez plusieurs sites sur votre serveur et qu'ils partagent la même carte réseau, il peut s'avérer intéressant de limiter la bande passante consacrée à chacun d'entre eux en fonction du trafic qu'ils génèrent.
De même, il peut s'avérer utile de limiter la bande passante de IIS pour permettre à d'autres services, une messagerie électronique par exemple, de pouvoir s'exécuter dans de bonnes conditions.
Afin de modifier les valeurs de bande passante affectées à IIS, affichez la fenêtre de propriétés de l'ordinateur à partir de Propriétés de site Web, puis sélectionnez activer la limitation de bande passante. Saisissez le nombre de ko/s maximal qui pourra être utilisé par IIS dans la boite de texte utilisation maximale du réseau.
Afin de modifier les valeurs de bande passante affectées à un site Web, affichez la fenêtre de propriétés de ce dernier puis dans la fenêtre performances, sélectionnez activer la limitation de bande passante. Tapez comme précédemment la quantité maximale à affecter à ce site.
3.8.2. LIMITATION DES CONNEXIONS
Pour limiter l'usage des ressources de votre serveur, et libérer ainsi celles-ci pour d'autres services (ou d'autres sites), vous avez la possibilité de limiter le nombre de requêtes HTTP simultanées par site. Il faut toutefois garder à l'esprit qu'une page composée de texte et de 4 graphismes utilisera 5 connexions pour être chargée dans le navigateur.
En limitant le nombre de connexions simultanées, IIS ajuste la quantité de mémoire nécessaire aux traitements des nouvelles requêtes.
Vous pouvez de même limiter le délai d'attente de connexion accordé aux utilisateurs en faisant la demande. Par défaut, il n'est pas limité et est donc uniquement fonction du nombre de connexions autorisées, de la bande passante et des ressources processeur.
Pour limiter le nombre de connexions, activez la case à cocher Limité à dans la feuille de propriétés Site Web et saisissez le nombre total de connexions simultanées.
Vous pouvez de plus préciser le délai de connexion en secondes dans la boite de texte délai de connexion.
3.8.3. CONNEXIONS HTTP PERSISTANTES
Les connexions persistantes sont une spécification HTTP qui permet de maintenir la connexion ouverte pour exécuter plusieurs requêtes HTTP, par exemple lorsqu'un navigateur charge dans sa fenêtre une page qui comporte plusieurs éléments graphiques. Les connexions persistantes sont activées par défaut et il n'est, sauf à de très rares exceptions, pas judicieux de désactiver celles-ci.
Installation et paramétrage IIS
Pour ASP
1) Vérifier si IIS est installé
- IIS local en allant voir dans le panneau de config outils d’administration
- IIS Server en allant voir dans programme outils d’administration
2) Installer IIS local
Panneau de config ajouter programme composant windows
le fichier admxprox.dll est demandé : inserer le CD et trouver le fichier dans :/I386
3) Créer les repertoires
Créer le répertoire sous inetpubwwwroot
(Si on est en IIS Server, créer un répertoire par stagiaire web1, web2….)
4) Configurer IIS
On accede à IIS par
Panneau de config outils d’aministration gestionnaire de service Internet
On obtient l’écran :
Si on n’arrive pas à ouvrir le poste, c’est peut être parce que l’on n’est pas administrateur
Créer un nouveau répertoire virtuel :
Garder les options par défaut
Aller voir les propriétés du répertoire virtuel créé :
Attention : cocher exploration de répertoire !! (et même tous les accés)
Si le site web par défaut est arrêté : le démarrer !!!
( ! si erreur adresse déjà utilisée, c’est que apache tourne… il faut arrêter le service)
Aller aussi dans les propriétés du site web par défaut et cocher aussi tous les accès dans l’onglet répertoire de base.