Prezantimi
Autorizimi dhe Versionimi i Shpërndar i Uebit (WebDAV) është një shtesë HTTP që ofron një kornizë për krijimin dhe modifikimin e skedarëve nga distanca në një server. WsgiDAV është një server WebDAV i shkruar në python. Ky udhëzues do t'ju ndihmojë gjatë instalimit të versionit 3.0 të WsgiDAV në një server Vultr që ekzekuton Debian 10. Ne gjithashtu do të marrim një certifikatë SSL për të siguruar një lidhje të sigurt, si dhe vërtetim PAM.
Parakushtet
- Një sistem Debian 10 në të cilin keni akses të privilegjuar (nëpërmjet përdoruesit rrënjë ose ndonjë përdoruesi sudo.)
$EDITOR
Variabël mjedisi duhet të jetë vendosur në një editor teksti të zgjedhjes suaj.
- Kërkohet një emër domaini i regjistruar. Serverët e tij të emrave duhet të konfigurohen me një
A
rekord që tregon adresën IPv4 të serverit tuaj, dhe opsionalisht një AAAA
rekord që tregon adresën IPv6.
- Rekomandohet njohja me sintaksën YAML.
Vendmbajtësi dav.example.com
do të përdoret për emrin e domenit të serverit tuaj.
Instalimi
Certifikata SSL
Ne do të fillojmë duke përditësuar sistemin dhe duke marrë një certifikatë SSL falas nga Let's Encrypt . Për ta bërë këtë, së pari përditësoni sistemin tuaj dhe instaloni programin certbot
:
sudo apt update sudo apt upgrade -y sudo apt install -y certbot
Në komandën e mëposhtme, zëvendësoni dav.example.com
dhe [email protected]
me emrin e domenit tuaj dhe adresën e emailit përkatësisht përpara se ta ekzekutoni:
sudo certbot certonly --standalone --agree-tos -m [email protected] -d dav.example.com
Serverit tuaj do t'i dërgohet një sfidë për të verifikuar që ju kontrolloni emrin e domenit të specifikuar. Nëse ka sukses, certifikata do të lëshohet dhe ruhet, së bashku me skedarë të tjerë si çelësi privat, nën /etc/letsencrypt/live/dav.example.com/
.
Duke instaluar WsgiDAV
Së pari, instaloni menaxherin e paketave python pip
:
sudo apt update sudo apt install -y python3-pip
WsgiDAV kërkon një server HTTP që mbështet WSGI. Ne do të instalojmë opsionin e paracaktuar, i cili është Cheroot. Ne do të instalojmë gjithashtu bibliotekën lxml python, e cila tenton të performojë më mirë se biblioteka XML e instaluar si parazgjedhje. Nevojitet gjithashtu biblioteka PAM (Moduli i Autentifikimit të Pluggable) python3. Instaloni paketat e kërkuara duke përdorur pip
mjetin:
sudo pip3 install wsgidav cheroot lxml python-pam
Konfigurimi i WsgiDAV
Ekzekutuesi WsgiDAV ruhet në /usr/local/bin
, kështu që ne do ta vendosim skedarin e konfigurimit në /usr/local/etc
drejtori. Shkarkoni skedarin e konfigurimit të mostrës me komandat e mëposhtme:
sudo mkdir -p /usr/local/etc sudo wget https://github.com/mar10/wsgidav/raw/master/sample_wsgidav.yaml -O /usr/local/etc/wsgidav.yaml
Hapeni atë me redaktorin tuaj:
sudo $EDITOR /usr/local/etc/wsgidav.yaml
Gjeni linjat e mëposhtme në seksionin "Mbështetje SSL":
# ssl_certificate: "wsgidav/server/sample_bogo_server.crt" # ssl_private_key: "wsgidav/server/sample_bogo_server.key" # ssl_certificate_chain: null
Zëvendësoni ato me sa vijon:
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"
Më pas, ne do të konfigurojmë shtigjet e ndarjes duke hartuar shtigjet HTTP (si p.sh. /
) në vendndodhjet përkatëse në sistemin e skedarëve (si p.sh. /var/www/dir1
). Për qëllime demonstrimi, ne do të ndajmë dy drejtori, njëra prej të cilave do të jetë vetëm për lexim. Gjeni provider_mapping
bllokun në seksionin "SHARES":
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}
Zëvendësojeni:
provider_mapping: "/": root: "/var/www/html/documents" readonly: false "/reports": root: "/var/www/html/reports" readonly: true
Me këto mapping, https://dav.example.com:8080/
do të korrespondojnë me /var/www/html/documents
direktoriumin në server, ndërsa https://dav.example.com:8080/reports
do të hartohen /var/www/html/reports
me pa qasje shkrimi.
Për vërtetim, ne do të përdorim drejtuesin PAM. Kjo heq nevojën për llogari të veçanta të përdoruesve të WebDAV dhe lejon përdoruesit e sistemit të identifikohen duke përdorur kredencialet e tyre të zakonshme.
Në seksionin "AUTENTIKIMI", gjeni këto rreshta:
accept_basic: true accept_digest: true default_to_digest: true domain_controller: null
Zëvendësoni ato me sa vijon:
accept_basic: true accept_digest: false default_to_digest: false domain_controller: wsgidav.dc.pam_dc.PAMDomainController
Tani mund të testoni serverin tuaj:
sudo wsgidav -c /usr/local/etc/wsgidav.yaml
Hapeni https://dav.example.com:8080/
në shfletuesin tuaj të internetit. Meqenëse ne konfiguruam vërtetimin PAM, do t'ju duhet të identifikoheni me llogarinë tuaj të përdoruesit Linux. Përdorni CTRL+ Cpër të ndaluar serverin përpara se të vazhdoni.
Instalimi si shërbim
Për të ekzekutuar serverin tuaj WebDAV si një shërbim sistemi i menaxhuar nga systemd, krijoni një skedar njësi:
sudo $EDITOR /etc/systemd/system/wsgidav.service
Futni sa vijon:
[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
Pastaj krijoni një skedar konfigurimi për shërbimin e regjistrimit të sistemit:
sudo $EDITOR /etc/rsyslog.d/wsgidav_service.conf
Plotësoni skedarin me sa vijon:
if $programname == 'wsgidav_service' then /var/log/wsgidav.log & stop
Ruani dhe dilni, më pas përdorni komandat më poshtë për të krijuar skedarin e regjistrit:
sudo touch /var/log/wsgidav.log sudo chown root:adm /var/log/wsgidav.log
Më në fund, ngarkoni skedarin e ri të njësisë systemd dhe rinisni shërbimin e regjistrimit përpara se të filloni WsgiDAV:
sudo systemctl daemon-reload sudo systemctl restart rsyslog.service sudo systemctl start wsgidav.service
Tani mund ta përdorni systemctl
për të nisur, ndaluar dhe rifilluar serverin tuaj WebDAV. Dalja standarde dhe gabimi i WsgiDAV do të regjistrohen në /var/log/wsgidav.log
, dhe gjithashtu mund të aksesohen duke përdorur sudo journalctl -u wsgidav.service
.
Nëse dëshironi që serveri WebDAV të fillojë automatikisht në kohën e nisjes së sistemit, ekzekutoni:
sudo systemctl enable wsgidav.service
Leximi më tej