Distribuere WebDAV på Debian 10 ved å bruke WsgiDAV

Introduksjon

Web Distributed Authoring and Versioning (WebDAV) er en HTTP-utvidelse som gir et rammeverk for eksternt opprettelse og endring av filer på en server. WsgiDAV er en WebDAV-server skrevet i python. Denne guiden vil hjelpe deg gjennom installasjonen av WsgiDAV versjon 3.0 på en Vultr-server som kjører Debian 10. Vi vil også få et SSL-sertifikat for å gi en sikker tilkobling samt PAM-autentisering.

Forutsetninger

  • Et Debian 10-system som du har privilegert tilgang til (via root-brukeren eller en hvilken som helst sudo-bruker.)
  • Den $EDITORmiljøvariabelen må settes til en tekst editor av ditt valg.
  • Et registrert domenenavn kreves. Navneserverne må konfigureres med en Apost som peker til serverens IPv4-adresse, og eventuelt en AAAApost som peker til IPv6-adressen.
  • Kjennskap til YAML-syntaksen anbefales.

Plassholderen dav.example.comvil bli brukt for serverens domenenavn.

Installasjon

SSL-sertifikat

Vi starter med å oppdatere systemet og få et gratis SSL-sertifikat fra Let's Encrypt . For å gjøre det, oppdater først systemet og installer certbotverktøyet:

sudo apt update sudo apt upgrade -y sudo apt install -y certbot

I kommandoen nedenfor, erstatt dav.example.comog email@domain.tldmed ditt domenenavn og e-postadresse før du utfører det:

sudo certbot certonly --standalone --agree-tos -m email@domain.tld -d dav.example.com

Serveren din vil få tilsendt en utfordring for å bekrefte at du kontrollerer domenenavnet som er spesifisert. Hvis det lykkes, vil sertifikatet bli utstedt og lagret, sammen med andre filer som den private nøkkelen, under /etc/letsencrypt/live/dav.example.com/.

Installerer WsgiDAV

Installer først python-pakkebehandlingen pip:

sudo apt update sudo apt install -y python3-pip

WsgiDAV krever en HTTP-server som støtter WSGI. Vi vil installere standardalternativet, som er Cheroot. Vi vil også installere lxml python-biblioteket, som har en tendens til å yte bedre enn XML-biblioteket som er installert som standard. PAM (Pluggable Authentication Module) python3-biblioteket er også nødvendig. Installer de nødvendige pakkene ved å bruke pipverktøyet:

sudo pip3 install wsgidav cheroot lxml python-pam

Konfigurerer WsgiDAV

Den kjørbare WsgiDAV-filen er lagret i /usr/local/bin, så vi vil plassere konfigurasjonsfilen i /usr/local/etckatalogen. Last ned eksempelkonfigurasjonsfilen med følgende kommandoer:

sudo mkdir -p /usr/local/etc sudo wget https://github.com/mar10/wsgidav/raw/master/sample_wsgidav.yaml -O /usr/local/etc/wsgidav.yaml

Åpne den med redaktøren din:

sudo $EDITOR /usr/local/etc/wsgidav.yaml

Finn følgende linjer i "SSL Support"-delen:

# ssl_certificate: "wsgidav/server/sample_bogo_server.crt" # ssl_private_key: "wsgidav/server/sample_bogo_server.key" # ssl_certificate_chain: null

Erstatt dem med følgende:

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"

Deretter vil vi konfigurere delingsbanene ved å kartlegge HTTP-baner (som /) til tilsvarende plasseringer på filsystemet (som /var/www/dir1). For demonstrasjonsformål deler vi to kataloger, hvorav den ene vil være skrivebeskyttet. Finn provider_mappingblokken i delen "DELER":

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}

Erstatt det:

provider_mapping: "/": root: "/var/www/html/documents" readonly: false "/reports": root: "/var/www/html/reports" readonly: true

Med disse tilordningene, https://dav.example.com:8080/vil korrespondere med /var/www/html/documentskatalogen på serveren, mens https://dav.example.com:8080/reportsvil kartlegge til /var/www/html/reportsuten skrivetilgang.

For autentisering bruker vi PAM-driveren. Dette fjerner behovet for separate WebDAV-brukerkontoer og lar systembrukere logge på med deres vanlige legitimasjon.

Finn disse linjene i delen AUTENTISERING:

accept_basic: true accept_digest: true default_to_digest: true domain_controller: null

Erstatt dem med følgende:

accept_basic: true accept_digest: false default_to_digest: false domain_controller: wsgidav.dc.pam_dc.PAMDomainController

Du kan nå teste serveren din:

sudo wsgidav -c /usr/local/etc/wsgidav.yaml

Åpne https://dav.example.com:8080/i nettleseren din. Siden vi konfigurerte PAM-autentisering, må du logge på med Linux-brukerkontoen din. Bruk CTRL+ for Cå stoppe serveren før du fortsetter.

Installasjon som en tjeneste

For å kjøre WebDAV-serveren din som en systemtjeneste administrert av systemd, opprett en enhetsfil:

sudo $EDITOR /etc/systemd/system/wsgidav.service

Skriv inn følgende:

[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

Deretter oppretter du en konfigurasjonsfil for systemloggingstjenesten:

sudo $EDITOR /etc/rsyslog.d/wsgidav_service.conf

Fyll filen med følgende:

if $programname == 'wsgidav_service' then /var/log/wsgidav.log & stop

Lagre og avslutt, bruk deretter kommandoene nedenfor for å lage loggfilen:

sudo touch /var/log/wsgidav.log sudo chown root:adm /var/log/wsgidav.log

Last til slutt den nye systemd-enhetsfilen og start loggingstjenesten på nytt før du starter WsgiDAV:

sudo systemctl daemon-reload sudo systemctl restart rsyslog.service sudo systemctl start wsgidav.service

Du kan nå bruke systemctltil å starte, stoppe og starte WebDAV-serveren på nytt. WsgiDAVs standardutgang og feil vil bli logget til /var/log/wsgidav.log, og kan også nås ved å bruke sudo journalctl -u wsgidav.service.

Hvis du vil at WebDAV-serveren skal starte automatisk ved systemets oppstartstid, kjør:

sudo systemctl enable wsgidav.service

Videre lesning

Legg igjen en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer