Uvod
Web Distributed Authoring and Versioning (WebDAV) je HTTP proširenje koje pruža okvir za daljinsko kreiranje i modificiranje datoteka na poslužitelju. WsgiDAV je WebDAV poslužitelj napisan na pythonu. Ovaj vodič će vam pomoći u instalaciji WsgiDAV verzije 3.0 na Vultr poslužitelj koji radi s Debianom 10. Također ćemo dobiti SSL certifikat za sigurnu vezu kao i PAM autentifikaciju.
Preduvjeti
- Debian 10 sustav kojemu imate privilegirani pristup (putem root korisnika ili bilo kojeg sudo korisnika.)
$EDITORVarijabla okruženja mora biti postavljen na uređivanje teksta po vlastitom izboru.
- Potreban je registrirani naziv domene. Njegovi poslužitelji imena moraju biti konfigurirani sa
Azapisom koji upućuje na IPv4 adresu vašeg poslužitelja i opcijski AAAAzapisom koji upućuje na IPv6 adresu.
- Preporuča se poznavanje YAML sintakse.
Rezervirano mjesto dav.example.comće se koristiti za naziv domene vašeg poslužitelja.
Montaža
SSL certifikat
Započet ćemo ažuriranjem sustava i dobivanjem besplatnog SSL certifikata od Let's Encrypt . Da biste to učinili, prvo ažurirajte svoj sustav i instalirajte certbotuslužni program:
sudo apt update sudo apt upgrade -y sudo apt install -y certbot
U donjoj naredbi zamijenite dav.example.comi email@domain.tldsa svojim imenom domene i adresom e-pošte prije nego što je izvršite:
sudo certbot certonly --standalone --agree-tos -m email@domain.tld -d dav.example.com
Vašem poslužitelju će biti poslan izazov da potvrdi da kontrolirate navedeni naziv domene. Ako uspije, certifikat će se izdati i spremiti, zajedno s drugim datotekama kao što je privatni ključ, pod /etc/letsencrypt/live/dav.example.com/.
Instalacija WsgiDAV
Prvo instalirajte python upravitelj paketa pip:
sudo apt update sudo apt install -y python3-pip
WsgiDAV zahtijeva HTTP poslužitelj koji podržava WSGI. Instalirat ćemo zadanu opciju, a to je Cheroot. Također ćemo instalirati lxml python biblioteku, koja obično radi bolje od XML biblioteke instalirane prema zadanim postavkama. Potrebna je i PAM (Pluggable Authentication Module) biblioteka python3. Instalirajte potrebne pakete pomoću pipalata:
sudo pip3 install wsgidav cheroot lxml python-pam
Konfiguriranje WsgiDAV-a
Izvršna datoteka WsgiDAV pohranjena je u /usr/local/bin, pa ćemo konfiguracijsku datoteku smjestiti u /usr/local/etcdirektorij. Preuzmite uzorak konfiguracijske datoteke sa sljedećim naredbama:
sudo mkdir -p /usr/local/etc sudo wget https://github.com/mar10/wsgidav/raw/master/sample_wsgidav.yaml -O /usr/local/etc/wsgidav.yaml
Otvorite ga svojim urednikom:
sudo $EDITOR /usr/local/etc/wsgidav.yaml
Pronađite sljedeće retke u odjeljku "SSL podrška":
# ssl_certificate: "wsgidav/server/sample_bogo_server.crt" # ssl_private_key: "wsgidav/server/sample_bogo_server.key" # ssl_certificate_chain: null
Zamijenite ih sljedećim:
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"
Zatim ćemo konfigurirati dijeljene staze mapiranjem HTTP staza (kao što je /) na odgovarajuće lokacije u datotečnom sustavu (kao što je /var/www/dir1). Za potrebe demonstracije podijelit ćemo dva direktorija, od kojih će jedan biti samo za čitanje. Pronađite provider_mappingblok u odjeljku "DIONICE":
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}
Zamijenite ga:
provider_mapping: "/": root: "/var/www/html/documents" readonly: false "/reports": root: "/var/www/html/reports" readonly: true
S tim preslikavanjima, https://dav.example.com:8080/odgovarat će /var/www/html/documentsdirektoriju na poslužitelju, dok https://dav.example.com:8080/reportsće se /var/www/html/reportsmapirati bez pristupa za pisanje.
Za autentifikaciju ćemo koristiti PAM drajver. To uklanja potrebu za zasebnim WebDAV korisničkim računima i omogućuje korisnicima sustava da se prijave koristeći svoje uobičajene vjerodajnice.
U odjeljku "AUTHENTICATION" pronađite ove retke:
accept_basic: true accept_digest: true default_to_digest: true domain_controller: null
Zamijenite ih sljedećim:
accept_basic: true accept_digest: false default_to_digest: false domain_controller: wsgidav.dc.pam_dc.PAMDomainController
Sada možete testirati svoj poslužitelj:
sudo wsgidav -c /usr/local/etc/wsgidav.yaml
Otvorite https://dav.example.com:8080/u svom web pregledniku. Budući da smo konfigurirali PAM autentifikaciju, morat ćete se prijaviti sa svojim Linux korisničkim računom. Koristite CTRL+ Cza zaustavljanje poslužitelja prije nego što nastavite.
Instalacija kao usluga
Da biste pokrenuli svoj WebDAV poslužitelj kao sistemsku uslugu kojom upravlja systemd, stvorite jediničnu datoteku:
sudo $EDITOR /etc/systemd/system/wsgidav.service
Unesite sljedeće:
[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
Zatim stvorite konfiguracijsku datoteku za uslugu zapisivanja sustava:
sudo $EDITOR /etc/rsyslog.d/wsgidav_service.conf
Popunite datoteku sljedećim:
if $programname == 'wsgidav_service' then /var/log/wsgidav.log & stop
Spremite i izađite, a zatim upotrijebite donje naredbe za stvaranje datoteke dnevnika:
sudo touch /var/log/wsgidav.log sudo chown root:adm /var/log/wsgidav.log
Konačno, učitajte novu systemd jediničnu datoteku i ponovno pokrenite uslugu zapisivanja prije pokretanja WsgiDAV:
sudo systemctl daemon-reload sudo systemctl restart rsyslog.service sudo systemctl start wsgidav.service
Sada možete koristiti systemctlza pokretanje, zaustavljanje i ponovno pokretanje vašeg WebDAV poslužitelja. Standardni izlaz i pogreška WsgiDAV-a bit će zabilježeni na /var/log/wsgidav.log, a također im se može pristupiti pomoću sudo journalctl -u wsgidav.service.
Ako želite da se WebDAV poslužitelj automatski pokrene u vrijeme pokretanja sustava, izvršite:
sudo systemctl enable wsgidav.service
Daljnje čitanje