windows server 2008 iis 7
DESCRIPTION
Plus des Cours :https://www.facebook.com/ClubTutorialInformatiqueTRANSCRIPT
Windows Server 2008
IIS 7
INTRODUCTION
IIS7 est la dernière version du serveur web de Microsoft, ce dernier est rattaché, dans une
version allégée, à Windows Vista et dans sa version intégrale à Windows Server 2008. Une
version de Windows Server 2008 lui est entièrement dédiée avec Windows Web Server 2008.
Cette version de IIS7 est également utilisable sur l’édition Core de Windows Server 2008
seulement ce server Web ne prendra pas en charge le Framework .NET.
Cette dernière version d’IIS dispose d’une toute nouvelle architecture qui change totalement
d’IIS6, cette nouvelle architecture permettra une administration plus facile et plus
performante.
Dans cet article, nous présenterons les améliorations d'IIS 7.0 et aborderons ensuite dans les
détails les différentes étapes du déploiement et l’administration du serveur web puis nous
arborerons les différents modules qui composent notre serveur web préféré.
Cet article est réalisé avec Windows server 2008.
I .Les nouvelles fonctionnalités de IIS7
La nouvelle version d’IIS présente des atouts majeurs par rapport aux anciennes versions. Il
est beaucoup plus modulable, plus sécurisé et plus facilement administrable.
En effet, IIS7 est totalement modulaire et possède plus de 40 fonctionnalités. Ces modules
peuvent être installés en fonction des besoins et permettent donc de réduire la surface
d'attaque de notre serveur IIS qui sont actuellement très touchés. Cela permet aussi
d'augmenter les performances du serveur en faisant tourner seulement l'essentiel et de réduire
le trafic inutile. On peut par exemple rajouter le module « WindowsAuthModule » qui va
permettre de prendre en charge l'authentification NTLM. On peut désinstaller tout module
quand nous le décidons via le composant « Windows feature ».
De plus, la nouvelle version d'IIS repose sur une hiérarchie de fichiers XML. Cette hiérarchie
regroupe un fichier qui contient la configuration globale côté serveur («
applicationHost.config ») et un fichier « web.config » au niveau structure de répertoire
d'application.
Ces fichiers sont facilement modifiables et le langage XML n'est pas dur à apprendre. Ceci
permet également d'exporter des configurations IIS facilement.
L'administration est également améliorée. On peut administrer notre serveur IIS via les lignes
de commande en utilisant l'outil « appcmd.exe » ou via l'interface graphique.
Cette interface graphique permet de gérer entièrement le serveur et est très complète. On peut
également utiliser cet outil à distance via une connexion HTTPS/SSL. On peut aussi rajouter
nos interfaces personnalisées.
Le serveur IIS7 est basé sur les codes d’IIS6. Il renforce l'architecture du code et apporte des
fonctionnalités de générations des applications web sécurisées. Le fait que l'on peut choisir en
détail d'installer ou de ne pas installer permet de réduire sa surface d'attaque ce qui le rend
plus sécurisé. Le mode intégré ASP.NET permet une meilleure gestion de l'authentification du
fait qu'il est possible de synchroniser notre serveur IIS7 avec les groupes de l'AD,
l'authentification par formulaire...
Il est également possible d'autoriser ou de restreindre l'accès à certaines URL (filtrage web)
dont nous verrons plus en détail ultérieurement.
Il est aussi possible de l'installer sur un Windows Server 2008 version Core. Dans ce cas,
certains modules comme l'ASP ne sont pas disponibles.
La version IIS7 a aussi peaufiné sa gestion des diagnostics. En effet, l'outil "IIS Manager" va
permettre de détecter les problèmes systèmes, superviser toute activité et contrôler lors de
dépannage ou maintenance.
Le serveur IIS7 spécifie également des solutions pour l'utilisateur lorsqu'il génère une erreur
sur une page lui permettant ainsi de résoudre le problème plus rapidement.
1er cadre : Nom de l’erreur.
2ème cadre : Indications sur l’erreur.
3ème cadre : Causes de l’erreur.
4ème cadre : Résolution de l’erreur.
Dans cet exemple, nous essayons d’accéder à la page http://localhost/Supinfo qui n’existe pas.
Nous pouvons voir que IIS7 nous dit pourquoi il croit qu’il y a eut cette erreur et quoi faire
pour la résoudre.
II L’installation d’IIS7
II.1 Les modules -Développement applicatif
Fournit l'infrastructure de développement et d'hébergement des applications web. Utilisez ces
fonctionnalités pour créer des contenus Web ou étendre la fonctionnalité des services Internet (IIS).
Ces technologies permettent généralement d'effectuer des opérations dynamiques qui entrainent la
création de document HTML, qui sont ensuite envoyés par les services Internet (IIS) pour traiter les
demandes des clients.
-Intégrité et Diagnostics
Fournit une infrastructure pour analyser, gérer et dépanner l'intégrité des serveurs, des sites et des
applications Web.
-Sécurité
Fournit une infrastructure pour sécuriser le serveur Web face aux utilisateurs et aux demandes. IIS
prend en charge plusieurs méthodes d'authentification. Choisissez un modèle d'authentification
approprié en fonction du rôle du serveur. Filtrez toutes les demandes entrantes, en rejetant sans
traitement les demandes qui correspondent à des valeurs définies par l'utilisateur, ou restreignez les
demandes en fonction de l'espace d'adressage d'origine.
-Performances
Fournit une infrastructure pour mettre en cache la sortie en intégrant les possibilités de mise rn
cache dynamiques d’ASP.NET avec les possibilités de mise en cache de sortie statiques qui étaient
présentes dans IIS 6.0. IIS permet également d'utiliser plus efficacement la bande passante et
d'optimiser l'utilisation de mécanismes de compression courants.
-Outils de gestion
Fournissent une infrastructure pour gérer un serveur Web IIS7. Vous pouvez utiliser l'interface
utilisateur, les outils en ligne de commande et les scripts IIS pour gérer le serveur Web. Vous pouvez
également modifier directement les fichiers de configuration.
-Service de publication FTP
Intègre le serveur FTP (File Transfert Protocol) et la console de gestion FTP. Vous pouvez configurer
un service de publication FPT pour autoriser les utilisateurs à télécharger des fichiers.
II.2 L'installation Après la présentation des principaux modules nous allons aborder les différentes étapes pour
effectuer l’installation d’IIS7, pour cela nous allons prendre le cas concret d’installer un serveur de
développement pour ASP.NET.
Afin d’installer IIS7 il faut lancer le gestionnaire de serveur en suivant la ligne suivante :
Démarrer --> Panneau de Configuration --> Programmes et fonctionnalités
Vous vous situez la fenêtre programmes et fonctionnalités, pour accéder au gestionnaire de serveur
cliquez sur « Activer ou désactiver des fonctionnalités Windows ».
Ceci est donc la fenêtre de Gestionnaire de serveur où sont regroupés l’ensemble des rôles et autres
informations du serveur, nous souhaitons installer IIS7 pour cela cliquez sur « Ajouter des rôles »
Cette fenêtre vous présente les pré-requis pour installer IIS7. Lorsque vous avez tout lu, cliquez sur
suivant.
Sont représentés ici tout les rôles disponible sur votre serveur, nous sommes plus particulièrement
intéressé par le rôle Serveur Web(IIS), cochez le.
L’assistant vous propose de faire la sélection des rôles nécessaires au fonctionnement d’IIS7, cliquez
sur « Ajouter les fonctionnalités requise ».
Nous pouvons voir que l’assistant n’a pas sélectionné d’autre rôle, vous pouvez cliquez sur Suivant.
Cette fenêtre vous propose une introduction au serveur Web ( IIS7). Lorsque vous avez tout lu,
cliquez sur suivant.
Nous sommes à présent sur la fenêtre de sélection des services de rôles, nous allons donc respecter
notre cas concret et sélectionner ASP.NET dans :
Serveur Web --> Développement d’applications --> ASP.NET
Afin de vous simplifier les choses, après avoir coché la case, l’assistant vous propose de sélectionner
tout les services nécessaires au serveur Web pour être un serveur de développement pour ASP.NET.
Cliquez donc sur « Ajouter les services de rôle requis ».
L’assistant a donc sélectionné tous les services nécessaires, vous pouvez cliquer sur Suivant.
La première fenêtre vous présente un récapitulatif des différents services installer, lorsque vous avez
tout vérifié, cliquez sur Installer. La deuxième fenêtre représente l’état d’avancement de
l’installation. La troisième fenêtre montre l’état final de l’installation, il est important que chaque
rôle soit suivant de la mention « Installation réussie ». Vous pouvez cliquez sur Terminer.
Vous vous trouvez dans le gestionnaire de serveur d’où vous pouvez voir l’ensemble de votre serveur
Web IIS7.
Afin de vérifier que votre installation c’est bien dérouler, ouvrez un navigateur Web, puis dans la
barre d’adresse tapez : http://localhost/
Vous devrez avoir l'image suivante qui apparaît dans votre navigateur.
III Mise en place d'un serveur Web
III.1 La configuration de IIS7 Le serveur Web IIS7 est basé sur des fichiers de configurations. Il existe principalement 2 fichiers :
« applicationHost.config » : regroupe la configuration du serveur « web.config » : dédié à la configuration du serveur relative à une application, un site web
On peut ainsi spécifier des configurations différentes pour chaque site. Il faut savoir que le serveur
possède son fichier « web.config » et également les sites web. Les sites Web récupèrent également
les paramètres du fichier « web.config » du serveur web.
Le fichier « applicationHost.config » se trouve dans « %windir%\system32\inetsrv\config ».
Ces fichiers ne sont modifiables que par des administrateurs.
Il existe aussi une commande pour modifier le fichier « applicationHost.config » : « appcmd.exe ».
En effet, cet utilitaire lit le fichier de configuration « applicationHost.config » puis y écrit les
modifications. Si vous désirez écrire ou lire des informations dans le fichier « web.config », il faut
rajouter l’argument « /commit:WEBROOT » à la fin de la commande. Voici un exemple :
appcmd list config /section:machineKey /commit:WEBROOT
Cette commande va afficher la section MachineKey dans le fichier racine « web.config ».
appcmd set config "Supinfo" /section:defaultDocument /enabled:false
Cet exemple modifie la configuration du répertoire « Supinfo ». On désactive ici la fonctionnalité de
documents par défaut. Cette configuration s’applique à tous les répertoires de « Supinfo ».
On peut également modifier le fichier « applicationHost.config » en utilisant l’interface graphique du
serveur IIS (IIS Manager).
Modification du fichier applicationHost.config.
Le fichier « web.config » est aussi administrable du même endroit.
Modification du fichier web.config.
En utilisant l’interface graphique, configurer votre serveur via les différents icônes sur la page
principale d’administration d’IIS. Maintenant que nous avons vu comment régler les paramètres de
notre serveur IIS7, on va pouvoir créer un site.
III.2 Ajouter un site Web Cette partie va nous montrer comment héberger un site web et nous allons voir une méthode pour
associer notre site au site par défaut (http://localhost).
Tout d’abord, nous allons commencer par créer une page web. Pour cet article, nous allons utiliser
seulement « notepad.exe » et écrire directement notre page web avec les balises adéquates.
Nous remarquons que le dossier qui contient le site web par défaut est « C:\inetpub\wwwroot ». J’ai
choisit de mettre mon site dans le répertoire « C:\inetpub\wwwroot\Supinfo » mais vous pouvez le
mettre n’importe où du moment que vous puissiez y accéder. J’ai appelé ma page « index.html ». Si
votre site est déjà réalisé, copiez l’intégralité de votre site dans un dossier. Attention cependant au
respect des langages supportés par IIS7. Si vous voulez réaliser un site en ASP.NET, il va falloir
installer les modules pour pouvoir lire vos pages « *.aspx » et pareil pour PHP.
Voici le site web que je viens de créer. Maintenant, aller dans « Démarrer / Outils d’administration /
Internet Information Service (IIS) Manager ».
Vous arrivez désormais sur l’interface d’administration du serveur IIS. Pour ajouter le site que vous
venez de créer, développez le nom de votre serveur puis faites un clic droit sur « Sites » et cliquez sur
« Ajouter un site Web … ».
Une fenêtre vous permettant de rentrer les paramètres s’ouvre.
Le champ « Nom du Site » va permettre de définir un nom de site pour y accède par votre
navigateur. Dans mon cas, ce site va être accessible via l’adresse http://winsrv2k8/Localhost.
(Winsrv2k8 étant le nom de mon serveur web).
Le champ « Chemin physique » renseigne sur l’emplacement réel du site Web. Dans mon cas, le site
se trouve à l’emplacement C:\inetpub\wwwroot\Supinfo.
L’onglet « Binding » permet d’associer notre site à un nom de site web, de spécifier le port pour
accéder à notre site, de choisir entre HTTP et HTTPS et de choisir l’interface pour accéder au site. Ici,
nous pouvons accéder à notre site sur le port 80 (port http par défaut), en tapant http://localhost/.
Le fait de renseigner le champ « Host Name » va permettre d’accéder au site via l’adresse
http://localhost/plutôt qu’en tapant http://winsrv2k8/Localhost. Ainsi, toutes requêtes arrivant sur
le port 80 avec comme adresse http://localhost/ sera redirigé vers notre site web. Cela peut être le
premier niveau d’une sécurité en entreprise.
Nous pouvons voir dans l’affichage de gauche que notre site est bien apparu.
IV Modules Complémentaires & Sécurité
IV.1 Modules Complémentaires Nous avons pu voir précédemment que pour la version IIS7, Microsoft a fait des efforts afin
d'intégrer le PHP et autres langages dynamiques dans son serveur web nous verrons ici l'installation
et la configuration d'ASP.NET et de PHP5.
IV.1.a ASP.NET
Lors de l'installation du serveur web IIS7 on peut constater que ce dernier a été totalement optimisé
pour l'ASP.NET, car il permet lors de l'installation de pouvoir installer tous les modules nécessaires au
fonctionnement de l'ASP.NET. Ainsi, si vous avez suivi mes démarches pour l'installation du serveur
web IIS7 au point II.2, je vous ai fait sélectionner les options nécessaires pour l'ASP.NET :
Les quatre options à cocher sont ASP.NET et Extensibilité.NET puis Extensions et Filtres ISAPI qui est
l'acronyme d'Internet Server Application Programming Interface. Le but d'ISAPI est de permettre
d'augmenter les fonctionnalités du serveur web au moyen de DLLs d'extension. Il existe deux types
de DLL ISAPI : les filtres ISAPI et les extensions ISAPI.
Il vous faut placer l'ensemble des fichiers de votre projet ASP.NET dans votre dossier :
c:\inetpub\wwwroot .
Ensuite suivez la démarche explicative du III.2 qui permet d'ajouter un site web.
Si vous avez suivi toutes ces explications, alors vous devriez pouvoir faire fonctionner votre site web
en entrant « http://localhost/ » dans la barre de lien de votre navigateur internet.
Pour la conception d'un site en ASP.NET et en apprendre les rudiments redirigé vous vers
www.dotnet-france.com
IV.1.b PHP
Afin d'installer PHP5, il est nécessaire de télécharger la version zip qui sert à l'obtention des librairies
complémentaires de PHP et le .msi disponible tous deux à cet adresse :
http://www.php.net/downloads.php
Une fois ces deux fichiers téléchargés nous allons respecter un ordre d'opération, à savoir
l'installation du .msi suivi de l'extraction du .zip puis configuration de php.ini et pour finir
configuration d'IIS7.
Installation du .msi
Nous allons donc commencer par l'exécution du .msi, pour ce faire double cliquez sur votre
fichier.msi correspondant à PHP5 :
Vous arrivez sur la page d'accueil, cliquez sur Next.
Vous devez accepter les termes de la License puis cliquez sur Next.
Vous êtes dans la fenêtre de sélection de votre répertoire pour y installer PHP, laissez le par défaut et
si toutefois, « C:\Program Files\PHP\ » n'est pas par défaut alors remplacez la ligne par défaut par
celle entourée sur l'image. Puis cliquez sur Next.
Dans ce cas nous souhaitons donc installer notre module PHP sur un serveur web IIS, il est conseillé
pour des raisons de sécurités d'utilise IIS ISAPI module plutôt que CGI.
Ce module servant uniquement à vous montrer comment installer un module PHP au sein de IIS nous
ferons une installation de base et alléger. Puis cliquez sur Next.
Pour poursuivre votre installation cliquez sur Install.
Vous avez à présent installé PHP5 sur le serveur Web IIS7.
Extraction du .zip
Nous allons à présent passer à la partie extraction des librairies complémentaires de PHP.
Pour cela faite click droit sur votre fichier.zip puis cliquez sur Extraire Tout :
La fenêtre suivante apparaît, cliquez sur Parcourir afin de sélectionner le répertoire contenant votre
installation de PHP5.
Dans cette fenêtre déplier l'arborescence jusqu'à trouver le répertoire PHP. Sélectionnez le puis
cliquez sur OK.
Une fois le bon chemin sélectionnez cliquez sur extraire.
Si une fenêtre s'ouvre vous demandant de remplacer un fichier ou un dossier existant, alors
remplacez-le.
Vous avez extrait tout le contenu de l'arche .zip dans le dossier C:\Program Files\PHP\
Configuration de php.ini
Allez dans le répertoire ou vous venez d'extraire votre archive.zip, dans ce répertoire se trouve un
fichier PHP.ini qu'il faut éditer, une fois le fichier trouver double cliquez dessus
Une fois dans le fichier, pour rechercher la ligne, allez dans Edition?Rechercher, dans la zone
recherche indiquer ceci : extension_dir = "./"
Une fois cette ligne trouvée, remplacez la par : extension_dir = "ext/"
Vous pouvez sauvegardez votre fichier puis quittez-le.
Configuration d'IIS7 pour l'utilisation de PHP5
Il faut a présent configurer notre serveur web afin de pouvoir utiliser PHP5.
Pour cela il faut lancer la console d'administration IIS :
Démarrer --> Outils d'administration --> Gestionnaire des services internet(IIS)
Double cliquez sur Document par défaut :
Inscrivez-y index.php et placez-le en fin de liste.
Une fois ceci fait, revenez sur la page d'accueil de votre serveur web puis double cliquez sur
Mappage de Gestionnaire:
Vérifier dans cette fenêtre s'il y a un script ayant pour chemin d'accès *.php, s'il n'y en a pas, il vous
faut le créer, pour cela sur la colonne de droite cliquez sur Ajouter un mappage de script puis
inscrivez s'y les mêmes informations que celle figurant sur les captures d'écran suivantes.
Lorsque les trois champs sont remplis, cliquez sur « Restrictions des demandes » et indiquez la
même configuration que celle sur les trois captures d'écran suivantes :
Une fois ceci fait, revenez sur la page d'accueil de votre serveur web puis double cliquez sur
Restrictions CGI et ISAPI :
Ajoutez y une restriction, afin de compléter les champs, inscrivez y les même paramètres que ceux de
la capture d'écran suivante :
A présent, dans l'onglet connexion placez-vous sur votre site web, vous devrez refaire la
configuration de l'étape Mappage de Gestionnaire par ailleurs il ne faut pas oublier de positionner
votre nouveau Gestionnaire au-dessus du StaticFile. Pour savoir lequel est au-dessus duquel il faut
cliquer à droite sur Afficher une liste triée...
La configuration d'IIS7 est terminée, il ne vous reste plus qu'a placer ce fichier dans votre dossier :
c:\inetpub\wwwroot (dossier principale par défaut de votre serveur web)
Index.php :
Inscrivez ensuite ce lien dans votre navigateur pour tester votre page : http://localhost/index.php
IV.2 Sécurité Nous allons maintenant mettre en place la sécurité sur notre site créé précédemment. Pour cela,
nous allons créer un accès à ce site en HTTPS (HyperText Transfer Protocol Secured) en utilisant des
certificats. Nous allons aussi voir comment restreindre l'accès à certains utilisateurs.
IV.2.a Installation d'une autorité de certification
Pour commencer, il faut installer une autorité de certification. Cette autorité va permettre de
générer des certificats pour utiliser le protocole HTTPS via SSL (Secure Socket Layer). Un certificat
permet de garantir que l'émetteur est bien celui qu'il prétend être. Pour installer une autorité de
certification, il faut commencer par aller dans « Server Manager » puis d'ajouter un rôle.
Ensuite, l'assistant se lance et on clique sur « Suivant ». Il faut choisir « Active Directory Certificate
Service ».
On va alors commencer à configurer notre autorité en fonction de nos besoins et de notre réseau.
L'affichage suivant nous décrit le service de certificats :
.Une fois que l'on a cliqué sur suivant, on choisit les rôles associés aux certificats que l'on souhaite
installer. Nous choisissons d'installer l'autorité de certification et le module permettant de demander
un certificat par le web (« Certificate Authority Web Enrollment »). Les autres modules sont destinés
à des infrastructures complexes.
On va maintenant choisir le type de notre autorité de certification. Il en existe 2 :
« Enterprise » qui permet de synchroniser notre autorité de certification avec Active Directory
« Standalone » qui n'utilise pas Active Directory pour gérer ses certificats
On choisit si notre autorité de certification est l'autorité racine de notre infrastructure à clef publique
ou si elle dépend d'une autre autorité.
On génère maintenant une paire de clefs à notre autorité de certification (clef publique / clef privée).
On peut soit en créer une nouvelle soit en choisir.
On renseigne désormais les paramètres de chiffrement de nos clefs. J'ai choisis d'utiliser l'algorithme
RSA/SHA avec une clef d'une longueur de 4096 BITS.
A l'étape suivante, on donne un nom à notre autorité de certification.
On choisit la période de validité des certificats.
On valide les chemins par défaut de notre autorité de certification.
L'écran suivant nous récapitule tous nos paramètres de configuration de notre autorité de
certification et nous indique que l'on ne peut plus modifier le nom du contrôleur de domaine ainsi
que le nom du domaine sous peine de dysfonctionnement de l'autorité.
Une fois le rôle installé, l'assistant prend fin et nous signale que tout s'est effectué sans problèmes.
IV.2.b HTTPS
Configuration de HTTPS via SSL
Notre autorité de certification créée, on va générer un certificat auto-signé pour utiliser SSL. Pour
cela, il faut aller dans l'assistant d'IIS7 et ouvrir « Server Certificate ».
On sélectionne dans le menu de droite « Créer un certificat auto-signé ».
On donne un nom à notre certificat puis on valide.
Notre certificat apparaît désormais dans la liste des certificats d'IIS. On va maintenant pouvoir
associer HTTPS à notre site Web. Pour cela, clic droit sur notre site puis « Edit Binding ».
Une fenêtre apparaît nous spécifiant que ce site est déjà associé au protocole HTTP. Cliquez sur «
Ajouter » pour lui associer HTTPS.
Dans la fenêtre suivante, sélectionnez « HTTPS ».
Il est désormais possible de choisir un certificat pour utiliser le protocole SSL pour crypter le transfert
des données entre l'utilisateur et le serveur.
Il faut maintenant configurer le protocole SSL sur notre site Web. Pour cela, dans l'assistant d'IIS7,
choisissez « SSL Settings ».
Vous pouvez modifier les paramètres SSL dans la fenêtre suivante.
Suivant l'importance et la confidentialité de votre site vous pouvez configurer votre server de telle
manière à exiger que le client utilise un certificat, à l'autoriser à en avoir un et pareil pour SSL.
Testons notre serveur sur différents navigateurs.
Test sur les clients du protocole HTTPS via SSL
Les paramètres des navigateurs autorisent et utilisent le protocole SSL. Le test suivant a été effectué
sur un Macbook sous Firefox.
Lorsque l'on accède à l'adresse https://Winsrv2k8/ ou https://10.0.0.100/, le navigateur nous
demande si nous voulons faire confiance au certificat du site émetteur. Il est possible d'examiner le
certificat. Firefox nous informe que notre site n'est pas répertorié comme un site de confiance et
qu'il peut être dangereux. Il nous suggère de quitter ce site ou de ne pas rentrer d'informations
confidentielles.
Une fois que l'on a accepté de visualisé le site et de faire confiance au certificat, nous accédons au
site Web en HTTPS et le cadenas apparaît nous signalant que le site est sécurisé. En cliquant sur le
certificat, nous pouvons voir des informations complémentaires notamment que la connexion est
chiffré via SSL (128 bits).
Nous allons maintenant effectuer le même test sous Windows XP équipé d'internet explorer v6.
Lorsque nous tentons d'accéder à notre site Web, le navigateur nous demande de faire confiance au
site Web. Si on fait confiance, on arrive sur le site en HTTPS et le cadenas est présent.
Nous allons maintenant effectuer le test sous Windows Server 2008 équipé d'internet explorer v7.
Si nous accédons au site via HTTPS, le navigateur commence par nous indiquer que nous allons nous
connecter au site via une connexion sécurisé.
Ensuite, IE7 nous signale qu'il ne fait pas confiance au certificat du site et nous suggère de fermer le
site.
Si nous continuons, nous arrivons sur le site mais l'adresse est surlignée en rouge et IE7 nous indique
toujours que le certificat n'est pas considéré, pour lui, comme une source de confiance.
Nous voyons par cet exemple, qu'IE7 est plus sécurisé et nous indique de faire attention face à des
sites non reconnus comme source de confiance.
Nous allons maintenant voir comment restreindre l'accès aux utilisateurs anonymes ou à n'importe
quel utilisateur.
IV.2.c Restriction d'accès
Tout d'abord nous allons voir comment restreindre l'accès aux utilisateurs anonymes. Lancez
l'assistant d'IIS7 et aller dans le menu « Authorization Rules ».
Ce menu permet de définir les utilisateurs qui auront ou non le droit d'accéder à notre site Web. Par
défaut, tous les utilisateurs y ont accès. Faites un clic droit dans la nouvelle page de l'assistant qui
vient d'apparaître et choisissez « Add Deny Rule … ». On va interdire l'accès aux utilisateurs
anonymes.
C'est dans ce volet d'affichage que nous allons choisir nos restrictions d'accès.
On peut choisir d'interdire tous les utilisateurs, les utilisateurs anonymes, certains rôles ou groupes,
des utilisateurs en particulier. On va pouvoir restreindre notre règle à des types de requêtes (GET,
POST).
Une fois notre règle validée, nous pouvons voir l'ensemble des règles appliquées à notre site.
Ensuite, si on essai d'accéder au site, nous aurons le message d'erreur suivant :
L'obtention de ce message est normal, étant donné que lorsqu'on a créé le site, nous lui avons
associé le module d'authentification : « Anonymous Authentication ». Ceci aura pour effet d'accéder
au site web à chaque fois via un accès anonyme.
Pour changer cela, aller dans l'assistant d'IIS7 et ouvrez le menu « Authentication ».
Ensuite, parmi les modules proposés, sélectionnez le module « Basic Authentication ». Ceci
affichera, à chaque connexion au site Web, une boîte de dialogue vous demandant un login / mot de
passe pour accéder au site.
Les utilisateurs pouvant se connecter au site Web sont ceux situés dans l'Active Directory à condition
qu'ils ne soient pas refusés dans le menu « Authorization Rules ».
Les autres modules d'authentifications permettent de faire une authentification transparente avec
l'AD, d'utiliser les cookies…
V Autres Services
V.1 FTP Nous allons nous consacrer désormais à l’élaboration d’un serveur FTP (File Transfert Protocol) afin
de pouvoir partager des fichiers entre des utilisateurs.
V.1.a Installation du serveur FTP 7
Pour commencer, il faut télécharger FTP v7 sur le site officiel de Microsoft sinon la version incluse
dans IIS7 est la version 6. Pour cela, rendez-vous sur à l’adresse :
www.microsoft.com/france/telechargements/default.aspx
Le fichier que j’ai téléchargé pour la rédaction de cet article se nomme : « ftp7_x86_rtw.msi ». Une
fois exécuté, l’assistant d’installation se lance.
Cliquez sur suivant et acceptez la licence.
Cliquez sur suivant pour pouvoir choisir les modules que vous souhaitez installer. J’ai choisit de tous
les installer pour bénéficier au maximum des capacités du FTP.
La configuration de l’installation est terminée. Validez le prochain écran pour installer FTP 7.
Une fois que l’installation s’est terminée avec succès, vous pouvez consulter le fichier d’installation et
utiliser FTP 7.
Vous pouvez constater que de nouveaux icônes sont apparus dans la fenêtre d’administration d’IIS7.
Ces nouveaux icônes permettent d’administrer les paramètres FTP de notre serveur IIS7.
V.1.b Création d’un espace FTP
On va commencer par créer un répertoire dans le répertoire « C:\inetpub\ftproot » que l’on appelle
« FTP_Supinfo ».
Nous allons maintenant créer un espace FTP pour pouvoir déposer des fichiers dessus et en
récupérer. Pour cela, aller dans « Démarrer / outils d’Administrations / Internet Information
Services (IIS) Manager ».
Ensuite, faîtes un clic droit sur le dossier « Sites » et cliquez sur « Ajouter un site FTP ».
L’assistant de création d’espace FTP se lance et il faut remplir le nom de l’espace et le chemin de
l’espace. J’ai choisit de l’appeler « FTP de Supinfo » et de mettre le chemin du dossier créé
précédemment.
Ensuite, il faut configurer l’accès à notre FTP puis SSL. J’ai choisit de laisser les paramètres par défaut
pour l’accès à l’espace FTP (port 21 et par toutes les interfaces) et de configurer SSL plus tard.
Une fois cette étape validée, on renseigne les autorisations du site et le mode d’authentification
c'est-à-dire comment et qui peuvent y accéder.
La partie « Authentification » permet de définir le mode d’authentification. Si l’on choisit «
Anonyme », tout le monde pourra y aller sans problème alors que le mode « Basique » permet
d’utiliser des comptes de l’AD (Active Directory).
La partie « Autorisation » permet de renseigner les utilisateurs pouvant accéder à notre espace FTP.
On précise aussi les permissions (Lecture, Ecriture).
J’ai choisit d’autoriser les utilisateurs anonymes à consulter notre espace et à leur donner seulement
un accès en lecture.
Cliquez sur « Terminer » pour terminer la configuration de votre site et pouvoir y accéder.
Maintenant, les utilisateurs anonymes peuvent se connecter et ne peuvent pas modifier, créer et
supprimer des fichiers.
Pour effectuer des tests, j’utilise le client « FileZilla ».
Nous allons maintenant nous connecter avec des utilisateurs appartenant à Active Directory. Pour
cela, il faut commencer par changer (ou « rajouter » si l’on souhaite toujours se connecter
anonymement) le mode d’authentification. Cliquez sur « FTP Authentification » dans l’assistant d’IIS.
Ensuite, sélectionnez « Basic Authentication » et activez le dans le menu de droite.
Revenez dans l’assistant d’IIS7 et cliquez sur « FTP Authorization ».
Vous pouvez ajouter des utilisateurs pouvant accéder à notre espace FTP. Faites un clic droit au
milieu de la fenêtre et choisissez « Add Allow Rule … ».
Choisissez d’ajouter un utilisateur appartenant à l’Active Directory. L’utilisateur me correspondant
est « aroumegous » (Aurélien Roumégous). J’ai choisit de me donner un accès complet (Lecture,
Ecriture)
Je peux désormais accéder à mon espace FTP via mon utilisateur et mettre des fichiers sur le FTP.
Nous allons maintenant configurer les messages d’accueil, de bienvenue, de sortie … Pour cela, allez
dans l’assistant d’IIS et cliquez sur « FTP Messages ».
Ensuite, on va configurer chaque message dans l’assistant.
J’ai choisit de mettre un message d’accueil : « Bienvenue sur l'espace FTP du site de Supinfo réalisé
pour la rédaction de l'article sur IIS7 » et un message de sortie « Au revoir ».
Désormais, lorsque nous nous connectons à notre FTP, nous avons le message de bienvenue.
Il est aussi possible de mettre en place le protocole SSL pour chiffrer les données entre le serveur et
le client. Pour cela, allez dans l’assistant IIS et cliquez sur « FTP SSL Settings ».
Ensuite, vous pouvez configurer les paramètres se SSL. Pour commencer, choisissez le certificat. J’ai
réutilisé le certificat auto-signé généré précédemment. Ensuite, on va choisir si on oblige le client à
utiliser le protocole SSL (« Require SSL Connections ») ou s’il n’est pas obligé (« Allow SSL
Connections »).
Pour finir, on choisit si on chiffre les connexions SSL.
Pour pouvoir se connecter en utilisant SSL avec le client, il faut effectuer quelques paramètres sur
FileZilla. Pour commencer, créez une nouvelle connexion et configurez-la comme suit :
Il faut que vous renseigniez le type de connexion et l’authentification. Ensuite, lors de la connexion
au serveur FTP, le serveur demandera au client de faire confiance à son certificat.
Après avoir validé le certificat, le client est authentifié et la connexion est chiffrée.
On peut également voir les utilisateurs connectés à notre serveur FTP via l’assistant IIS7. Pour cela,
cliquez sur « FTP Current Sessions ».
Vous voyez alors les utilisateurs connectés à votre serveur FTP.
V.2 Webdav Nous allons maintenant voir comment mettre en place un serveur WebDAV (Web-based
Distributed Authoring and Versioning). WebDAV est une extension du protocole http permettant
de partager, récupérer, déposer et synchroniser des fichiers facilement à travers le Web.
V.2.a Installation de WebDAV 7
Pour commencer, il faut télécharger FTP v7 sur le site officiel de Microsoft :
http://www.iis.net/downloads/default.aspx
Le fichier que j’ai téléchargé pour la rédaction de cet article se nomme : « webdav_x86_rtw.msi ».
Une fois exécuté, l’assistant d’installation se lance.
Une fois que vous avez validé la licence et cliquez sur suivant, l’installation se lance. Celle-ci est
assez rapide.
Vous devriez voir apparaître un nouvel icône dans l’assistant d’IIS7.
Cet icône vous permet de configurer les paramètres et les utilisateurs pouvant accéder à WebDAV.
V.2.b Configuration de WebDAV 7
Pour activer WebDAV, cliquez sur « WebDAV Authoring Rules » puis sur le menu de droite « Enable
WebDAV ».
WebDAV est maintenant activée. Il faut configurer les autorisations pour accéder au partage de
fichier.
Pour cela, cliquez dans le menu de droite sur « Add Authoring Rule ».
La fenêtre suivante vous permet de configurer une règle WebDAV. Le premier onglet permet de
définir les fichiers accessibles via WebDAV. Le second onglet permet de définir les utilisateurs
pouvant accéder au WebDAV. Le dernier onglet permet de définir les permissions des utilisateurs.
J’ai donné tous les droits à l’utilisateur « aroumegous » et il peut accéder à tous les types de
fichiers présents sur le serveur.
Ensuite, WebDAV utilise le mode d’authentification « Windows Authentication » (utilise le login et
mot de passe de connexion Windows) ou « Basic Authentication » (Authentification via une pop-
up) couplé avec SSL.
Pour configurer le mode d’authentification, aller dans l’assistant d’IIS7 et dans « Authentication ».
Ensuite, il suffit d’activer le module que l’on souhaite en le sélectionnant et en cliquant sur «
Enable ».
Une fois les modules d’authentifications activés, vérifiez dans « Authorization Rules » si vous
autorisez votre utilisateur à accéder au site. Si vous l’activez dans WebDAV et pas dans le site,
l’utilisateur ne pourra pas accéder au serveur WebDAV.
Dans mon cas, je n’autorise seulement les utilisateurs authentifiés et non les utilisateurs
anonymes.
Notre serveur WebDAV est maintenant opérationnel. Nous allons faire un test sur un client.
Pour cela, j’utilise un Windows XP qui se connecte au domaine via l’utilisateur « aroumegous ».
Je crée un lecteur réseau à la main (via la commande net use) pointant vers un répertoire que j’ai
créé dans mon serveur configuré pour utilisé WebDAV.
La commande est : « Net use O: http://winsrv2k8/Supinfo ». Le lecteur a correctement été monté
dans « Poste de Travail ».
Nous voyons que Windows a monté notre lecteur en fonction du nom d’ouverture de session.
Nous allons modifier les autorisations de l’utilisateur « aroumegous » dans la console WebDAV de
l’assistant d’IIS7. Nous allons lui mettre les droits seulement en Lecture.
Pour que les droits s’appliquent, il faut redémarrer le serveur IIS.
Nous voyons désormais que nous n’avons plus le droit de modifier un fichier.
V.3 Les autres fonctionnalités de l'interface d'administration Nous allons maintenant voir les autres fonctionnalités d’IIS 7 que nous avons abordé dans cet
article.
Nous allons voir comment configurer la compression HTTP. L’utilisation de la compression HTTP
permet de réduire le trafic sur le réseau dans le but de transférer les fichiers, du serveur au client.
Le temps de téléchargement et les performances sont donc améliorés au niveau de l’utilisateur
final.
Pour configurer la compression HTTP, allez dans l’assistant d’IIS7 et dans le menu « Compression ».
Ensuite, il suffit de cocher si vous voulez autoriser la compression pour le contenu statique et/ou le
contenu dynamique.
On peut également configurer les pages par défaut que va charger le serveur IIS lorsque vous
arrivez sur le site. Par défaut, sur les sites Web, elle se nomme « index.htm » ou sur le serveur IIS7
« iisstart.htm ». On va configurer notre serveur IIS7 pour démarrer sur la page « mapage.htm ».
Pour cela, allez dans le menu « Default Document » dans l’assistant IIS7.
Vous arrivez alors sur toutes les pages reconnus pour être des pages de démarrage.
Pour ajouter la page « mapage.htm », cliquez sur « Ajouter … » dans le menu de droite. Entrez le
nom de votre page Web puis validez.
Maintenant, on va remplacer le nom de la page du serveur IIS7 (« iisstart.htm ») par « mapage.htm
» pour vérifier que le site considère bien « mapage.htm » comme page par défaut.
On lance le navigateur pour vérifier.
Nous avons bien notre site Web qui apparaît et pas d’erreur 404 (page not found).
Commençons par créer une page « 404.htm » que l’on stocke à l’adresse «
http://localhost/Error/404.htm ».
Nous allons maintenant personnaliser nos pages d’erreur. Allez dans le menu « Error Pages » dans
l’assistant IIS7.
Nous pouvons voir toutes les pages d’erreur par défaut.
Double cliquez sur l’erreur 404 pour pouvoir changer la page et mettre la page que l’on a créée.
Validez puis essayez de rentrer une adresse qui n’existe pas dans le navigateur. Notre page devrait
se charger.
Nous allons maintenant en place une redirection. Cela peut être utile lorsqu’on met à jour un site
et que l’on ne peut pas le mettre en ligne ou lorsqu’on ferme un site et qu’on souhaite rediriger les
requêtes vers un autre site. Nous allons rediriger notre site vers www.supinfo.com.
Pour cela, allez dans le menu « HTTP Redirect ».
Maintenant, il faut cocher la case « Redirect Requests to this destination » puis insérer l’adresse du
site dessous. Il est aussi possible de configurer le comportement des redirections en fonction de si
on tape l’adresse exacte, en fonction du code de retour…
Lorsque nous tapons l’adresse http://localhost/ nous arrivons à l’adresse
http://www.supinfo.com/.
Pour finir cette partie, nous pouvons limiter l’accès au site en fonction de l’adresse IP (privée ou
publique). Allez dans le menu « IPv4 Address et Domain Restrictions ».
Ensuite, il suffit d’ajouter des règles d’interdiction.
Nous allons interdire une machine du réseau à accéder au site. Pour connaître son adresse IP,
tapez « IPCONFIG » dans une invite de commande sur la machine que l’on veut interdire.
Son adresse IP est 10.0.0.4. Nous allons donc interdire cette IP.
Ensuite, essayons d’accéder au site IIS7 via la machine 10.0.0.4.
L’accès est refusé.
Conclusion
Nous avons donc pu voir que Microsoft propose ici une version de leur serveur web totalement
remanié qui nous permet d'apprécier le système de module, le déploiement et la maintenance de ce
serveur web, ainsi que les efforts effectuer du côté de Microsoft pour intégrer le PHP et autres
langages dynamiques dans son serveur web.
On pourra également apprécier la compatibilité descendante avec IIS6 et le portail de la
communauté IIS de Microsoft (www.iis.net) qui contient toutes les informations dont vous avez
besoin.