Bevezetés
A Web Distributed Authoring and Versioning (WebDAV) egy HTTP-kiterjesztés, amely keretet biztosít a fájlok távoli létrehozásához és módosításához a szerveren. A WsgiDAV egy pythonban írt WebDAV-kiszolgáló. Ez az útmutató segít a WsgiDAV 3.0-s verziójának telepítésében egy Debian 10-et futtató Vultr szerverre. SSL-tanúsítványt is beszerzünk a biztonságos kapcsolat és a PAM-hitelesítés biztosításához.
Előfeltételek
- Egy Debian 10 rendszer, amelyhez kiváltságos hozzáféréssel rendelkezik (a root felhasználón vagy bármely sudo felhasználón keresztül).
- A
$EDITORkörnyezeti változót egy tetszőleges szövegszerkesztőre kell beállítani.
- Regisztrált domain név szükséges. A névszervereit
Aa szerver IPv4-címére AAAAmutató rekorddal és opcionálisan az IPv6-címre mutató rekorddal kell konfigurálni .
- A YAML szintaxis ismerete ajánlott.
A helyőrző dav.example.coma szerver tartománynevéhez lesz használva.
Telepítés
SSL tanúsítvány
Kezdjük a rendszer frissítésével, és ingyenes SSL-tanúsítvány beszerzésével a Let's Encrypt-től . Ehhez először frissítse a rendszert, és telepítse a certbotsegédprogramot:
sudo apt update sudo apt upgrade -y sudo apt install -y certbot
Az alábbi parancsban cserélje ki dav.example.comés írja email@domain.tldbe a domain nevét és e-mail címét, mielőtt végrehajtaná:
sudo certbot certonly --standalone --agree-tos -m email@domain.tld -d dav.example.com
Szerverére egy kihívást küldünk annak ellenőrzésére, hogy Ön irányítja-e a megadott tartománynevet. Ha ez sikerül, a tanúsítvány kibocsátásra és mentésre kerül, más fájlokkal, például a privát kulccsal együtt a alatt /etc/letsencrypt/live/dav.example.com/.
A WsgiDAV telepítése
Először telepítse a python csomagkezelőt pip:
sudo apt update sudo apt install -y python3-pip
A WsgiDAV olyan HTTP-kiszolgálót igényel, amely támogatja a WSGI-t. Az alapértelmezett opciót telepítjük, ami a Cheroot. Telepíteni fogjuk az lxml python könyvtárat is, amely általában jobban teljesít, mint az alapértelmezés szerint telepített XML könyvtár. Szükség van a PAM (Pluggable Authentication Module) python3 könyvtárra is. Telepítse a szükséges csomagokat az pipeszköz segítségével:
sudo pip3 install wsgidav cheroot lxml python-pam
A WsgiDAV konfigurálása
A WsgiDAV végrehajtható fájl a -ban van tárolva /usr/local/bin, ezért a konfigurációs fájlt a /usr/local/etckönyvtárba helyezzük . Töltse le a minta konfigurációs fájlt a következő parancsokkal:
sudo mkdir -p /usr/local/etc sudo wget https://github.com/mar10/wsgidav/raw/master/sample_wsgidav.yaml -O /usr/local/etc/wsgidav.yaml
Nyissa meg a szerkesztővel:
sudo $EDITOR /usr/local/etc/wsgidav.yaml
Keresse meg a következő sorokat az „SSL-támogatás” részben:
# ssl_certificate: "wsgidav/server/sample_bogo_server.crt" # ssl_private_key: "wsgidav/server/sample_bogo_server.key" # ssl_certificate_chain: null
Cserélje ki őket a következőkre:
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"
Ezután a megosztási útvonalakat úgy állítjuk be, hogy a HTTP útvonalakat (például /) leképezzük a fájlrendszer megfelelő helyeire (például /var/www/dir1). Bemutató célból két könyvtárat osztunk meg, amelyek közül az egyik csak olvasható lesz. Keresse meg a provider_mappingblokkot a „MEGOSZTÁSOK” részben:
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}
Cserélje ki:
provider_mapping: "/": root: "/var/www/html/documents" readonly: false "/reports": root: "/var/www/html/reports" readonly: true
Ezekkel leképezések, https://dav.example.com:8080/akkor felel meg a /var/www/html/documentskönyvtár a szerveren, miközben https://dav.example.com:8080/reportsfeltérképezi, hogy /var/www/html/reportsnincs írási.
A hitelesítéshez a PAM illesztőprogramot fogjuk használni. Ez megszünteti a külön WebDAV felhasználói fiókok szükségességét, és lehetővé teszi a rendszerfelhasználók számára, hogy a szokásos hitelesítő adataikkal jelentkezzenek be.
A „HITELESÍTÉS” részben keresse meg a következő sorokat:
accept_basic: true accept_digest: true default_to_digest: true domain_controller: null
Cserélje ki őket a következőkre:
accept_basic: true accept_digest: false default_to_digest: false domain_controller: wsgidav.dc.pam_dc.PAMDomainController
Most már tesztelheti szerverét:
sudo wsgidav -c /usr/local/etc/wsgidav.yaml
Nyissa https://dav.example.com:8080/meg a böngészőjében. Mivel mi konfiguráltuk a PAM hitelesítést, be kell jelentkeznie Linux felhasználói fiókjával. A CTRL+ Cgombbal állítsa le a szervert a folytatás előtt.
Telepítés szolgáltatásként
Ha a WebDAV-kiszolgálót a systemd által kezelt rendszerszolgáltatásként szeretné futtatni, hozzon létre egy egységfájlt:
sudo $EDITOR /etc/systemd/system/wsgidav.service
Írd be a következőt:
[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
Ezután hozzon létre egy konfigurációs fájlt a rendszernaplózási szolgáltatáshoz:
sudo $EDITOR /etc/rsyslog.d/wsgidav_service.conf
Töltse ki a fájlt a következőkkel:
if $programname == 'wsgidav_service' then /var/log/wsgidav.log & stop
Mentse el és lépjen ki, majd használja az alábbi parancsokat a naplófájl létrehozásához:
sudo touch /var/log/wsgidav.log sudo chown root:adm /var/log/wsgidav.log
Végül töltse be az új systemd unit fájlt, és indítsa újra a naplózási szolgáltatást a WsgiDAV elindítása előtt:
sudo systemctl daemon-reload sudo systemctl restart rsyslog.service sudo systemctl start wsgidav.service
Mostantól systemctlelindíthatja, leállíthatja és újraindíthatja a WebDAV-kiszolgálót. A WsgiDAV szabványos kimenete és hibája a következő helyen lesz naplózva /var/log/wsgidav.log, és a segítségével is elérhető sudo journalctl -u wsgidav.service.
Ha azt szeretné, hogy a WebDAV szerver automatikusan elinduljon a rendszerindításkor, hajtsa végre a következőt:
sudo systemctl enable wsgidav.service
További irodalom