Les améliorations

Présentation rapide des améliorations pour IIS 6.0

(Source site Microsoft)

Fiabilité

IIS 6.0 utilise un nouveau système pour gérer les requêtes ainsi qu'un environnement d'isolation qui permet de faire fonctionner différentes applications web dans des environnements véritablement différents. Ce dernier évite qu'une application web n'entraîne d'autres applications en cas de crash. Ce nouvel environnement inclut aussi un monitoring proactif pour les pools d'applications.

Evolutivité

IIS 6.0 introduit un nouveau driver en mode noyau pour la gestion du protocole HTTP qui a pour effet d'augmenter considérablement :
  • Le nombre de sites web qu'un serveur IIS 6.0 peut héberger sur une seule machine
  • Le nombre de processus actifs qui peuvent s'exécuter en concurrence
  • Le nombre de requêtes simultanées qu'un serveur web peut gérer

Sécurité

IIS 6.0 présente des améliorations notables par rapport à IIS 5.0. Par exemple, pour éviter les attaques potentielles, IIS 6.0 n'est pas installé par défaut sur les serveurs Windows 2003. Les administrateurs doivent donc installer IIS manuellement. Même après l'installation, IIS 6.0 n'est plus configuré par défaut pour servir des pages dynamiques, il faut donc le configurer aussi manuellement pour fournir du contenu dynamique.

Système

Au niveau de l'administration, IIS 6.0 est fournit avec des outils de gestion qui permettent de l'administrer mieux que jamais.
Les fonctionnalités de la console MMC IIS ont été améliorées. La métabase de IIS 6.0 se présente maintenant sous forme d'un fichier XML (contrairement au fichier plat des autres versions). Il est aussi possible de gérer à distance IIS 6.0 ainsi que les sites web.
A l'instar de l'administration, les pages ASP héritent de nouvelles fonctionnalités et de performances d'exécution supérieures. Un script ASP aura tendance à fonctionner plus rapidement sur IIS 6.0 que sur IIS 5.0.

Préparer un déploiement de IIS 6

Avant de faire une installation de IIS 6, voici quelques éléments à voir :

Inventaire

Faites un inventaire des applications et des sites que vous devez héberger, déterminez en particulier les technologies utilisées (ASP, ASP.NET, ISAPI, CGI). Marquez les sites qui nécessitent une attention particulière.

Planifier l'installation

Il y'a deux possibilités pour une installation :
Soit vous faites une nouvelle installation (Clean Install), dans ce cas, IIS 6 fonctionnera en WP Isolation Mode (Work process Isolation Mode) soit vous faites une mise à jour ce qui aura pour effet de mettre IIS 6 dans un mode de compatibilité appelé mode d'isolation IIS 5.
Le mode "Worker process isolation" utilise le nouveau design d'architecture de IIS 6.0 dans un environnement isolé. Cependant, et contrairement aux versions précédentes, IIS 6.0 propose cette isolation sans impact particulier sur les performances du système. Ce mode fournit les performances optimales. Le mode "IIS 5.0 isolation" permet une compatibilité avec les application qui se basent sur le fonctionnent des precedents versions de IIS, en particilier celle qui utilisent intimement le modèle mémoire de IIS 5.0. Les performances sont moindres qu'avec le mode d'isolation par Worker Process.

Tests de performance

Il est intéressant de faire un test de performance avant et après l'installation de IIS 6. Vous pouvez utiliser un simple Perfmon et monitorer le nombre de requêtes par secondes que votre serveur web peut supporter.

Revue de la sécurité du site web

Voici une petite check-list générale :

Réduisez la surface d'attaque sur le serveur Web

Activez uniquement les composants Windows Server 2003 essentiels
Activez uniquement les composants et services IIS 6.0 requis
Activez uniquement les extensions IIS 6.0 requises
Activez uniquement les types MIME nécessaires
Configurez la sécurité de votre serveur Windows 2003

Protégez l'accès à vos sites web et à vos applications

Mettez le contenu sur un volume dédié
Positionnez les permissions sur les sites Web
Mettez des restrictions sur les IP et les noms de domaines
Positionnez impérativement des permissions NTFS

Configurez correctement l'authentification utilisateur

Sélectionnez le type d'authentification
Configurez l'authentification pour les sites FTP.

Crypter les échanges sensibles avec les clients

Utilisez SSL pour crypter les données confidentielles
Utilisez IPSec ou un VPN pour l'administration distante

Mettre à jour la sécurité du site et des applications

Installez les derniers patches

Activez les logs de sécurité de Windows Server 2003
Activez le contrôle d'accès aux fichiers
Configurez les logs de IIS

Revoyez régulièrement les stratégies de sécurité et les procédures

Quelques outils à votre disposition

Les outils que je vous présente sont fournis dans le ressource kit de IIS 6.0 :

Log Parser : il permet d'analyser les fichiers de log, d'y rechercher des données particulières. Il permet aussi d'exporter des données vers des bases SQL. Il s'agit d'un outil très intéressant si vous utilisez les logs IIS.

MBExplorer : il s'agit d'un outil semblable à Regedit qui permet d'éditer aisément la métabase de IIS 6.0. Vous pouvez tout de même éditer directement la métabase, manuellement, sans passer par aucun outil.

Host helper Service : il permet d'enregistrer les noms des sites dans un serveur WINS ou DNS. Il peut être intéressant pour un ISP.

WCAT : il s'agit d'un nouvel outil permettant de simuler la charge sur un serveur web en utilisant une topologie client-serveur

Wfetch : permet de faire des tests de connexion. Il vous évite d'avoir à vous connecter en telnet sur le port 80 puis à envoyer vous-même vos commandes GET etc…

L'outil de migration IIS4/5 vers IIS 6 : comme son nom l'indique, il permet de migrer de IIS4 et 5 vers IIS 6

L'outil de migration Apache : qui permet de migrer des sites Apache vers IIS 6.0

Remarquons que l'outil URLscan ne fait pas partie du ressource kit IIS 6.0. Cet outil n'est plus nécessaire pour IIS 6.0, il convient de ne plus l'utiliser car ses fonctionnalités sont intégrées dans l'architecture de sécurité de IIS 6.0.

Quelques astuces

Activer les extensions

Par défaut, après une installation de IIS 6.0, presque rien n'est activé. Il est configuré pour servir uniquement du contenu statique (fichiers html uniquement). Si vous souhaitez utiliser des pages dynamiques (ASP par exemple) alors il va falloir activer cette extension au niveau de la partie Web service extensions.

Les types Mime

Vous aurez une erreur 404 si le fichier que vous souhaitez atteindre n'a pas son entrée mime. Il faut donc déclarer les types de fichier et spécifier les opérations autorisées (GET par exemple). Vous pouvez si vous le souhaitez outrepasser cette fonctionnalité en déclarant de manière global ou au niveau du site un mappage Mime du type " *,text/xml "

ASP.NET 1.0

Asp.net version 1.0 ne supporte que le mode de compatibilité IIS 5. Vous ne pourrez donc pas l'utiliser sur un IIS 6.0 en mode "natif". Il faut aussi l'activer sur le serveur si vous souhaitez qu'il fonctionne.

ASP

Les répertoires parents ont été désactivés par défaut. Par répertoire parent j'entend des chemins utilisant ..\ par exemple (chemins relatifs). Vous pouvez réactiver cette fonctionnalité au niveau de l'interface graphique ou directement dans la métabase avec le paramètre AspEnableParentPaths.

Installer IIS sur FAT ?

Si vous installez IIS sur une partition de type Fat alors vous ne pourrez pas profiter de la sécurité au niveau du système de fichier. L'utilisation de NTFS est très fortement recommandé, voir obligatoire si vous souhaitez sécuriser un minimum votre serveur web.
Attention aussi, si vous faites une conversion de FAT vers NTFS alors les sécurités sont réinitialisées. Le mieux est de faire l'installation de votre système et de IIS 6 directement vers une partition NTFS.

L'administration distante

Comme dans les versions précédentes (à partir de la 4), il est possible via une MMC d'administrer différents IIS mais attention, il y'a des choses possibles et d'autres qui ne le sont pas :

Il est possible à partir d'une console IIS 6.0 d'administrer un IIS 6, un IIS 5 et un IIS 4

Il est impossible d'administrer un IIS 6.0 à partir d'une console de version antérieure.

Dernière mise à jour le mercredi 29 octobre 2003