GNU/Linux >> Znalost Linux >  >> Ubuntu

Nastavení serveru WebDAV na Ubuntu Linux

Úvod

Tento článek se bude zabývat instalací a konfigurací serveru WebDAV na Ubuntu Linux. WebDAV je zkratka pro Web Distributed Authoring and Versioning a umožňuje připojeným uživatelům upravovat a sdílet data online prostřednictvím protokolu HTTP. Díky tomu je WebDAV oblíbenou volbou pro vývojáře v kombinaci, například se Subversion nebo OpenLink Virtuoso. WebDAV je podporován řadou klientů od davfs2, což umožňuje připojit úložiště dat WebDAV a zahrnout je do místního souborového systému. To lze provést pomocí příkazu mount do různých aplikací GUI s nativní podporou WebDAV, jako je Nautilus, konqueror atd. Kromě toho v této příručce zkombinujeme WebDAV se serverem Apache2.

Scénář

V této části bych rád popsal scénář použitý v tomto tutoriálu. WebDAV může být velmi flexibilní služba, která umožňuje řadu konfiguračních nastavení a scénářů. V tomto tutoriálu WebDAV začneme s nejjednodušší základní konfigurací WedDAV pro spuštění a odtud ji sestavíme tak, aby vyhovovala složitějšímu prostředí. WebDAV si můžete představit jako rozšíření HTTP pro vaši stávající konfiguraci webu. Za normálních okolností již můžete mít svůj web Apache spuštěný. V takovém případě tedy vše, co musíte udělat, abyste mohli zahrnout službu WevbDAV, je:

  1. vytvořte další adresář pro nahrávání dat, který bude používat WebDAV
  2. nakonfigurujte svůj stávající soubor virtuálního hostitele apache2

V této příručce však začneme od nuly počínaje instalací apache2, vytvořením virtuálního hostitele atd. Proto neváhejte přeskočit na kteroukoli část, která nejlépe odpovídá vašim požadavkům na konfiguraci.

V této příručce nakonfigurujeme:

  • webdav.local – toto bude virtuální hostitel běžící na serveru IP 10.1.1.61
  • webdav.local/svn – toto bude adresář s povoleným WebDAV
  • /var/www/webdav – adresář pro hostování indexového souboru webdav.local
  • /var/www/webdav/svn – adresář pro hostitele datového úložiště webdav.local/svn WebDAV

Upravte odpovídajícím způsobem svá nastavení DNS nebo změňte soubor /etc/hosts svého klienta tak, aby zahrnoval výše uvedené rozlišení hostitele webdav.local.

Instalace Apache a WebDAV

V této sekci jednoduše nainstalujeme apache2 a povolíme modul WebDAV. Modul WebDAV je dodáván s instalací apache2, ve výchozím nastavení však není povolen. To vše lze provést pomocí dvou jednoduchých příkazů:

$ sudo apt-get install apache2

Nyní byste měli mít přístup k výchozí webové stránce na adrese http://webdav.local. Pokud vše půjde dobře, deaktivujte výchozí stránku, protože pro ni již nemáme použití:

$ sudo a2dissite default
$ sudo service apache2 reload

Konfigurace virtuálního hostitele

V tomto okamžiku musíme nakonfigurovat virtuálního hostitele pomocí ServerName:webdav.local a připojeného adresáře /var/www/webdav. Chcete-li tak učinit, přejděte do /etc/apache2/sites-available/:

$ cd /etc/apache2/sites-available/

a vytvořte nový konfigurační soubor webu s názvem webdav.local s následujícím obsahem:

<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>

Po dokončení musíme vytvořit vhodný adresář /var/www/webdav/:

$ sudo mkdir /var/www/webdav

Změnit vlastníka na apache:

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

a povolit nový web webdav.local

$ sudo a2ensite webdav.local

Abychom to otestovali, můžeme vytvořit nějaký jednoduchý soubor index.html:

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

a nakonec znovu načtěte webový server apache2:

$ sudo service apache2 reload

Nyní byste měli být schopni přejít ve svém prohlížeči na http://webdav.local a na obrazovce se zobrazit zpráva:Vítejte z WebDAV.local. Tím je instalace webového serveru apache2 s virtuálním hostitelem webdav.local

ukončena

Nastavení WebDAV

Je čas povolit modul WebDAV pomocí:

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

a restartujte server apache:

$ sudo service apache2 restart

Nyní, když je vše připraveno, můžeme nastavit základní WebDAV server. To lze snadno provést vytvořením dalšího adresáře pro data WebDAV:

Základní konfigurace

$ sudo mkdir /var/www/webdav/svn

Je také důležité, aby do něj bylo možné zapisovat pomocí Apache, jinak dostaneme chybu 403 Zakázaná:

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

a povolení WebDAV pro našeho nového virtuálního hostitele webdav.local. To lze provést přidáním následujících řádků do bloku :

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

Výše uvedené znamená, že adresář /var/www/webdav/svn s povoleným WebDAV bude přístupný přes http://webdav.local/svn. Proveďte výše uvedenou úpravu vašeho stávajícího konfiguračního souboru /etc/apache2/sites-available/webdav.local a restartujte webový server Apache. Takto vypadá celý soubor /etc/apache2/sites-available/webdav.local v této fázi:

<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>

Je čas otestovat naši konfiguraci. Jedním ze způsobů, jak toho dosáhnout, je nasměrovat náš prohlížeč na http://webdav.local/svn nebo ještě lepší způsob je použít nástroj cadaver. Nejprve nainstalujte kadaver pomocí:

$ sudo apt-get install cadaver

Vytvořte stejný datový soubor s dd, který chcete nahrát do vašeho adresáře WebDAV, a nahrajte jej:

$ 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.

Nyní byste měli mít základní server WebDAV nakonfigurovaný a připravený k použití. V další části přidáme základní autentizaci uživatele.

WebDAV s ověřením uživatele

Pokud máte v úmyslu nasadit svůj WebDAV server na vzdáleném hostiteli, je více než vhodné implementovat alespoň základní autentizaci. Naštěstí to lze snadno provést pomocí htpasswd příkaz a překonfigurování našeho stávajícího konfiguračního souboru /etc/apache2/sites-available/webdav.local.

Nejprve vytvořte adresář, kam chcete uložit soubor s hesly webdavu. Toto je místo dle vašeho výběru. V tomto tutoriálu používám /usr/local/apache2/:

$ sudo mkdir /usr/local/apache2/

Poté pomocí htpasswd vytvořte nový soubor s hesly, proti kterému budou ověřeni všichni uživatelé.

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

Pokud potřebujete přidat další uživatele, použijte výše uvedenou syntaxi, ale vynechejte volbu -c, protože přepíše váš stávající soubor.
Nyní, když je autentizační soubor připraven, musíme přidat autentizaci do našich aktuálních /etc/apache2/sites -available/webdav.local konfigurační soubor. Nové změny jsou zvýrazněny tučným písmem:

<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>

Pokud se od této chvíle pokusíte o přístup k serveru WebDAV, budete se muset nejprve ověřit. Zde je příklad ověření WebDAV:

$ 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/>

Omezení přístupu WebDAV

Dále je vhodné omezit WebDAV přístup na omezený počet uživatelů. Pokud například chceme umožnit přístup pouze uživateli „Lubos“ k našemu úložišti WebDAV, můžeme tak učinit přidáním klauzule do direktivy , jako je:

    <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>

Protože uživatelé mohou přistupovat a nahrávat soubor do libovolného adresáře s povoleným WebDAV, doporučuje se také zakázat soubor .httaccess. Proto přidejte:

AllowOverride None

uvnitř direktivy .

Připojování adresáře s povoleným WebDAV

Jak již bylo zmíněno dříve WebDAV podporuje velké množství klientů. Je také možné připojit adresář WebDAV do místního systému, aby fungoval jako součást souborového systému. Abychom to mohli udělat, musíme nejprve nainstalovat davfs2 jako uživatel root:

# apt-get install davfs2

poté vytvořte přípojný bod:

# mkdir /mnt/webdav

a nakonec jej připojte pomocí příkazu mount:

# 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

Závěr

Tento článek popisuje základní konfiguraci služby WebDAV pomocí webového serveru Apache2, abyste mohli začít. Existuje jen málo bezpečnostních problémů, které je třeba vzít v úvahu, takže si musíte udělat domácí úkol a prostudovat si dokumentaci modulu Apache mod_dav, kde najdete další konfigurační nastavení a vylepšení zabezpečení pro zlepšení vaší konfigurace.


Ubuntu
  1. Nastavte server Urbackup na Ubuntu 20.04

  2. Nastavení serveru Rsyslog na Ubuntu 20.04 – Jak na to?

  3. Nastavení webového serveru Ubuntu?

  1. Nastavení serveru iTunes DAAP na Ubuntu/Debian Linux

  2. 4 kroky k nastavení místního úložiště v Ubuntu pomocí APT-mirror

  3. Ubuntu – Vcenter Server na Linuxu?

  1. Jak nastavit FTP server na Ubuntu 20.04 Focal Fossa Linux

  2. Jak nastavit SFTP server na Ubuntu 20.04 Focal Fossa Linux

  3. Server VNC na Ubuntu 20.04 Focal Fossa Linux