Bereitstellen von WebDAV unter Debian 10 mit WsgiDAV

Einführung

Web Distributed Authoring und Versionierung (WebDAV) ist eine HTTP-Erweiterung, die ein Framework zum Remote-Erstellen und Ändern von Dateien auf einem Server bietet. WsgiDAV ist ein in Python geschriebener WebDAV-Server. Dieses Handbuch hilft Ihnen bei der Installation von WsgiDAV Version 3.0 auf einem Vultr-Server unter Debian 10. Wir erhalten auch ein SSL-Zertifikat, um eine sichere Verbindung sowie eine PAM-Authentifizierung bereitzustellen.

Voraussetzungen

  • Ein Debian 10-System, auf das Sie privilegierten Zugriff haben (über den Root-Benutzer oder einen beliebigen Sudo-Benutzer).
  • Die $EDITORUmgebungsvariable muss auf einen Texteditor Ihrer Wahl eingestellt sein.
  • Ein registrierter Domainname ist erforderlich. Die Nameserver müssen mit einem ADatensatz konfiguriert sein , der auf die IPv4-Adresse Ihres Servers verweist, und optional mit einem AAAADatensatz, der auf die IPv6-Adresse verweist.
  • Es wird empfohlen, sich mit der YAML-Syntax vertraut zu machen.

Der Platzhalter dav.example.comwird für den Domainnamen Ihres Servers verwendet.

Installation

SSL-Zertifikat

Wir beginnen mit der Aktualisierung des Systems und dem Erhalt eines kostenlosen SSL-Zertifikats von Let's Encrypt . Aktualisieren Sie dazu zuerst Ihr System und installieren Sie das certbotDienstprogramm:

 sudo apt update
 sudo apt upgrade -y
 sudo apt install -y certbot

Ersetzen Sie im folgenden Befehl dav.example.comund [email protected]durch Ihren Domainnamen bzw. Ihre E-Mail-Adresse, bevor Sie ihn ausführen:

sudo certbot certonly --standalone --agree-tos -m [email protected] -d dav.example.com

Ihr Server erhält eine Aufforderung, um zu überprüfen, ob Sie den angegebenen Domänennamen steuern. Wenn dies erfolgreich ist, wird das Zertifikat ausgestellt und zusammen mit anderen Dateien wie dem privaten Schlüssel unter gespeichert /etc/letsencrypt/live/dav.example.com/.

WsgiDAV installieren

Installieren Sie zunächst den Python-Paketmanager pip:

sudo apt update
sudo apt install -y python3-pip

WsgiDAV erfordert einen HTTP-Server, der WSGI unterstützt. Wir werden die Standardoption Cheroot installieren. Wir werden auch die lxml-Python-Bibliothek installieren, die tendenziell eine bessere Leistung aufweist als die standardmäßig installierte XML-Bibliothek. Die Python3-Bibliothek PAM (Pluggable Authentication Module) wird ebenfalls benötigt. Installieren Sie die erforderlichen Pakete mit dem pipTool:

sudo pip3 install wsgidav cheroot lxml python-pam

WsgiDAV konfigurieren

Die ausführbare WsgiDAV-Datei wird in gespeichert /usr/local/bin, daher wird die Konfigurationsdatei im /usr/local/etcVerzeichnis abgelegt . Laden Sie die Beispielkonfigurationsdatei mit den folgenden Befehlen herunter:

sudo mkdir -p /usr/local/etc
sudo wget https://github.com/mar10/wsgidav/raw/master/sample_wsgidav.yaml -O /usr/local/etc/wsgidav.yaml

Öffnen Sie es mit Ihrem Editor:

sudo $EDITOR /usr/local/etc/wsgidav.yaml

Suchen Sie die folgenden Zeilen im Abschnitt "SSL-Unterstützung":

# ssl_certificate: "wsgidav/server/sample_bogo_server.crt"
# ssl_private_key: "wsgidav/server/sample_bogo_server.key"
# ssl_certificate_chain: null

Ersetzen Sie sie durch Folgendes:

ssl_certificate: "/etc/letsencrypt/live/dav.example.com/cert.pem"
ssl_private_key: "/etc/letsencrypt/live/dav.example.com/privkey.pem"
ssl_certificate_chain: "/etc/letsencrypt/live/dav.example.com/chain.pem"

Als Nächstes konfigurieren wir die Freigabepfade, indem wir HTTP-Pfade (z. B. /) entsprechenden Speicherorten im Dateisystem (z. B. /var/www/dir1) zuordnen . Zu Demonstrationszwecken werden wir zwei Verzeichnisse gemeinsam nutzen, von denen eines schreibgeschützt ist. Suchen Sie den provider_mappingBlock im Abschnitt "SHARES":

provider_mapping:
    "/": "/path/to/share1"
    "/pub":
        root: "/path/to/share2"
        readonly: true
    "/share3":
        provider: path.to.CustomDAVProviderClass
        args: ["/path/to/share3", "second_arg"]
        kwargs: {"another_arg": 42}

Ersetze es:

provider_mapping:
    "/":
    root: "/var/www/html/documents"
    readonly: false
"/reports":
    root: "/var/www/html/reports"
    readonly: true

Bei diesen Zuordnungen https://dav.example.com:8080/entspricht dies dem /var/www/html/documentsVerzeichnis auf dem Server, während https://dav.example.com:8080/reportses /var/www/html/reportsohne Schreibzugriff zugeordnet wird.

Zur Authentifizierung verwenden wir den PAM-Treiber. Dadurch entfallen separate WebDAV-Benutzerkonten, und Systembenutzer können sich mit ihren üblichen Anmeldeinformationen anmelden.

Suchen Sie im Abschnitt "AUTHENTICATION" die folgenden Zeilen:

accept_basic: true
accept_digest: true
default_to_digest: true
domain_controller: null

Ersetzen Sie sie durch Folgendes:

accept_basic: true
accept_digest: false
default_to_digest: false
domain_controller: wsgidav.dc.pam_dc.PAMDomainController

Sie können jetzt Ihren Server testen:

sudo wsgidav -c /usr/local/etc/wsgidav.yaml

Öffnen Sie https://dav.example.com:8080/in Ihrem Webbrowser. Da wir die PAM-Authentifizierung konfiguriert haben, müssen Sie sich mit Ihrem Linux-Benutzerkonto anmelden. Verwenden Sie CTRL+ C, um den Server zu stoppen, bevor Sie fortfahren.

Installation als Service

Erstellen Sie eine Einheitendatei, um Ihren WebDAV-Server als von systemd verwalteten Systemdienst auszuführen:

sudo $EDITOR /etc/systemd/system/wsgidav.service

Gib Folgendes ein:

[Unit]
Description=WsgiDAV WebDAV server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/wsgidav -c /usr/local/etc/wsgidav.yaml
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=wsgidav_service

[Install]
WantedBy=multi-user.target

Erstellen Sie dann eine Konfigurationsdatei für den Systemprotokollierungsdienst:

sudo $EDITOR /etc/rsyslog.d/wsgidav_service.conf

Füllen Sie die Datei mit Folgendem:

 if $programname == 'wsgidav_service' then /var/log/wsgidav.log
 & stop

Speichern und beenden Sie den Vorgang und verwenden Sie die folgenden Befehle, um die Protokolldatei zu erstellen:

sudo touch /var/log/wsgidav.log
sudo chown root:adm /var/log/wsgidav.log

Laden Sie abschließend die neue systemd-Einheitendatei und starten Sie den Protokollierungsdienst neu, bevor Sie WsgiDAV starten:

sudo systemctl daemon-reload
sudo systemctl restart rsyslog.service
sudo systemctl start wsgidav.service

Sie können jetzt systemctlIhren WebDAV-Server starten, stoppen und neu starten. Die Standardausgabe und der Standardfehler von WsgiDAV werden protokolliert /var/log/wsgidav.logund können auch über verwendet werden sudo journalctl -u wsgidav.service.

Wenn der WebDAV-Server beim Systemstart automatisch gestartet werden soll, führen Sie Folgendes aus:

 sudo systemctl enable wsgidav.service

Weiterführende Literatur



Leave a Comment

Richten Sie mit OpenVPN Ihr eigenes privates Netzwerk ein

Richten Sie mit OpenVPN Ihr eigenes privates Netzwerk ein

Vultr bietet Ihnen eine hervorragende Konnektivität für private Netzwerke für Server, die am selben Standort ausgeführt werden. Aber manchmal möchten Sie zwei Server in verschiedenen Ländern

Installieren und Verwenden von Yunohost unter Debian 7 x64

Installieren und Verwenden von Yunohost unter Debian 7 x64

Dieses Tutorial führt Sie durch die Installation des Yunohost Complete Server-Kontrollfelds unter Debian. Folgen Sie einfach dem Tutorial und Ihr Server wird in Betrieb sein

Chroot auf Debian einrichten

Chroot auf Debian einrichten

In diesem Artikel erfahren Sie, wie Sie unter Debian ein Chroot-Gefängnis einrichten. Ich gehe davon aus, dass Sie Debian 7.x verwenden. Wenn Sie Debian 6 oder 8 ausführen, funktioniert dies möglicherweise, bu

So installieren Sie PiVPN unter Debian

So installieren Sie PiVPN unter Debian

Einführung Eine einfache Möglichkeit, einen VPN-Server unter Debian einzurichten, ist PiVPN. PiVPN ist ein Installationsprogramm und ein Wrapper für OpenVPN. Es werden einfache Befehle für Sie erstellt

Richten Sie Cacti auf Debian Jessie ein

Richten Sie Cacti auf Debian Jessie ein

Einführung Cacti ist ein Open-Source-Überwachungs- und Grafiktool, das vollständig auf RRD-Daten basiert. Mit Cacti können Sie nahezu jede Art von Gerät überwachen

Einrichten von Teamspeak 3 auf Debian Wheezy

Einrichten von Teamspeak 3 auf Debian Wheezy

Dieser Artikel zeigt Ihnen, wie Sie einen Teamspeak 3-Server unter Debian Wheezy ausführen. Bevor Sie damit beginnen können, sollten Sie einige Vorbereitungen für Ihr VPS treffen. ich

Verwenden von MySQL Views unter Debian 7

Verwenden von MySQL Views unter Debian 7

Einführung MySQL verfügt über eine großartige Funktion, die als Ansichten bezeichnet wird. Ansichten sind gespeicherte Abfragen. Stellen Sie sich diese als Alias ​​für eine ansonsten lange Abfrage vor. In diesem Handbuch

So installieren Sie ModSecurity für Nginx unter CentOS 7, Debian 8 und Ubuntu 16.04

So installieren Sie ModSecurity für Nginx unter CentOS 7, Debian 8 und Ubuntu 16.04

ModSecurity ist ein WAF-Modul (Open Source Web Application Firewall), mit dem Apache, Nginx und IIS vor verschiedenen Cyberangriffen geschützt werden können

Installieren Sie Hiawatha Web Server mit PHP-FPM und MySQL unter Debian

Installieren Sie Hiawatha Web Server mit PHP-FPM und MySQL unter Debian

Hiawatha ist ein Webserver, der Einfachheit, Benutzerfreundlichkeit und Sicherheit im Auge hat. Es ist die perfekte Lösung für kleinere Server, ältere Hardware oder Embedde

Installieren Sie Lynis auf Debian 8

Installieren Sie Lynis auf Debian 8

Einführung Lynis ist ein kostenloses Open-Source-Tool zur Systemprüfung, das von vielen Systemadministratoren verwendet wird, um die Integrität zu überprüfen und ihre Systeme zu härten. ich

Überwachen Sie den Debian-Serverstatus mit Munin

Überwachen Sie den Debian-Serverstatus mit Munin

Munin ist ein Überwachungstool zur Überwachung von Prozessen und Ressourcen in Ihrer Maschine und präsentiert die Informationen in Diagrammen über eine Weboberfläche. Verwenden Sie die folgenden

So installieren Sie das NodeBB-Forum unter Debian 9

So installieren Sie das NodeBB-Forum unter Debian 9

Verwenden Sie ein anderes System? NodeBB ist ein Node.js-basiertes Forum. Es verwendet Web-Sockets für sofortige Interaktionen und Echtzeitbenachrichtigungen. NodeBB-Quellcode i

So installieren Sie BigTree CMS auf einem Debian 9 LAMP VPS

So installieren Sie BigTree CMS auf einem Debian 9 LAMP VPS

Verwenden Sie ein anderes System? BigTree CMS 4.2 ist ein schnelles und leichtes, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen mit umfangreichen Funktionen

So installieren Sie Koel unter Debian 9

So installieren Sie Koel unter Debian 9

Verwenden Sie ein anderes System? Koel ist eine einfache webbasierte persönliche Audio-Streaming-App, die auf der Clientseite in Vue und auf der Serverseite in Laravel geschrieben wurde. Koe

Sticky Session mit Docker Swarm (CE) auf Debian 9

Sticky Session mit Docker Swarm (CE) auf Debian 9

Verwenden Sie ein anderes System? Einführung Docker Swarm verwandelt Ihre einzelnen Server in einen Computercluster. Erleichterung der Skalierung, Hochverfügbarkeit an

So installieren Sie Paste 2.1 auf einem Debian 9 LAMP VPS

So installieren Sie Paste 2.1 auf einem Debian 9 LAMP VPS

Verwenden Sie ein anderes System? Paste 2.1 ist eine einfache und flexible, kostenlose und Open-Source-Pastebin-Anwendung zum Speichern von Code, Text und mehr. Es war ursprünglich

Erzwinge Apt-Get auf IPv4 oder IPv6 unter Ubuntu oder Debian

Erzwinge Apt-Get auf IPv4 oder IPv6 unter Ubuntu oder Debian

Hier bei Vultr haben wir die Option, IPv6 auf allen bereitstellbaren VPS zu aktivieren. Aber damit bevorzugen einige Programme und Befehle den einen oder anderen Witz

So installieren Sie Automad CMS unter Debian 9

So installieren Sie Automad CMS unter Debian 9

Verwenden Sie ein anderes System? Einführung Automad ist ein Open Source File-basiertes Content Management System (CMS) und eine in PHP geschriebene Template Engine. Automa

So installieren Sie Apache Cassandra 3.11.x unter Debian 9

So installieren Sie Apache Cassandra 3.11.x unter Debian 9

Verwenden Sie ein anderes System? Apache Cassandra ist ein kostenloses und Open-Source-NoSQL-Datenbankverwaltungssystem, das Skalierbarkeit bietet

So konfigurieren Sie Snort unter Debian

So konfigurieren Sie Snort unter Debian

Snort ist ein kostenloses Network Intrusion Detection System (IDS). In weniger offiziellen Begriffen können Sie Ihr Netzwerk in Echtzeit auf verdächtige Aktivitäten überwachen

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.