Apache WebDAV

Die Site webShare.conf ist eine exemplarische Anwendung, bei der ein Ordner aus dem Dateisystem via WebDAV (wiki) exportiert wird. Anwendungsbeispiele finden sich im Abschnitt WebDAV-Clients.

Hinweis

WebDAV (wiki) und CalDAV (wiki) dürfen an dieser Stelle nicht verwechselt werden.Hier wird (nur) WebDAV eingerichtet!

Die Konfiguration legt den Ordner /share/WEBSHARE an und stellt ihn über https://localhost/WEBSHARE ins Netz. Für die Freigabe wird das Apache mod_dav Modul und das Apache mod_dav_fs Modul aktiviert.

sudo -H mkdir -p /share/WEBSHARE
sudo -H chown -R www-data:www-data /share/WEBSHARE
sudo -H a2enmod dav dav_fs
sudo -H a2ensite webShare
sudo -H service apache2 reload

Site webShare

Die Site webShare.conf definiert die Directory Resource /share/WEBSHARE und setzt den Alias /WEBSHARE auf diese Resource (vergleiche Alias Direktive).

Alias /WEBSHARE  /share/WEBSHARE

<Directory /share/WEBSHARE>

    DAV on
    SSLRequireSSL

    Require valid-user

    AuthType Basic
    AuthBasicProvider external
    AuthName "webShare"
    AuthExternal pwauth
...

Der Zugriff soll nur angemeldeten Benutzner möglich sein (s.a. Autorisierung zum Zugriff auf Resourcen), was über die Apache Require Direktive Require valid-user gesetzt wird. Zur Benutzeridentifizierung (Anmeldung) wird das Apache mod_authnz_external Modul verwendet, dass mit der /etc/apache2/conf-available/authnz_external.conf aktiviert wurde (näheres zum Anmeldevorgang siehe dort).

Der Zugriff auf den WEBSHARE Ordner:

...
    Order deny,allow
    Deny from all
    Allow from fd00::/8 192.168.0.0/16 fe80::/10 127.0.0.0/8 ::1
    AllowOverride None
...

Mit der oben gezeigten Konfiguration wird das DAV Protokoll aktiviert, es wird nur verschlüsselt kommuniziert, es ist ein Login erforderlich und es sind nur Zugriffe aus den Link-Local Netzen gestattet. Navigiert man die Resource mit dem WEB-Browser an, dann soll ein Autoindex angezeigt werden. In dem Kontext der Resource wird deshalb noch der Autoindex eingeschaltet, der die Header/Readme Datei aus dem chrome-Ordner verwenden soll (vergleiche Serverside Includes):

...
     Options +Indexes +FollowSymLinks

     HeaderName /chrome/header.shtml
     ReadmeName /chrome/footer.shtml
...

Da dieser Bereich eher private ist, soll er auch nicht von einem Robot gescannt werden (vergleiche HTTP-Headers)

...
    <IfModule mod_headers.c>
        Header always set X-Robots-Tag "none"
    </IfModule>
</Directory>

Zu tun

Die Refresh-Rate sollte noch in den HTTP-Headern eingestellt werden können. Mir scheint, das manche Clients diese Refresh-Zeiten verwenden. Z.B. Outlook scheint seine Refreshrate zur Veröffentlichung eines Kalenders danach einzustellen (die Wiederholrate zum Upload/Update des Kalenders auf den Share .. so ganz sicher bin ich mir da aber auch nicht).

Hinweise

Ein webDAV Server sollte besser nur im eigenem Subnet betrieben werden und nicht ohne weitere Sicherheitsmaßnahmen ins Internet gestellt werden. Eine zusätzliche Sicherheitsmaßnahme kann z.B. das Einrichten des Apache WAF: ModSecurity Moduls sein. Wobei auch angemerkt werden muss, dass durch DAV Anwendungen die False Positive einer solchen WAF unter umständen zunehmen können.

Eine Deinstallation der webShare-Site kann mit folgenden Kommandos erreicht werden:

sudo -H a2dissite webShare
sudo -H a2dismod dav dav_fs
sudo -H service apache2 reload