Mise en place de IIS 6.0 : Quelques conseils et outils
Cet article propose quelques idées et considérations liées
au déploiement du serveur Web Internet Information Server 6.0 (IIS 6.0).
Je vous proposerai dans un prochain article une étude au
coeur de IIS 6.0 puis un guide de sécurisation.
Présentation rapide des améliorations pour IIS 6.0
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 kernel 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 (je
pense en particulier aux scripts assez volumineux).
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 possiblité 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é le 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.
Faites des 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 « encaisser ».
Documentez tout ce que vous faites
Après la mise à jour, documentez tout ce que vous avez fait.
Il est important de spécifier
en particulier ce que vous avez activé sur la configuration
(extensions, ISAPIs) et les
modifications que vous avez apporté à la sécurité (les
ACLs).
Revoyez 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 etc…
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, mais la probabilité de vous tromper
est alors plus importante.
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. Je n’ai jamais
eu besoin de cet outil mais je vous le présente tout de même.
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 type 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.
A noter que l’installation des extensions FrontPage
(FPSE) est impossible sur une partition FAT.
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.