GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Einrichtung des WebDAV-Servers unter Ubuntu Linux

Einführung

Dieser Artikel befasst sich mit der Installation und Konfiguration des WebDAV-Servers unter Ubuntu Linux. WebDAV steht für Web Distributed Authoring and Versioning und ermöglicht verbundenen Benutzern das Bearbeiten und Teilen von Daten online über das HTTP-Protokoll. Dies macht WebDAV zu einer beliebten Wahl für Entwickler, wenn es beispielsweise mit Subversion oder OpenLink Virtuoso kombiniert wird. WebDAV wird von einer Reihe von Clients unterstützt, die von davfs2 reichen, was es ermöglicht, den Datenspeicher von WebDAV zu mounten, um ihn in das lokale Dateisystem aufzunehmen. Dies kann mit dem Befehl mount für verschiedene GUI-Anwendungen mit nativer WebDAV-Unterstützung wie Nautilus, Konqueror usw. erfolgen. Außerdem werden wir in dieser Anleitung WebDAV mit dem Apache2-Server kombinieren.

Szenario

In diesem Abschnitt möchte ich ein Szenario beschreiben, das in diesem Tutorial verwendet wird. WebDAV kann ein sehr flexibler Dienst sein, der eine Reihe von Konfigurationseinstellungen und Szenarien ermöglicht. In diesem WebDAV-Tutorial beginnen wir mit der einfachsten WedDAV-Startkonfiguration und bauen sie von dort aus auf, um sie an komplexere Umgebungen anzupassen. Sie können sich WebDAV als eine HTTP-Erweiterung für Ihre bestehende Website-Konfiguration vorstellen. Normalerweise haben Sie Ihre Apache-Website möglicherweise bereits am Laufen. In diesem Fall müssen Sie also nur Folgendes tun, um den WevbDAV-Dienst einzubeziehen:

  1. Zusätzliches Upload-Datenverzeichnis zur Verwendung durch WebDAV erstellen
  2. Konfigurieren Sie Ihre vorhandene virtuelle Apache2-Hostdatei

In diesem Handbuch beginnen wir jedoch bei Null, beginnend mit der Apache2-Installation, der Erstellung virtueller Hosts usw. Sie können daher jederzeit zu jedem Abschnitt springen, der Ihren Konfigurationsanforderungen am besten entspricht.

In dieser Anleitung konfigurieren wir:

  • webdav.local – dies wird ein virtueller Host sein, der auf dem IP 10.1.1.61-Server läuft
  • webdav.local/svn – dies wird ein WebDAV-fähiges Verzeichnis sein
  • /var/www/webdav – Verzeichnis zum Hosten der Indexdatei von webdav.local
  • /var/www/webdav/svn – Verzeichnis zum Hosten des Datenspeichers von webdav.local/svn WebDAV

Bearbeiten Sie Ihre DNS-Einstellungen entsprechend oder ändern Sie die Datei /etc/hosts Ihres Clients, um die obige Host-Auflösung webdav.local aufzunehmen.

Apache- und WebDAV-Installation

In diesem Abschnitt werden wir einfach Apache2 installieren und das WebDAV-Modul aktivieren. Das WebDAV-Modul wird mit der Apache2-Installation geliefert, ist jedoch standardmäßig nicht aktiviert. All dies kann mit zwei einfachen Befehlen erledigt werden:

$ sudo apt-get install apache2

Jetzt sollten Sie auf Ihre Standard-Website zugreifen können, die sich unter http://webdav.local befindet. Wenn alles gut geht, deaktivieren Sie die Standardseite, da wir sie nicht mehr verwenden können:

$ sudo a2dissite default
$ sudo service apache2 reload

Virtuellen Host konfigurieren

An dieser Stelle müssen wir den virtuellen Host mit ServerName:webdav.local und dem angehängten Verzeichnis /var/www/webdav konfigurieren. Navigieren Sie dazu zu /etc/apache2/sites-available/:

$ cd /etc/apache2/sites-available/

und erstellen Sie eine neue Site-Konfigurationsdatei namens webdav.local mit folgendem Inhalt:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

Sobald dies erledigt ist, müssen wir ein geeignetes /var/www/webdav/-Verzeichnis erstellen:

$ sudo mkdir /var/www/webdav

Ändern Sie den Besitzer zu Apache:

$ sudo chown www-data.www-data /var/www/webdav

und aktivieren Sie die neue Website webdav.local

$ sudo a2ensite webdav.local

Um es zu testen, können wir eine einfache index.html-Datei erstellen:

$ sudo sh -c 'echo "Welcome from WebDAV.local" > /var/www/webdav/index.html'

und laden Sie schließlich den Apache2-Webserver neu:

$ sudo service apache2 reload

Jetzt sollten Sie in der Lage sein, Ihren Browser zu http://webdav.local zu navigieren und die Nachricht zu sehen:Willkommen von WebDAV.local auf Ihrem Bildschirm. Damit ist die Installation des Apache2-Webservers mit dem virtuellen Host webdav.local

abgeschlossen

WebDAV-Einrichtung

Es ist an der Zeit, das Modul von WebDAV zu aktivieren mit:

$ sudo a2enmod dav_fs
Considering dependency dav for dav_fs:
Enabling module dav.
Enabling module dav_fs.

und starten Sie den Apache-Server neu:

$ sudo service apache2 restart

Jetzt, da alles bereit ist, können wir einen einfachen WebDAV-Server einrichten. Dies lässt sich leicht bewerkstelligen, indem Sie ein zusätzliches Verzeichnis für WebDAV-Daten erstellen:

Basiskonfiguration

$ sudo mkdir /var/www/webdav/svn

Es ist auch wichtig, es für Apache beschreibbar zu machen, sonst erhalten wir den Fehler 403 Forbidden:

$ sudo chown www-data.www-data /var/www/webdav/svn/

und Aktivieren von WebDAV für unseren neuen virtuellen Host webdav.local. Dies kann durch Hinzufügen der folgenden Zeilen in den -Block erfolgen:

Alias /svn /var/www/webdav/svn
<Location /svn>
    DAV On
</Location>

Was das Obige bedeutet, ist das WebDAV-fähige Verzeichnis /var/www/webdav/svn, auf das über http://webdav.local/svn zugegriffen werden kann. Führen Sie die obige Änderung Ihrer vorhandenen Konfigurationsdatei /etc/apache2/sites-available/webdav.local durch und starten Sie Ihren Apache-Webserver neu. So sieht die gesamte Datei /etc/apache2/sites-available/webdav.local zu diesem Zeitpunkt aus:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

Alias /svn /var/www/webdav/svn
<Location /svn>
    DAV On
</Location>

</VirtualHost>

Es ist Zeit, unsere Konfiguration zu testen. Eine Möglichkeit, dies zu tun, besteht darin, unseren Browser auf http://webdav.local/svn zu verweisen, oder noch besser, das Cadaver-Tool zu verwenden. Installieren Sie zuerst cadaver mit:

$ sudo apt-get install cadaver

Erstellen Sie dieselbe Datendatei mit dd, die in Ihr WebDAV-Verzeichnis hochgeladen werden soll, und laden Sie sie hoch:

$ dd if=/dev/zero of=mydata.dat bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.075726 s, 138 MB/s
$ cadaver http://webdav.local/svn
dav:/svn/> put mydata.dat
Uploading mydata.dat to `/svn/mydata.dat':
Progress: [=============================>] 100.0% of 10485760 bytes succeeded.
dav:/svn/> quit
Connection to `webdav.local' closed.

Jetzt sollten Sie den grundlegenden WebDAV-Server konfiguriert und einsatzbereit haben. Im nächsten Abschnitt werden wir einige grundlegende Benutzerauthentifizierungen hinzufügen.

WebDAV mit Benutzerauthentifizierung

Wenn Sie beabsichtigen, Ihren WebDAV-Server auf einem Remote-Host bereitzustellen, ist es mehr als ratsam, zumindest eine grundlegende Authentifizierung zu implementieren. Glücklicherweise lässt sich dies ganz einfach mit der htpasswd erledigen Befehl und Neukonfiguration unserer bestehenden /etc/apache2/sites-available/webdav.local Konfigurationsdatei.

Erstellen Sie zunächst ein Verzeichnis, in dem Sie die Passwortdatei des Webdav speichern möchten. Dies ist ein Standort Ihrer Wahl. In diesem Tutorial verwende ich /usr/local/apache2/:

$ sudo mkdir /usr/local/apache2/

Verwenden Sie dann htpasswd, um eine neue Passwortdatei zu erstellen, anhand derer alle Benutzer authentifiziert werden.

$ sudo htpasswd -c /usr/local/apache2/webdav.passwords lubos

Wenn Sie weitere Benutzer hinzufügen müssen, verwenden Sie die obige Syntax, aber lassen Sie die Option -c weg, da sie Ihre vorhandene Datei überschreibt.
Jetzt, da die Authentifizierungsdatei fertig ist, müssen wir die Authentifizierung zu unserer aktuellen /etc/apache2/sites hinzufügen -available/webdav.local Konfigurationsdatei. Neue Änderungen werden durch Fettschrift hervorgehoben:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

Alias /svn /var/www/webdav/svn
<Location /svn>
    DAV On
        AuthType Basic
        AuthName "webdav"
        AuthUserFile /usr/local/apache2/webdav.passwords
        Require valid-user
</Location>

</VirtualHost>

Wenn Sie von nun an versuchen, auf Ihren WebDAV-Server zuzugreifen, müssen Sie sich zuerst authentifizieren. Hier ist ein Beispiel für die WebDAV-Authentifizierung:

$ cadaver http://webdav.local/svn
Authentication required for webdav on server `webdav.local':
Username: lubos
Password: 
dav:/svn/> ls
Listing collection `/svn/': succeeded.
        mydata.dat                      10485760  Feb 20 14:45
dav:/svn/>

Einschränken des WebDAV-Zugriffs

Darüber hinaus ist es ratsam, den WebDAV-Zugriff auf eine begrenzte Anzahl von Benutzern zu beschränken. Wenn wir zum Beispiel nur den einzelnen Benutzer „Lubos“ auf unser WebDAV-Repository zugreifen lassen möchten, können wir dies tun, indem wir eine -Klausel in die -Direktive einfügen, wie z. B.:

    <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        AuthType Basic
        AuthName "webdav"
        AuthUserFile /usr/local/apache2/webdav.passwords
        Require user lubos
    </Limit>

Da die Benutzer auf jedes WebDAV-fähige Verzeichnis zugreifen und Dateien in dieses hochladen können, wird auch empfohlen, den Zugriff auf .htt-Dateien zu verbieten. Fügen Sie daher hinzu:

AllowOverride None

innerhalb der -Direktive.

Einbinden von WebDAV-fähigem Verzeichnis

Wie bereits erwähnt, wird WebDAV von einer großen Anzahl von Clients unterstützt. Es ist auch möglich, das WebDAV-Verzeichnis in ein lokales System einzuhängen, um als Teil des Dateisystems zu fungieren. Dazu müssen wir zuerst davfs2 als Root-Benutzer installieren:

# apt-get install davfs2

Erstellen Sie dann einen Einhängepunkt:

# mkdir /mnt/webdav

und mounten Sie es schließlich mit einem Mount-Befehl:

# mount.davfs http://webdav.local/svn /mnt/webdav/
Please enter the username to authenticate with server
http://webdav.local/svn or hit enter for none.
  Username: lubos
Please enter the password to authenticate user lubos with server
http://webdav.local/svn or hit enter for none.
  Password:  
# cd /mnt/webdav/
# ls
lost+found  mydata.dat
# touch linuxcareer.com.txt
# sync

Schlussfolgerung

Dieser Artikel beschreibt eine grundlegende Konfiguration des WebDAV-Dienstes unter Verwendung des Apache2-Webservers, um Ihnen den Einstieg zu erleichtern. Es gibt nur wenige Sicherheitsprobleme, die berücksichtigt werden müssen, also müssen Sie Ihre Hausaufgaben machen und die Apache-Modul-mod_dav-Dokumentation für weitere Konfigurationseinstellungen und Sicherheitsverbesserungen konsultieren, um Ihre Konfiguration zu verbessern.


Ubuntu
  1. 4 Schritte zum Einrichten eines lokalen Repositorys in Ubuntu mit APT-Mirror

  2. Richten Sie den Urbackup-Server auf Ubuntu 20.04 ein

  3. Rsyslog-Server auf Ubuntu 20.04 einrichten - Wie geht das?

  4. Ubuntu – Vcenter Server unter Linux?

  5. Ubuntu-Webserver einrichten?

Ubuntu 22.04 Minecraft-Server-Setup

So richten Sie den lokalen APT-Repository-Server unter Ubuntu 20.04 ein

So richten Sie OpenVPN auf Ubuntu Server ein

So richten Sie den Git-Server unter Ubuntu 20.04 ein

So richten Sie den Rsyslog-Server unter Ubuntu ein

So richten Sie einen DHCP-Server unter Ubuntu ein