Introducció
Web Distributed Authoring and Versioning (WebDAV) és una extensió HTTP que proporciona un marc per crear i modificar fitxers de forma remota en un servidor. WsgiDAV és un servidor WebDAV escrit en Python. Aquesta guia us ajudarà amb la instal·lació de la versió 3.0 de WsgiDAV en un servidor Vultr amb Debian 10. També obtindrem un certificat SSL per proporcionar una connexió segura així com l'autenticació PAM.
Requisits previs
- Un sistema Debian 10 al qual teniu accés privilegiat (mitjançant l'usuari root o qualsevol usuari sudo).
- La
$EDITORvariable d'entorn s'ha d'establir en un editor de text que escolliu.
- Es requereix un nom de domini registrat. Els seus servidors de noms s'han de configurar amb un
Aregistre que apunti a l'adreça IPv4 del vostre servidor i, opcionalment, un AAAAregistre que apunti a l'adreça IPv6.
- Es recomana familiaritzar-se amb la sintaxi YAML.
El marcador de posició dav.example.coms'utilitzarà per al nom de domini del vostre servidor.
Instal·lació
Certificat SSL
Començarem actualitzant el sistema i obtenint un certificat SSL gratuït de Let's Encrypt . Per fer-ho, primer actualitzeu el vostre sistema i instal·leu la certbotutilitat:
sudo apt update sudo apt upgrade -y sudo apt install -y certbot
A l'ordre següent, substituïu dav.example.comi email@domain.tldpel vostre nom de domini i adreça de correu electrònic respectivament abans d'executar-lo:
sudo certbot certonly --standalone --agree-tos -m email@domain.tld -d dav.example.com
El vostre servidor rebrà un repte per verificar que controleu el nom de domini especificat. Si té èxit, el certificat s'emetrà i es desarà, juntament amb altres fitxers, com ara la clau privada, a /etc/letsencrypt/live/dav.example.com/.
S'està instal·lant WsgiDAV
Primer, instal·leu el gestor de paquets Python pip:
sudo apt update sudo apt install -y python3-pip
WsgiDAV requereix un servidor HTTP que admeti WSGI. Instal·larem l'opció per defecte, que és Cheroot. També instal·larem la biblioteca lxml python, que acostuma a funcionar millor que la biblioteca XML instal·lada per defecte. També es necessita la biblioteca PAM (Pluggable Authentication Module) python3. Instal·leu els paquets necessaris amb l' pipeina:
sudo pip3 install wsgidav cheroot lxml python-pam
Configuració de WsgiDAV
L'executable WsgiDAV s'emmagatzema a /usr/local/bin, així que col·locarem el fitxer de configuració al /usr/local/etcdirectori. Baixeu el fitxer de configuració de mostra amb les ordres següents:
sudo mkdir -p /usr/local/etc sudo wget https://github.com/mar10/wsgidav/raw/master/sample_wsgidav.yaml -O /usr/local/etc/wsgidav.yaml
Obriu-lo amb el vostre editor:
sudo $EDITOR /usr/local/etc/wsgidav.yaml
Cerqueu les línies següents a la secció "Suport SSL":
# ssl_certificate: "wsgidav/server/sample_bogo_server.crt" # ssl_private_key: "wsgidav/server/sample_bogo_server.key" # ssl_certificate_chain: null
Substituïu-los pel següent:
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"
A continuació, configurarem els camins de compartició assignant camins HTTP (com ara /) a les ubicacions corresponents del sistema de fitxers (com ara /var/www/dir1). Amb finalitats de demostració, compartirem dos directoris, un dels quals serà de només lectura. Busca el provider_mappingbloc a la secció "COMPARTIR":
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}
Substituïu-lo:
provider_mapping: "/": root: "/var/www/html/documents" readonly: false "/reports": root: "/var/www/html/reports" readonly: true
Amb aquests mapes, https://dav.example.com:8080/es correspondrà amb el /var/www/html/documentsdirectori del servidor, mentre https://dav.example.com:8080/reportsque s'assignarà a /var/www/html/reportssense accés d'escriptura.
Per a l'autenticació, utilitzarem el controlador PAM. Això elimina la necessitat de comptes d'usuari WebDAV separats i permet als usuaris del sistema iniciar sessió amb les seves credencials habituals.
A la secció "AUTENTICACIÓ", cerqueu aquestes línies:
accept_basic: true accept_digest: true default_to_digest: true domain_controller: null
Substituïu-los pel següent:
accept_basic: true accept_digest: false default_to_digest: false domain_controller: wsgidav.dc.pam_dc.PAMDomainController
Ara podeu provar el vostre servidor:
sudo wsgidav -c /usr/local/etc/wsgidav.yaml
Obre https://dav.example.com:8080/al teu navegador web. Com que hem configurat l'autenticació PAM, haureu d'iniciar sessió amb el vostre compte d'usuari de Linux. Feu servir CTRL+ Cper aturar el servidor abans de continuar.
Instal·lació com a servei
Per executar el vostre servidor WebDAV com a servei del sistema gestionat per systemd, creeu un fitxer d'unitat:
sudo $EDITOR /etc/systemd/system/wsgidav.service
Introdueixi la següent:
[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
A continuació, creeu un fitxer de configuració per al servei de registre del sistema:
sudo $EDITOR /etc/rsyslog.d/wsgidav_service.conf
Omple el fitxer amb el següent:
if $programname == 'wsgidav_service' then /var/log/wsgidav.log & stop
Deseu i sortiu i, a continuació, utilitzeu les ordres següents per crear el fitxer de registre:
sudo touch /var/log/wsgidav.log sudo chown root:adm /var/log/wsgidav.log
Finalment, carregueu el nou fitxer d'unitat systemd i reinicieu el servei de registre abans d'iniciar WsgiDAV:
sudo systemctl daemon-reload sudo systemctl restart rsyslog.service sudo systemctl start wsgidav.service
Ara podeu utilitzar systemctlper iniciar, aturar i reiniciar el vostre servidor WebDAV. La sortida estàndard i l'error de WsgiDAV es registraran a /var/log/wsgidav.log, i també es pot accedir mitjançant sudo journalctl -u wsgidav.service.
Si voleu que el servidor WebDAV s'iniciï automàticament en el moment de l'arrencada del sistema, executeu:
sudo systemctl enable wsgidav.service
Per llegir més