• email
  • facebook
  • linkedin
  • google+
  • pinteres

Webdav beállítása

Leírás WebDav környezet felállításáról. A segítségével a szerverünkön található könyvtárat felcsatolhatjuk gépünkre, gépeinkre, így több helyről, több ember számára is elérhetővé tehetjük.

1.   Szerver

A leírás feltételezi, hogy a szerverünkön Apache már telepítve van, virtuális hosztokkal. Az Apache telepítés alapból felteszi a dav modult, de nézzük meg engedélyezve van-e. (a2enmod dav)

Hozzunk létre egy könyvtárat a webdav-os tárhelyeknek, mondjuk /data/webdav néven. Ebben lesznek az egyes felhasználók alkönyvtárai, mondjuk foo.

Hozzunk létre egy felhasználó (bar) számára elérést egy htpasswd fájlban:

htpasswd2 -s /data/webdav/foo/.htpasswd bar

A felhasználó virtuális hosztjának konfigurációs fájljába írjuk be a következőt:

<VirtualHost *>
  ServerName www.foo.hu

  ...

  Alias /webdav /data/webdav/foo

  <Directory "/data/webdav/foo">
    Dav On
    Options +Indexes
    AuthName "WebDAV Login"
    AuthType Basic
    AuthUserFile /data/webdav/foo/.htpasswd
    Require valid-user
    Order allow,deny
    Allow from all
  </Directory>

  ...

Az elérést adott műveletekre is korlátozhatjuk:

<LimitExcept GET HEAD OPTIONS>
  Require valid-user
</LimitExcept>

A szerver újraindítása után a webdav elérhető a www.foo.hu/webdav címen elérhető a szolgáltatás. További apache konfigurálás segítségével számos egyéb dolgot beállíthatunk, pl. csoportos alapú jogosultságkezelés, HTTPS akár kliens tanúsítvánnyal, jogosultságok finomhangolása a <Limit> elemmel.

2.   Kliens

Ha nincs kedvünk parancssori (Cadaver) vagy fájl böngészőbeli webdav klienst használni, a legegyszerűbb, ha felcsatoljuk a fájlrendszerre a távoli webdav helyet, és úgy kezeljük, mintha lokális könyvtár lenne.

Telepítsük a következő csomagot:

  • davfs2

Hozzunk létre egy könyvtárat, mondjuk /mnt/webdav. Alkalmilag is felcsatolhatjuk, de a legkényelmesebb, ha felvesszük a /etc/fstab-ba, hogy bootoláskor azonnal elérhető legyen:

https://www.foo.hu/webdav/  /home/szabolcs/dav  davfs auto,rw,uid=szabolcs,gid=szabolcs  0 0

Tételezzük fel, hogy nem csak HTTPS protokollal, hanem kliens tanusítvánnyal is védjük a szolgáltatást. Ez esetben némi további konfigurálásra is szükség lesz.

Két tanúsítványra lesz szükségünk. Egyrészt a saját kliens tanúsítványunkra, másrészt arra a saját legfelsőbb szintű (root) CA tanúsítványra, amivel szerver HTTPS tanúsítványát aláírtuk (ha saját CA által aláírtat használunk). Ez mondjuk a Firefox tanúsítványkezelőből kényelmesen exportálható.

A /etc/davfs2/davfs2.conf adjuk meg ezek nevét:

servercert        nir.crt
clientcert        szabolcs.p12

(Egyes felcsatolási helyek szerint más-más beállításokat adhatunk meg, a részletekhez lás man davfs2.conf.)

A /etc/davfs2/certs másoljuk be a CA tanúsítványát, a /etc/davfs2/certs/private/ könyvtárba pedig a saját kliens tanúsítványt, és utóbbinak a jogosultságát ne felejtsük 600-ra állítani.

Most már csak a jelszavakat kell megadnunk, ha nem akarjuk minden egyes mount esetén beírni. A /etc/davfs2/secrets fájlban adjuk meg a következőket:

# Credential Line
# ---------------

https://www.foo.hu/webdav/ szabolcs     https_jelszo

# Password for Client Certificate
# -------------------------------

/etc/davfs2/certs/private/szabolcs.p12      cert_jelszo

(Utóbbi helyen a teljes fájl elérési utat meg kell adni, egyelőre még nem jöttem rá miért.)

Nem marad hátra, mint kipróbálni:

sudo mount /mnt/webdav

Ha minden rendben volt, akkor a legközelebbi alkalommal már gépindításnál elérhető lesz a webdav könyvtár.

Elképzelhető, hogy mégsem ez lesz nekünk a legjobb, hanem kézzel szeretnénk mindig felcsatolni. Ez esetben a /etc/fstab bejegyzésben írjuk át az auto bejegyzést így:

https://www.foo.hu/webdav/  /home/szabolcs/dav  davfs noauto,user,rw  0 0

Ezzel a sima lokális felhasználók számára is engedélyeztük a felcsatolást, így root jogok sem kellenek a művelethez.


Jó kis leírás, sokkal több részlettel itt: