- Artikel zu WebDAV
- Artikel von heise.de zum Thema.
WebDAV Freigabe mit Apache 2 einrichten (inkl. SSL)
Eins vorweg: Diese Anleitung richtet sich klar an fortgeschrittenere Benutzer mit Zugriff auf einen Linux Webserver!
WebDAV ist eine Erweiterung des Hypertext Tranfer Protokolls (HTTP). Im Gegensatz zu HTTP ermöglicht es jedoch auch Dateien auf dem Server zu manipulieren - also z.B. hochzuladen. WebDAV gibt es schon eine ganze Weile - und wirklich toll ist es auch gar nicht - denn meistens kann man das Gleiche mit FTP oder SSH besser bzw. effizienter erledigen.
WebDAV benötigt neben dem (tendenziell in Firewalls kaum blockierten) HTTP Port 80 aber keinen extra Port (wie SSH oder FTP) und lässt sowohl eine verschlüsselte Authentifizierung als auch Datenübertragung zu (im Gegensatz zu FTP). Ideal also für den Abgleich von Lesezeichen (Bookmarks), Adressebüchern oder Kalendereinträgen.
Folgendes wurde unter Debian Etch durchgeführt. Die Konfiguration des Apache Webservers sollte aber eigentlich 1:1 übertragbar sein.
Es wird empfohlen die WebDAV Freigabe (also das Verzeichnis in dem die Dateien liegen) außerhalb des regulären Webroots (bei Debian /var/www) anzulegen. Ich habe mich dementsprechend schlicht für /var/webdav entscheiden. Der Apache User (bei Debian www-data) muss natürlich Schreibzugriff auf dieses Verzeichnis haben.
mkdir /var/webdav
chown www-data.www-data /etc/webdav && chmod 700 /etc/webdav
Nun sucht man sich einen virtuellen Hosts in der Apache Konfiguration heraus über den die Verbindung laufen soll (natürlich geht das auch über den Standard Server). Das Ganze könnte dann z.B. so aussehen (erstmal ohne SSL):
<VirtualHost *:80>
[...]
Alias /webdav /var/webdav
<Location /webdav>
DAV On
AuthType Digest
AuthName "meinLoginBereich"
AuthUserFile /etc/apache2/htpasswd/meinLogin
Require valid-user
ForceType text/plain
Options Indexes
#SSLRequireSSL
</Location>
[...]
</VirtualHost>
Zur Authentifizierung wird mod_digest verwendet, da hier die Logindaten verschlüsselt übertragen werden. Der Name "meinlogin" muss auch bei der Erzeugung der Kennwortdatei angegeben werden (und zwar genau so!). Die Kennwortdatei liegt hier übrigens ebenfalls außerhalb des Webroots in /etc/apache2/htpasswd/.
Wer SSL verwenden möchte - was durchaus zu empfehlen ist - der kann zusätzlich noch die auskommentierte Anweisung einfügen. Damit wird eine Verbindung nur via SSL zugelassen.
Falls noch nicht geschehen, muss das Apache WebDAV Modul sowie das Digest Modul hinzugefügt werden. Danach wird die Kennwortdatei erzeugt:
htdigest -c /etc/apache2/htpasswd/meinLogin meinLoginBereich meinLoginName
a2enmod auth_digest dav dav_fs
apache2ctl graceful
Das war es eigentlich schon! Ruft man nun z.B. www.meinedomain.de/webdav (das Alias kann man natürlich frei wählen) auf, so sollte eine entsprechende Kennworteingabeaufforderung erscheinen und einen nach korrekter Eingabe passieren lassen.
