WebDAV. Dienst der immer gebraucht wird. Installation und Konfiguration
WebDAV ist ein Netzwerkprotokoll zur Bereitstellung von Dateien über das Internet.
Web-based Distributed Authoring and Versioning
WebDAV können wir für verschieden zwecke nutzen. Mit WebdDAV ist es möglich ein Internetspeicherort wie eine Festplatte in System einzubinden.
Im diesem Artikel installieren und konfigurieren wir diesen Dienst auf einem Linux Server (Debian 12).
In unserem Fall und in diesem Artikel wird die Installation und Konfiguration des WebDAV Dienstes mit selbst erstellten Zertifikaten beschrieben.
In den letzten Jahren hat sich rausgestellt, dass immer mehr Mitarbeiter außerhalb der Fima tagelang, manchmal sogar monatelang arbeiten. Die Software auf den Clients solle man immer aktuell halten. In mittleren und größeren Firmen wird die Installation der Applikationen per Softwareverteilung durchgeführt.
In unserem Fall kommt die Softwareverteilung OPSI der Firma UIB in Einsatz.
OPSI braucht Zugriff auf das OPSI-Repository und das wird mit dem https und SMB/CIFS Protokoll realisiert. Statt SMB/CIFS können wir auch WebDAV nutzen vor allem, wenn sich die Clients in öffentlichen Raum oder im Homeoffice befinden.
Bevor wir WebDAV installieren und Konfigurieren müssen wir noch andere Aufgaben machen.
- auf dem gewünschtem Server wird Apache2 Dienst installiert und konfiguriert
- Server Zertifikate werden erstellt
- Client Zertifikat wird erstellt
- Client Zertifikat wird auf dem Client Gerät importiert
- Ein Apache Virtual Host wird entsprechend konfiguriert.
Alle diese Aufgaben wurden in den Artikeln Virtual Host, SSL-Zertifikate und Client Zertifikate beschrieben.
Außerdem müssen wir noch den gewünschten Port an der Firewall öffnen und eine NAT zu dem Apache (WebDAV) an der Firewall setzen
Dabei handelt sich um die Domain mydomain1.firma.lan bzw. mydomain1
1. Die Virtual Hosts sieht folgendermaßen
ServerAdmin webmaster@mydomain1.firma.lan
DocumentRoot /var/www/html/mydomain1
ServerName mydomain1
ServerAlias mydomain1.firma.lan
SSLEngine on
SSLCertificateFile /etc/apache2/cert/mydomain1.firma.lan.crt
SSLCertificateKeyFile /etc/apache2/cert/mydomain1.firma.lan.key
SSLCACertificatePath "/etc/ssl/certs"
SSLVerifyClient require
SSLVerifyDepth 5
ErrorLog /var/log/apache2/mydomain1.firma.lan_error_log
CustomLog /var/log/apache2/mydomain1.firma.lan_access_log common
</VirtualHost>
2. Die Web-Seite https://mydomain1.firma.lan kann man nur aufrufen, wenn auf dem Client-Gerät
das Client-Zertifikat installiert ist.
WebDAV wird auf dem Apache-Serverr installiert.
Die dav Module werden aktiviert und danach wird Apache neu gestartet
# a2enmod dav_fs
# systemctl restart apache2
Den Speicherort für WebDAV definieren wir außerhalb unsere Apache Startordner.
Wir erstellen z.B. den Ordner /var/www/web1/webdavdata
# mkdir /var/www/web1/webdavdata
# chown -R www-data /var/www/web1
ServerAdmin webmaster@mydomain1.firma.lan
DocumentRoot /var/www/html/mydomain1
ServerName mydomain1
ServerAlias mydomain1.firma.lan
SSLEngine on
SSLCertificateFile /etc/apache2/cert/mydomain1.firma.lan.crt
SSLCertificateKeyFile /etc/apache2/cert/mydomain1.firma.lan.key
SSLCACertificatePath "/etc/ssl/certs"
SSLVerifyClient require
SSLVerifyDepth 5
ErrorLog /var/log/apache2/mydomain1.firma.lan_error_log
CustomLog /var/log/apache2/mydomain1.firma.lan_access_log common
Alias /webdav /var/www/web1/webdavdata
<Location /webdav>
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/web1/passwd.dav
Require valid-user
</Location>
</VirtualHost>
# htpasswd /var/www/web1/passwd.dav test2
# chown www-data:www-data /var/www/web1/passwd.dav
Fassen wir zusammen
- Wir haben einen Apache Webserver aufgesetzt für die Domain mydomain1.firma.lan bzw. mydomain1
- Server-Zertifikate wurden erstellen und selbst bestätigt.
- Client-Zertifikat wurde erstellt.
- Client-Zertifikat wurde auf einigen Clients installiert
- WebDAV wurde auf dem Server konfiguriert.
- Passwort Datei für WebDAV Zugriff mit Benutzer wurde angelegt.
Es stellt sich Frage, wie können wir auf den Speicher zugreifen.
Der Apache-Server ist so konfiguriert, dass ein Client-Zertifikat auf dem Client verlangt wird. Wenn das Client-Zertifikat nicht vorhanden ist, wird die Seite nicht angezeigt, wir bekommen eine Fehlermeldung.
Wenn das Client-Zertifikat auf dem Client vorhanden ist, kommt ein Fenster mit Zertifikat-Information und hier können wir das bestätigen. Danach kommt noch Fenster für die Benutzerdateneingabe und erst dann haben wir den Zugriff auf WebDAV Bereich.
Kurz gesagt, wir brauchen ein Zertifikat und die Login Daten.
Wichtig. Auf dem Windows Client muss der Dienst WebClient laufen
Um ein Netzlaufwerk zu erstellen muss noch das Client-Zertifikat auf dem Client installiert sein. Außerdem brauchen wir die Login Daten eines Benutzers der sich in der Passwortdatei befindet.
Zugriff aus dem öffentlichen Raum
Mehrere WebDAV Quellen
ServerAdmin webmaster@mydomain1.firma.lan
DocumentRoot /var/www/html/mydomain1
ServerName mydomain1
ServerAlias mydomain1.firma.lan
SSLEngine on
SSLCertificateFile /etc/apache2/cert/mydomain1.firma.lan.crt
SSLCertificateKeyFile /etc/apache2/cert/mydomain1.firma.lan.key
SSLCACertificatePath "/etc/ssl/certs"
SSLVerifyClient require
SSLVerifyDepth 5
ErrorLog /var/log/apache2/mydomain1.firma.lan_error_log
CustomLog /var/log/apache2/mydomain1.firma.lan_access_log common
Alias /webdav /var/www/web1/webdavdata
<Location /webdav>
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/web1/passwd.dav
Require valid-user
</Location>
Alias /webdav2 /var/www/web2/webdavdata
<Location /webdav2>
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/web2/passwd.dav
Require valid-user
</Location>
</VirtualHost>