HOWTO webDAV mit Zugangskontrolle unter Debain Sarge

In Zusammenarbeit mit dem PPCNUX Team entstand eine unvollständige Anleitung wie man ein webDAV mit Zugangskontrolle mit Apache2 unter Debian Sarge installiert. Die offizielle Anleitung findet man natürlich bei Apache.org. Unter anderem die Anleitung zu Authentication, Authorization and Access Control, die Informationen zu mod_auth und mod_dav.
Diese Zusammenstellung wurde von Ralf Saalmüller erledigt und wird unter der Creative Commens Lizenz gestellt. Creative Commons License

Kontolliertes webDAV unter Debian Sarge und Apache2


Inhaltsangabe:

Vorbemerkung

Wo stehen die Dateien?

Erstellen des dav Verzeichnisses.

Erstellen der htpasswd Datei und eines Nutzers.

Erstellen einer Location.

Aktivieren der dav-Module.

Neustarten des Servers.

Anmelden am Server.


Vorbemerkung

webDAV ist einfach, schnell und cool. Und eben nicht nur als Datei-Server verwendbar. iCal oder Sunbird speichern oder veröffentlichen Daten per webDAV. Ein Grund mehr für webDAV. Nur werden Sie wohl kaum einen Rechner ins Internet ohne Zugangs-Kontrolle stellen. Also muss eine her.

Entgegen meinen DAU Halbwissen bedeuten .htaccess Dateien eben keine Zugangskontrolle, wie man eventuell aus dem Namen ableiten könnte. .htaccess sind Erweiterungen der apache.conf und somit eben auch für eine Zugangskontolle verwendbar. Es geht aber auch anders.

Was muss erledigt werden?

  • Erstellen des dav Verzeichnisses.
  • Erstellen der htpasswd Datei und eines Nutzers.
  • Erstellen einer Location.
  • Aktivieren der dav-Module.
  • Neustarten des Servers.
  • Anmelden am Server.

Zurück zum Anfang


Wo stehen die Dateien?

Installiert man apache2 unter Debian Sarge werden viele Konfigurationen bereits erledigt. Debain legt alle Konfigurations-Daten in /etc ab. So sind auch die Dateien für apache2 gesammelt unter /etc/apache2 installiert. Die Konfiguration ist modular, wir werden lediglich Links oder Dateien hinzufügen, eine Änderung an apache.conf oder http.conf ist nicht nötig!

Wegen meines DAU Halbwissens, also weil ich es nicht besser weiss, wird die htpasswd der Übersichtlichkeit in /etc/apache2 abgelegt.

Die Location muss unter Debian in /etc/apache2/conf.d konfiguriert werden.

Debian Sarge installiert die Dateien für den Web-Server (apache2) unter /var/www, dort sind auf jeden Fall apache-default zu finden. Wir werden hier den Datenordner verstauen, womit auch gleich via Browser die Dateien erreichbar sind.

Zurück zum Anfang


Erstellen des dav Verzeichnises.

Die Dateien müssen ja nunmal irgend wo gespeichert werden. Ob Sie das in ein /home Verzeichnis oder unter /opt oder /usr/local machen ist letztendlich egal. Ich hab es unter /var/www erledigt, womit das Verzeichnis auch mit einem Browser (Firefox) erreichbar ist und Datein dort sogar gezogen werden können, als wäre es ein ftp-Server. Zumindest solange keine index.html drin liegt.

Pythagoras:/# cd /var/www
Pythagoras:/var/www# mkdir dav
Pythagoras:/var/www# chown www-data dav
Pythagoras:/var/www# chgrp www-data dav
Pythagoras:/var/www# ls -l
drwxr-xr-x  2 root     root     4096 May 13 10:30 apache2-default/
drwxrwxr-x  3 www-data www-data 4096 May 19 21:50 dav/
Pythagoras:/var/www#

Erledigt. Bemerkung: Unter Debian wird für den Web-Server immer der User und die Gruppe www-data angelegt.

Zurück zum Anfang


Erstellen der htpasswd Datei und eines Nutzers.

Die Passwort-Dateien für die Zugriffs-Kontrolle dürfen unter keinen Umständen innerhalb des Daten-Verzeichnisses liegen, ansonsten könnte man diese von aussen lesen und dan nutzt die Beschränkung recht wenig. Also ein neuer Ort wird gesucht. Ich habe mich für /etc/apache2 entschieden, vielleicht möchten Sie noch einen Unterordner anlegen, ich schreib's direkt rein. Der Übersichtlichkeit halber nehme ich eine Passwort-Datei speziell für webDAV, für andere Unterverzeichnisse können weitere Passwort-Dateien angelegt werden. Geschmackssache. Meine Wahl auf den Dateinamen fiel auf htp_dav. Nennen Sie die Datei gefälligst anders, das ist meine Idee, nicht klauen. Sie müssen dann unten den Namen entsprechend ändern.

Pythagoras:/# cd /etc/apache2/
Pythagoras:/etc/apache2# htpasswd -c htp_dav dav
New password:
Re-type new password:
Adding password for user dav
Pythagoras:/etc/apache2# htpasswd htp_dav guest
New password:
Re-type new password:
Adding password for user guest
Pythagoras:/etc/apache2# cat htp_dav
dav:3w05KkRqinenc
guest:WE9Z18T0so4k.
Pythagoras:/etc/apache2#

Bemerkung: htpasswd -c legt die Datei an, ohne -c wird hinzugefügt. Somit sind 2 User angelegt. Die Passwörter vergeben Sie. Wieder gilt: Nicht klauen, Namen selbst ausdenken!

Zurück zum Anfang


Erstellen einer Location.

Hiermit teilen wir apache2 mit, das er ein bestimmtes Verzeichnis gefälligst auf Anfrage ins Netz zu beamen hat. Die modulare Konfiguration macht es leicht, wir installieren das Verzeihnis mittels eines 8-Zeilers. Als Dateinamen verwende ich dav.conf womit meine lineare, einfältige Denkweise unbestreitbar ist.

Pythagoras:/etc/apache2# cd conf.d/
Pythagoras:/etc/apache2/conf.d# vi dav.conf
Sie müssen natürlich nicht den besten Editor der Welt neben emacs nehmen, hauptsache Sie bekommen die folgenden 8 Zeilen irgendwie gespeichert.
<Location /dav>
        DAV On
        AllowOverride All
        AuthType Basic
        AuthName "dav password required"
        AuthUserFile /etc/apache2/htp_dav
        Require user dav guest
</Location>


Bemerkung: AuthName Wird vom webDAV Client angezeigt, mehr nicht. Die zugelassenen Benutzer wären hier dav und guest. Ja ich Versuche Sie zu verwirren, einen Nutzer "dav" für webDAV war vielleicht doch eine blöde Idee für's Beispiel. Mit DAV on haben wir webDAV für die Location /dav, also das dav-Verzeichnis unter /var/www aktiviert. Einfach, gell.

AuthUserFile /etc/apache2/htp_dav zeigt auf die gerade eingerichtete htpasswd Datei. Die haben Sie natürlich anders genannt. Also müssen Sie den Teil htp_dav entsprechend Ihrer Wahl ändern. Hoffentlich verlange ich da nicht zuviel, ... Nein, SIE schaffen das.

Zurück zum Anfang


Aktivieren der dav-Module.

Bei Debian Sarge müssen wir für webDAV zwei Module und eine Config-Datei aktivieren, die Dateien liegen bereits fertig konfiguriert vor. Die Aktivierung ist einfach ein Link ln -s vom Unterverzeichnis mods-available/ in mods-enabled/. Die Dateien lauten dav.load, dav_fs.conf und dav_fs.load.

Pythagoras:/etc/apache2/conf.d# cd ../mods-enabled/
Pythagoras:/etc/apache2/mods-enabled# ln -s /etc/apache2/mods-available/dav.load
Pythagoras:/etc/apache2/mods-enabled# ln -s /etc/apache2/mods-available/dav_fs.load 
Pythagoras:/etc/apache2/mods-enabled# ln -s /etc/apache2/mods-available/dav_fs.conf 
Pythagoras:/etc/apache2/mods-enabled# ls -l
lrwxr-xr-x  1 root root 36 May 19 23:56 dav.load -> /etc/apache2/mods-available/dav.load
lrwxr-xr-x  1 root root 39 May 19 23:56 dav_fs.conf -> /etc/apache2/mods-available/dav_fs.conf
lrwxr-xr-x  1 root root 39 May 19 23:56 dav_fs.load -> /etc/apache2/mods-available/dav_fs.load
Pythagoras:/etc/apache2/mods-enabled#


Zurück zum Anfang


Neustarten des Servers.

Ach jo, schon fertig. Einfach gell. Schon mal ausprobiert? Geht nicht! Es ist zwar alles da, allein der apache2 Server weiss noch nichts davon, da er die geänderten Konfigurations-Dateien noch gar nicht eingelesen hat. Dafür benötigen wir, nein, keinen Reboot, eine Zeile auf der Konsole:

Pythagoras:/# apache2ctl graceful
Pythagoras:/#


Zurück zum Anfang


Anmelden am Servers.

Mit MacOS X melden sie einen webDAV Server mittel Mit Server verbinden ... an, das Protokoll ist http:// dann der Server und die Freigabe. Und hier lauert eine Falle. Entgegen dem Browser erweitert die Server-Verbindung den Server nicht um die Domain. Das heisst der Server http://Pythagoras/dav wird schlicht und einfach nicht gefunden!. Mit der IP geht es oder mit einem qualifizierten Namen, zum Beispiel http://Pythagoras.local/dav. Dann erscheint die Nutzer und Passowort-Abfrage und dann der Server auf dem Schreibtisch.

Noch eine Falle in die ich nicht ausgelassen hatte. Bei der Location hatte ich Require User dav guest geschrieben. Require User ist kein gültiges Tag, womit auch kein User dav gefunden werden kann. Es muss natürlich heissen Require user dav guest, kleine buchstaben.

Viel Spass mit webDAV wünscht Ihnen Ralf & das PPCNUX Team.

Zurück zum Anfang