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