info@a-coding-project.de

Sicherheit bei WebDAV

Zum jetzigen Zeitpunkt ist die WebDAV-Konfiguration einsatzbereit und funktionsfähig. Allerdings wurde noch nichts für die Sicherheit getan. Dafür gibt es zwei relevante Bereiche: Der Zugriff auf die Daten im WebDAV-Verzeichnis und die Verbindung zwischen Client und WebDAV-Verzeichnis.
Der erste Punkt spielt dann eine Rolle, wenn es sich um private oder/und sensible Daten handelt, die nicht jeder Nutzer mit Zugriff unkontrolliert sehen soll. Es gibt die Möglichkeit, die einzelnen Verzeichnisse oder das WebDAV-Laufwerk selbst mit Login/Passwort zu schützen, so dass nur berechtigte Nutzer die Daten sehen können.
Das HTTP-Protokoll übermittelt standardmäßig die Informationen im Klartext. Das bedeutet, dass ein böswilliger Nutzer die Daten jederzeit abgreifen und einsehen kann. Wenn man zu 100 Prozent auf die Sicherheit achten will, sollten die Daten zwischen Client und WebDAV beim Übertragen verschlüsselt werden.

Zugriffsschutz für die WebDAV-Daten

Es gibt im Web-Bereich zwei verschiedene Authentifizierungs-Verfahren. Das sog. "Digest"-Vefahren funktioniert zwar zuverlässig ist aber aktuell noch experimentell. Außerdem kommen viele WebDAV-Clients nicht damit zurecht.
Als Alternative bleibt noch die bekannte "Basic"-Authentifizierung, die bereits mit der HTTP-Version 1.0 definiert wurde. Das folgende Bild zeigt das Fenster, was erscheint, wenn dieses Verfahren aktiviert wurde.

Fenster der Basic-Authentifizierung
Darstellung: Fenster der Basic-Authentifizierung

Im Webserver selbst ist keine Konfiguration notwendig, da das dafür benötigte Modul bereits aktiviert ist.
In der httpd.conf-Datei müssen in der WebDAV-Sektion folgende Einträge gemacht werden:

AuthType Basic

Damit wird die "Basic"-Authentifizierung für das WebDAV-Verzeichnis aktiviert.

AuthName "WebDav-Laufwerk"

Mit dieser Zeile wird die Bezeichnung für das Authentifizierungsfenster festgelegt.

AuthUserFile D:/Webdav/.htusers

Dieser Eintrag ist wichtig, damit die Angaben im Authentifizierungsfenster überprüft werden können. Die einzelnen Einträge in dieser Datei haben das gleiche Schema: Username:Passwort. Dabei muss beachtet werden, dass bei Windows das Passwort im Klartext eingetragen werden muss und bei Linux in der verschlüsselten Variante (siehe Apache-Einführung hier bei HTMLWorld). Grundsätzlich können die Dateien in einem einfachen Texteditor angelegt werden. Speziell bei Windows muss beachtet werden, dass die Datei keine weitere Endung haben darf, so dass sie evtl. noch umbenannt werden muss. Allgemein gilt bei der .htusers-Datei, dass immer der absolute Pfad mit angegeben werden muss. Sonst wird zwar das Authentifizierungsfenster angezeigt, jedoch würde ein Login nie funktionieren.

Hinweis: Bei jeder Apache-Version wird das Programm htpasswd mitgeliefert, mit dem man über die Kommandozeile die .htusers-Datei "füttern" kann. Bei der Windows-Version vom Apache ist das Programm im Ordner "bin" im Server-Verzeichnis hinterlegt. Mit dem Befehl "htpasswd -h" kann man sich alle möglichen Optionen anzeigen lassen.

Require valid-user

Mit diesem Eintrag wird festgelegt, dass nur die definierten User auf das WebDAV-Laufwerk zugreifen können. Eine gleichwertige Alternative zu dieser Zeile ist der Eintrag "Require user test1 test2", in dem alle User einzeln aufgelistet sind.

Es gibt zusätzlich die Möglichkeit, einzelne User in Gruppen aufzuteilen. Für die einzelnen Gruppen kann es organisatorische aber auch technische Ansätze geben. Zum Beispiel kann man Nutzer, die aus einer bestimmten Abteilung in der Firma kommen, zusammenfassen oder User, die mit bestimmten Rechten auf das WebDAV-Laufwerk zugreifen dürfen.
Wenn man diese Variante nutzen möchte muss im WebDAV-Verzeichnis die Datei .htgroups angelegt werden. Die Einträge werden nach folgenden Prinzip angelegt:
Gruppenname: user1 user2 user3 ...
Der folgende Ausschnitt aus der httpd.conf-Datei zeigt, welche Änderungen bzw. Ergänzungen notwendig sind, damit die einzelnen Nutzer anhand der Gruppenzugehörigkeit ermittelt werden können:

AuthType Basic
AuthName "WebDav-Laufwerk"
AuthUserFile D:/Webdav/.htusers
AuthGroupFile D:/Webdav/.htgroups
#Require user test1
Require group testgruppe

Die "AuthUserFile"-Zeile muss bleiben, da dort die Passwörter der einzelnen Nutzer hinterlegt sind. Weiterhin muss die "AuthGroupFile"-Zeile sowie der "Require group"-Eintrag hinzugefügt werden.

Zusätzlicher Schutz per SSL

Sofern private oder sicherheitsrelevante Dateien übertragen werden sollen empfiehlt sich als zusätzlicher Schutz die Verwendung von SSL. Aktivieren Sie hierzu zunächst SSL bei Ihrem Apache Webserver. Anschließend muss in der dazugehörigen <directory>-Sektion noch der folgende Eintrag gemacht werden:

SSLRequireSSL

Jetzt erscheint bei der Eingabe von "http://pfad/zu/webdav/laufwerk" eine Fehlerseite mit dem HTTP-Code 403 (You don't have permission). Es muss zwingend "https://pfad/zu/webdav/laufwerk" eingegeben werden.

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Auch interessant