So konfigurieren Sie WebDAV mit Anforderungsfilterung
von Robert McMurray
Einführung
Microsoft hat ein neues WebDAV-Erweiterungsmodul veröffentlicht, das für Internetinformationsdienste 7.0 (IIS 7.0) unter Windows Server® 2008 vollständig umgeschrieben wurde. Dieses neue WebDAV-Erweiterungsmodul enthält viele neue Features, mit denen Webautoren Inhalte besser veröffentlichen können als zuvor, und bietet Webadministratoren mehr Sicherheits- und Konfigurationsoptionen. Microsoft hat ein Update für das WebDAV-Erweiterungsmodul für Windows Server® 2008 veröffentlicht, das geteilte und exklusive Sperren unterstützt, um verlorene Updates aufgrund von Überschreibungen zu verhindern.
IIS 7.0 bietet mehrere großartige neue Sicherheitsfeatures, einschließlich der neuen IIS 7.0-Anforderungsfilterung. Für IIS-Benutzer, die aus früheren Versionen von IIS mit UrlScan vertraut sind, ist das Feature „Anforderungsfilterung“ in IIS 7.0 wie ein integriertes URLScan.
Das neue WebDAV-Modul und die Anforderungsfilterung wurden für die Zusammenarbeit entwickelt, und dieses Dokument führt Sie durch die Konfiguration von WebDAV-bezogenen Anforderungsfilterungseinstellungen zusammen mit WebDAV-Einstellungen, um eine sichere Veröffentlichungsumgebung einzurichten. Wenn Sie die IIS-Manager-Benutzeroberfläche zum Konfigurieren von WebDAV verwenden, werden die Anforderungsfiltereinstellungen automatisch aktualisiert, und Sie müssen die Schritte in diesem Artikel nicht ausführen.
Voraussetzungen
Sie benötigen die folgenden Dinge, um die in diesem Artikel beschriebenen Verfahren durchzuführen:
IIS 7.0 muss auf Ihrem Server installiert sein, und es muss Folgendes konfiguriert werden:
- Die Standardwebsite, die von der IIS 7.0-Installation erstellt wird, muss weiterhin vorhanden sein.
- Das Feature „Anforderungsfilterung“ muss installiert sein.
Das neue WebDAV-Erweiterungsmodul muss installiert sein. Informationen zur Installation des neuen WebDAV-Moduls finden Sie im folgenden Dokument:
Kenntnisse zur Verwendung von AppCmd sind hilfreich. Weitere Informationen zur Verwendung der Anforderungsfilterung finden Sie im folgenden Dokument:
Hinweis
Sie müssen sicherstellen, dass Sie die Schritte in diesem Dokument mit vollständigen Administratorberechtigungen ausführen. Wählen Sie dazu eine dieser beiden Möglichkeiten:
- Melden Sie sich mit dem lokalen „Administrator“-Konto bei Ihrem Computer an.
- Wenn Sie mit einem Konto mit Administratorberechtigungen angemeldet sind, das nicht das lokale „Administrator“-Konto ist, öffnen Sie den IIS-Manager und alle Eingabeaufforderungssitzungen mit der Option „Als Administrator ausführen“.
Die oben genannte Bedingung ist erforderlich, da die Sicherheitskomponente für die Benutzerkontensteuerung (UAC) in Windows Server 2008 den Administratorzugriff auf die Konfigurationseinstellungen von IIS 7.0 verhindert. Weitere Informationen zur UAC finden Sie in der folgenden Dokumentation:
Grundlegende Konzepte für die Anforderungsfilterung
Die Anforderungsfilterung in IIS 7.0 besteht aus Filterungsanforderungen basierend auf den folgenden Parametern:
- Dateierweiterungen
- Ausgeblendete Segmente
- HTTP-Verben
- Anforderungsbeschränkungen
- URL-Sequenzen
Alle diese Anforderungsfilterfunktionen können sich auf Inhalte auswirken, die über WebDAV hoch- oder heruntergeladen werden, aber einige Features können so konfiguriert werden, dass sie in Zusammenarbeit mit WebDAV funktionieren.
In der folgenden Liste wird beschrieben, welche Features für die Arbeit mit WebDAV konfiguriert werden können:
Die folgenden Features wirken sich immer auf WebDAV-Anforderungen aus:
- Anforderungsbeschränkungen
- URL-Sequenzen
Die folgenden Features wirken sich standardmäßig auf WebDAV-Anforderungen aus, können jedoch so konfiguriert werden, dass WebDAV-Anforderungen umgangen werden:
- Dateierweiterungen
- Ausgeblendete Segmente
- HTTP-Verben
Sie können ihren Server beispielsweise so konfigurieren, dass andere als WebDAV-Anforderungen für „.htm“- und „.php“-Dateien zugelassen werden, während der Zugriff auf „.mdb“- und „.config“-Dateien blockiert wird, während WebDAV-Anforderungen weiterhin auf diese blockierten Inhalte zugreifen können.
Hinweis
Für WebDAV-Anforderungen ist eine Authentifizierung erforderlich.
Sie können Ihre Einstellungen für die Anforderungsfilterung mit einer der folgenden Methoden bearbeiten:
- Verwenden der Benutzeroberfläche, die als Teil von Administration Pack für IIS 7.0 bereitgestellt wird
- Verwenden von AppCmd über eine Befehlszeile
- Bearbeiten der Datei „applicationHost.config“
- Verwenden von Microsoft.Web.Administration aus einer .NET-Anwendung oder Windows PowerShell
Die übrigen Informationen in dieser Ablaufbeschreibung zeigen Ihnen, wie Sie AppCmd über eine Befehlszeile verwenden und gleichzeitig, wie die resultierenden Konfigurationseinstellungen in der Datei „applicationHost.config“ aussehen könnten.
Hinweis
In diesem Dokument werden nicht alle Features behandelt, die mithilfe der Anforderungsfilterung konfiguriert werden können. Informationen zum Konfigurieren zusätzlicher Anforderungsfilteroptionen finden Sie im folgenden Thema:
Konfigurieren von Anforderungsfilterung und WebDAV
Filtern von Dateierweiterungen
Bestimmte Dateierweiterungen wie „.config“ und „.asax“ sind durch die standardmäßige Anforderungsfilterungssammlung fileExtensions geschützt. Sie können der Liste der Dateierweiterungen zusätzliche Einträge hinzufügen, um sie für HTTP-Anforderungen zuzulassen oder zu blockieren, und Sie können steuern, ob diese Liste für WebDAV-Anforderungen gilt. In diesem Beispiel verwenden Sie AppCmd zum Blockieren des Zugriffs auf „.txt“-Dateien, auch wenn sie normalerweise aufrufbar sein könnten, und Sie geben an, dass WebDAV-Anforderungen auf alle blockierten Dateierweiterungen zugreifen können.
Öffnen Sie eine Eingabeaufforderung mit vollständigen Administratorrechten und ändern Sie das Verzeichnis in Ihren „InetSrv“-Ordner:
cd "%WinDir%\System32\InetSrv"
Verwenden Sie die folgende Syntax, um die vorhandenen Anforderungsfilterregeln anzuzeigen:
AppCmd list config "Default Web Site/" /section:system.webServer/security/requestFiltering
Blockieren Sie den Zugriff auf „.txt“-Dateien, indem Sie der Sammlung fileExtensions eine bestimmte Dateierweiterung hinzufügen und mithilfe der folgenden Syntax false für das Attribut zulässig angeben:
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+fileExtensions.[fileExtension='.txt',allowed='false'] /commit:apphost
Erlauben Sie WebDAV, auf alle blockierten Dateitypen zuzugreifen, indem Sie das Attribut applyToWebDAV für die Sammlung fileExtensions mithilfe der folgenden Syntax auf false festlegen:
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /fileExtensions.applyToWebDAV:false /commit:apphost
Nach Abschluss der obigen Schritte sollte der resultierende Code im Abschnitt fileExtensions der „applicationHost.config“-Datei dem folgenden Beispiel entsprechen:
<requestFiltering>
<fileExtensions applyToWebDAV="false">
<add fileExtension=".txt" allowed="false" />
</fileExtensions>
</requestFiltering>
Hinweise:
Sie können die oben genannten Schritte verwenden, um den Zugriff auf zusätzliche Dateierweiterungen zu blockieren, indem Sie sie der Sammlung fileExtensions hinzufügen, oder Sie können die Syntax ändern, um bestimmte Dateien zuzulassen, indem Sie true für das Attribut zulässig angeben.
Sie können alle unbekannten Dateierweiterungen blockieren, indem Sie das Attribut allowUnlisted für die Sammlung fileExtensions mithilfe der folgenden Syntax auf false festlegen:
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /fileExtensions.allowUnlisted:false /commit:apphost
Hinweis
Wenn Sie diese Option einrichten, müssen Sie jede Dateierweiterung eigens hinzufügen, bevor sie von Nicht-WebDAV-Anforderungen aufgerufen werden kann.
Mit den obigen Schritten können Sie den Zugriff für WebDAV-Anforderungen blockieren, indem Sie true für das Attribut applyToWebDAV angeben.
Filtern ausgeblendeter Segmente
Bestimmte Dateisegmente wie „web.config“ und „App_code“ werden durch die standardmäßige Anforderungsfilterungssammlung hiddenSegments ausgeblendet. Sie können der Liste der Dateierweiterungen zusätzliche Einträge hinzufügen, um sie für HTTP-Anforderungen auszublenden, und Sie können steuern, ob diese Liste für WebDAV-Anforderungen gilt. In diesem Beispiel verwenden Sie AppCmd, um das Segment „include“ aus HTTP-Anforderungen auszublenden, obwohl es normalerweise sichtbar wäre, und Sie geben an, dass WebDAV-Anforderungen auf alle ausgeblendeten Dateisegmente zugreifen können.
Öffnen Sie eine Eingabeaufforderung mit vollständigen Administratorrechten und ändern Sie das Verzeichnis in Ihren „InetSrv“-Ordner:
cd "%WinDir%\System32\InetSrv"
Blockieren Sie den Zugriff auf das Segment „include“, indem Sie mithilfe der folgenden Syntax einen bestimmten Eintrag zur Sammlung hiddenSegments hinzufügen:
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+hiddenSegments.[segment='include'] /commit:apphost
Erlauben Sie WebDAV, auf alle blockierten Dateitypen zuzugreifen, indem Sie das Attribut applyToWebDAV für die Sammlung hiddenSegments mithilfe der folgenden Syntax auf false festlegen:
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /hiddenSegments.applyToWebDAV:false /commit:apphost
Nach Abschluss der obigen Schritte sollte der resultierende Code im Abschnitt hiddenSegments der „applicationHost.config“-Datei dem folgenden Beispiel entsprechen:
<requestFiltering>
<hiddenSegments applyToWebDAV="false">
<add segment="include" />
</hiddenSegments>
</requestFiltering>
Hinweise:
- Mit den obigen Schritten können Sie zusätzliche Dateisegmente ausblenden, indem Sie sie der Sammlung hiddenSegments hinzufügen.
- Mit den obigen Schritten können Sie den Zugriff für WebDAV-Anforderungen blockieren, indem Sie true für das Attribut applyToWebDAV angeben.
Filtern von HTTP-Verben
Die standardmäßige Sammlung der Verben der Anforderungsfilterung lässt alle nicht aufgelisteten HTTP-Verben zu, obwohl einige Verben möglicherweise nicht bestimmten HTTP-Handlern zugeordnet werden. Sie können angeben, welche HTTP-Verben zugelassen oder blockiert werden sollen, indem Sie dieser Liste Einträge hinzufügen, und Sie können steuern, ob diese Liste für WebDAV-Anforderungen gilt. In diesem Beispiel verwenden Sie AppCmd, um die Verben „DELETE“ und „PUT“ aus HTTP-Anforderungen zu blockieren, und Sie geben an, dass WebDAV-Anforderungen diese Verben verwenden können.
Öffnen Sie eine Eingabeaufforderung mit vollständigen Administratorrechten und ändern Sie das Verzeichnis in Ihren „InetSrv“-Ordner:
cd "%WinDir%\System32\InetSrv"
Blockieren Sie den Zugriff auf das Verb „DELETE“, indem Sie der Sammlung verbs einen bestimmten Eintrag hinzufügen und false für das Attribut zulässig angeben, indem Sie die folgende Syntax verwenden:
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+verbs.[verb='DELETE',allowed='false'] /commit:appHost
Blockieren Sie den Zugriff auf das Verb „PUT“, indem Sie der Sammlung verbs einen weiteren bestimmten Eintrag hinzufügen und false für das Attribut zulässig angeben, indem Sie die folgende Syntax verwenden:
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+verbs.[verb='PUT',allowed='false'] /commit:appHost
Erlauben Sie WebDAV, auf alle HTTP-Verben zuzugreifen, indem Sie das Attribut applyToWebDAV für die Sammlung verbs mithilfe der folgenden Syntax auf false festlegen:
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /verbs.applyToWebDAV:false /commit:appHost
Nach Abschluss der obigen Schritte sollte der resultierende Code im Abschnitt verbs der „applicationHost.config“-Datei dem folgenden Beispiel entsprechen:
<requestFiltering>
<verbs applyToWebDAV="false">
<add verb="DELETE" allowed="false" />
<add verb="PUT" allowed="false" />
</verbs>
</requestFiltering>
Hinweise:
Sie können die oben genannten Schritte verwenden, um zusätzliche HTTP-Verben zu blockieren, indem Sie sie der Sammlung verbs hinzufügen, oder Sie können die Syntax ändern, um bestimmte Dateien zuzulassen, indem Sie true für das Attribut zulässig angeben.
Sie können alle unbekannten HTTP-Verben blockieren, indem Sie das Attribut allowUnlisted für die Sammlung verbs mithilfe der folgenden Syntax auf false festlegen:
AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /verbs.allowUnlisted:false /commit:appHost
Hinweis
Wenn Sie diese Option einrichten, müssen Sie jedes HTTP-Verb eigens hinzufügen, bevor es von Nicht-WebDAV-Anforderungen aufgerufen werden kann.
Mit den obigen Schritten können Sie den Zugriff für WebDAV-Anforderungen blockieren, indem Sie true für das Attribut applyToWebDAV angeben.
Zusammenfassung
Dieses Dokument hat Ihnen die folgenden Konzepte gezeigt:
Weitere Informationen
Weitere Informationen zur Verwendung von WebDAV finden Sie in den folgenden Artikeln: