Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Auteur : Robert McMurray
Introduction
Microsoft a publié un nouveau module d’extension WebDAV entièrement réécrit pour Internet Information Services 7.0 (IIS 7.0) sur Windows Server® 2008. Ce nouveau module d’extension WebDAV a incorporé de nombreuses nouvelles fonctionnalités qui permettent aux auteurs web de publier du contenu plus facilement qu’auparavant, et il offre aux administrateurs web davantage d’options de sécurité et de configuration. Microsoft a publié une mise à jour du module d’extension WebDAV pour Windows Server® 2008 qui fournit la prise en charge des verrous partagés et exclusifs afin d’empêcher les mises à jour perdues en raison de remplacements.
IIS 7.0 fournit plusieurs excellentes fonctionnalités de sécurité, notamment le nouveau filtrage des demandes IIS 7.0. Pour les utilisateurs IIS familiarisés avec UrlScan à partir des versions précédentes d’IIS, la fonctionnalité de filtrage des demandes dans IIS 7.0 équivaut à avoir l’URLScan intégré.
Le nouveau module WebDAV et le filtrage des demandes ont été conçus pour fonctionner ensemble, et ce document vous guide tout au long de la configuration des paramètres de filtrage des demandes liés à WebDAV avec les paramètres WebDAV, afin de configurer un environnement de publication sécurisé. Notez que si vous utilisez l’interface utilisateur du Gestionnaire IIS pour configurer WebDAV, puis les paramètres de filtrage des demandes sont automatiquement mis à jour et vous n’avez pas besoin de suivre les étapes décrites dans cet article.
Prérequis
Les éléments suivants sont nécessaires pour effectuer les procédures décrites dans cet article :
IIS 7.0 doit être installé sur votre serveur, et les éléments suivants doivent être configurés :
- Le site web par défaut créé par l’installation IIS 7.0 doit toujours exister.
- La fonctionnalité de filtrage des demandes doit être installée.
Le nouveau module d’extension WebDAV doit être installé. Pour plus d’informations sur l’installation du nouveau module WebDAV, consultez le document suivant :
Il est utile de connaître l’utilisation d’AppCmd. Pour plus d’informations sur l’utilisation du filtrage des demandes, consultez le document suivant :
Remarque
Vous devez vous assurer que vous suivez les étapes décrites dans ce document à l’aide des autorisations d’administration complètes. Pour ce faire, utilisez l'une des deux méthodes suivantes :
- Connectez-vous à votre ordinateur à l’aide du compte « administrateur » local.
- Si vous êtes connecté à l’aide d’un compte disposant d’autorisations d’administration qui n’est pas le compte « administrateur » local, ouvrez le gestionnaire IIS et toutes les sessions d’invite de commandes à l’aide de l’option « Exécuter en tant qu’administrateur ».
La condition ci-dessus est requise, car le composant de sécurité Contrôle de compte d’utilisateur (UAC) dans Windows Server 2008 empêche l’accès administratif aux paramètres de configuration d’IIS 7.0. Pour plus d'informations sur l'UAC, consultez la documentation suivante :
Concepts de filtrage des demandes de base
Le filtrage des demandes dans IIS 7.0 consiste à filtrer les demandes en fonction des paramètres suivants :
- Extensions de fichier
- Segments masqués
- Verbes HTTP
- Limites de la demande
- Séquences URL
Toutes ces fonctionnalités de filtrage des demandes peuvent avoir un impact sur le contenu chargé ou téléchargé via WebDAV, mais certaines fonctionnalités peuvent être configurées pour fonctionner en collaboration avec WebDAV.
La liste suivante décrit les fonctionnalités qui peuvent être configurées pour fonctionner avec WebDAV :
Les fonctionnalités suivantes affectent toujours les demandes WebDAV :
- Limites de la demande
- Séquences URL
Les fonctionnalités suivantes affectent les demandes WebDAV par défaut, mais elles peuvent être configurées pour contourner les requêtes WebDAV :
- Extensions de fichier
- Segments masqués
- Verbes HTTP
Par exemple, vous pouvez configurer votre serveur pour autoriser les demandes non-WebDAV pour les fichiers « .htm » et « .php » tout en bloquant l’accès aux fichiers « .mdb » et . « config » et tout en autorisant les demandes WebDAV à accéder à ce contenu bloqué.
Remarque
Les autres demandes WebDAV nécessitent une authentification.
Vous pouvez modifier vos paramètres de filtrage des demandes à l’aide de l’une des méthodes suivantes :
- Utilisation de l’interface utilisateur qui est fournie dans le cadre du Pack d'administration IIS 7.0
- Utilisation d’AppCmd à partir d’une ligne de commande
- Modification de votre fichier applicationHost.config
- Utilisation de Microsoft.Web. Administration à partir d’une application .NET ou de Windows PowerShell
Les informations restantes de cette procédure pas à pas vous montrent comment utiliser AppCmd à partir d’une ligne de commande, tout en montrant à quoi pourraient ressembler les paramètres de configuration résultants dans votre fichier applicationHost.config.
Remarque
Ce document ne couvre pas toutes les fonctionnalités qui peuvent être configurées à l’aide du filtrage des demandes. Pour plus d’informations sur la configuration d’options de filtrage des demandes supplémentaires, consultez la rubrique suivante :
Configuration du filtrage des demandes et webDAV
Filtrage des extensions de fichier
Certaines extensions de fichier telles que « .config » et « .asax » sont protégées par la collection fileExtensions de filtrage des demandes par défaut. Vous pouvez ajouter des entrées supplémentaires à la liste des extensions de fichier, afin de les autoriser ou de les bloquer pour les demandes HTTP, et vous pouvez contrôler si cette liste s’applique aux demandes WebDAV. Dans cet exemple, vous empêcherez l’accès aux fichiers « .txt » du bloc AppCmd à accéder, même s’ils sont normalement accessibles, et vous spécifiez que les demandes WebDAV pourront accéder à toutes les extensions de fichier bloquées.
Ouvrez une invite de commandes avec des privilèges administratifs complets et changez de répertoire pour accéder à votre dossier InetSrv :
cd "%WinDir%\System32\InetSrv"Utilisez la syntaxe suivante pour afficher les règles de filtrage des demandes existantes :
AppCmd list config "Default Web Site/" /section:system.webServer/security/requestFilteringBloquez l’accès aux fichiers « .txt » en ajoutant une extension de fichier spécifique à la collection fileExtensions et en spécifiant false pour l’attribut autorisé à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+fileExtensions.[fileExtension='.txt',allowed='false'] /commit:apphostAutorisez WebDAV à accéder à tous les types de fichiers bloqués en définissant l’attribut applyToWebDAV de la collection fileExtensions sur false à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /fileExtensions.applyToWebDAV:false /commit:apphost
Une fois que vous avez effectué les étapes ci-dessus, le code obtenu dans la section fileExtensions de votre fichier applicationHost.config doit ressembler à l’exemple suivant :
<requestFiltering>
<fileExtensions applyToWebDAV="false">
<add fileExtension=".txt" allowed="false" />
</fileExtensions>
</requestFiltering>
Remarques :
Vous pouvez réaliser les opérations ci-dessus pour bloquer l’accès à des extensions de fichiers supplémentaires en les ajoutant à la collection fileExtensions ou vous pouvez modifier la syntaxe pour autoriser des fichiers spécifiques en spécifiant true pour l’attribut autorisé.
Vous pouvez bloquer toutes les extensions de fichier inconnues en définissant l’attribut allowUnlisted pour la collection fileExtensions sur false à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /fileExtensions.allowUnlisted:false /commit:apphostRemarque
Configurer cette option nécessite que vous ajoutiez spécifiquement chaque extension de fichier avant qu’il soit possible d’y accéder par des demandes non WebDAV.
Vous pouvez utiliser les étapes ci-dessus pour bloquer l’accès aux demandes WebDAV en spécifiant true pour l’attribut applyToWebDAV.
Filtrage des segments masqués
Certains segments de fichiers tels que « web.config » et « App_code » sont masqués par la collection hiddenSegments de filtrage des demandes par défaut. Vous pouvez ajouter des entrées supplémentaires à la liste des segments de fichier, afin de les masquer pour les requêtes HTTP, et vous pouvez contrôler si cette liste s’applique aux demandes WebDAV. Dans cet exemple, vous utiliserez AppCmd pour masquer le segment « inclure » des requêtes HTTP, même s’il était normalement visible, et vous spécifierez que les demandes WebDAV pourront accéder à tous les segments de fichiers masqués.
Ouvrez une invite de commandes avec des privilèges administratifs complets et changez de répertoire pour accéder à votre dossier InetSrv :
cd "%WinDir%\System32\InetSrv"Bloquez l’accès au segment « inclure » en ajoutant une entrée spécifique à la collection hiddenSegments à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+hiddenSegments.[segment='include'] /commit:apphostAutorisez WebDAV à accéder à tous les types de fichiers bloqués en définissant l’attribut applyToWebDAV de la collection hiddenSegments sur false à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /hiddenSegments.applyToWebDAV:false /commit:apphost
Une fois que vous avez effectué les étapes ci-dessus, le code obtenu dans la section hiddenSegments de votre fichier applicationHost.config doit ressembler à l’exemple suivant :
<requestFiltering>
<hiddenSegments applyToWebDAV="false">
<add segment="include" />
</hiddenSegments>
</requestFiltering>
Remarques :
- Vous pouvez réaliser les opérations ci-dessus pour masquer des segments de fichier supplémentaires en les ajoutant à la collection hiddenSegments.
- Vous pouvez utiliser les étapes ci-dessus pour bloquer l’accès aux demandes WebDAV en spécifiant true pour l’attribut applyToWebDAV.
Filtrage des verbes HTTP
La collection verbes de filtrage des demandes par défaut autorise tous les verbes HTTP non répertoriés, même si certains verbes peuvent ne pas être mappés à des gestionnaires HTTP spécifiques. Vous pouvez spécifier quels verbes HTTP devraient être autorisés ou bloqués en ajoutant des entrées à cette liste, et vous pouvez contrôler si cette liste s’applique aux demandes WebDAV. Dans cet exemple, vous utiliserez AppCmd pour bloquer les verbes « DELETE » et « PUT » des requêtes HTTP, et vous spécifierez que les demandes WebDAV pourront utiliser ces verbes.
Ouvrez une invite de commandes avec des privilèges administratifs complets et changez de répertoire pour accéder à votre dossier InetSrv :
cd "%WinDir%\System32\InetSrv"Bloquez l’accès au verbe « DELETE » en ajoutant une entrée spécifique à la collection verbes et en spécifiant false pour l’attribut autorisé à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+verbs.[verb='DELETE',allowed='false'] /commit:appHostBloquez l’accès au verbe « PUT » en ajoutant une autre entrée spécifique à la collection verbes et en spécifiant false pour l’attribut autorisé à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+verbs.[verb='PUT',allowed='false'] /commit:appHostAutorisez WebDAV à accéder à tous les verbes HTTP en définissant l’attribut applyToWebDAV de la collection verbes sur false à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /verbs.applyToWebDAV:false /commit:appHost
Une fois que vous avez effectué les étapes ci-dessus, le code obtenu dans la section verbes de votre fichier applicationHost.config doit ressembler à l’exemple suivant :
<requestFiltering>
<verbs applyToWebDAV="false">
<add verb="DELETE" allowed="false" />
<add verb="PUT" allowed="false" />
</verbs>
</requestFiltering>
Remarques :
Vous pouvez réaliser les opérations ci-dessus pour bloquer les verbes HTTP supplémentaires en les ajoutant à la collection verbes ou vous pouvez modifier la syntaxe pour autoriser des verbes spécifiques en spécifiant true pour l’attribut autorisé.
Vous pouvez bloquer tous les verbes HTTP inconnus en définissant l’attribut allowUnlisted pour la collection verbes sur false à l’aide de la syntaxe suivante :
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /verbs.allowUnlisted:false /commit:appHostRemarque
Configurer cette option nécessite que vous ajoutiez spécifiquement chaque verbe HTTP avant qu’il soit possible d’y accéder par des demandes non WebDAV.
Vous pouvez utiliser les étapes ci-dessus pour bloquer l’accès aux demandes WebDAV en spécifiant true pour l’attribut applyToWebDAV.
Résumé
Ce document vous a montré comment effectuer les concepts suivants :
Informations supplémentaires
Pour plus d’informations sur l’utilisation de WebDAV, consultez les articles suivants :