Menyebarkan WebDAV pada Debian 10 menggunakan WsgiDAV

Pengenalan

Web Distributed Authoring and Versioning (WebDAV) adalah sambungan HTTP yang menyediakan rangka kerja untuk membuat dan mengubah suai fail pada pelayan jauh. WsgiDAV adalah pelayan WebDAV yang ditulis dalam python. Panduan ini akan membantu anda melalui pemasangan versi WsgiDAV 3.0 pada pelayan Vultr yang menjalankan Debian 10. Kami juga akan mendapatkan sijil SSL untuk menyediakan sambungan selamat serta pengesahan PAM.

Prasyarat

  • Sistem Debian 10 di mana anda mempunyai akses istimewa (melalui pengguna root atau pengguna sudo.)
  • The $EDITORvariabel persekitaran mesti ditetapkan kepada editor teks pilihan anda.
  • Nama domain berdaftar diperlukan. APelayan nama harus dikonfigurasikan dengan rekod yang menunjuk ke alamat IPv4 pelayan anda, dan secara pilihannya sebuah AAAArekod menunjuk ke alamat IPv6.
  • Dikehendaki mengenali sintaks YAML.

Tempat letak dav.example.comakan digunakan untuk nama domain pelayan anda.

Pemasangan

Sijil SSL

Kami akan mula dengan mengemas kini sistem dan mendapatkan sijil SSL percuma dari Let's Encrypt . Untuk berbuat demikian, mula-mula mengemas kini sistem anda dan pasang certbotutiliti:

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

Dalam arahan di bawah, ganti dav.example.comdan [email protected]dengan nama domain dan alamat e-mel masing-masing sebelum melaksanakannya:

sudo certbot certonly --standalone --agree-tos -m [email protected] -d dav.example.com

Pelayan anda akan dihantar satu cabaran untuk mengesahkan bahawa anda mengawal nama domain yang ditentukan. Sekiranya berjaya, sijil akan dikeluarkan dan disimpan, bersama dengan fail lain seperti kunci peribadi, di bawah /etc/letsencrypt/live/dav.example.com/.

Memasang WsgiDAV

Pertama, pasangkan pengurus pakej python pip:

sudo apt update
sudo apt install -y python3-pip

WsgiDAV memerlukan pelayan HTTP yang menyokong WSGI. Kami akan memasang pilihan lalai, iaitu Cheroot. Kami juga akan memasang perpustakaan python lxml, yang cenderung untuk berfungsi dengan lebih baik daripada pustaka XML yang dipasang secara lalai. Perpustakaan python3 PAM (Pluggable Authentication Module) juga diperlukan. Pasang pakej yang diperlukan menggunakan pipalat:

sudo pip3 install wsgidav cheroot lxml python-pam

Mengkonfigurasi WsgiDAV

WsgiDAV yang dapat dieksekusi disimpan /usr/local/bin, jadi kami akan meletakkan fail konfigurasi di dalam /usr/local/etcdirektori. Muat turun fail konfigurasi sampel dengan arahan berikut:

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

Buka dengan editor anda:

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

Cari baris berikut di bahagian "Sokongan SSL":

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

Gantikan mereka dengan yang berikut:

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"

Seterusnya, kami akan mengkonfigurasi jalur kongsi dengan memetakan jalur HTTP (seperti /) ke lokasi yang sesuai pada sistem fail (seperti /var/www/dir1). Untuk tujuan demonstrasi, kami akan berkongsi dua direktori, salah satunya akan dibaca sahaja. Cari provider_mappingblok di bahagian "SAHAM":

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}

Gantikannya:

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

Dengan pemetaan ini, https://dav.example.com:8080/akan sesuai dengan /var/www/html/documentsdirektori di pelayan, sementara https://dav.example.com:8080/reportsakan dipetakan /var/www/html/reportsdengan tanpa akses tulis.

Untuk pengesahan, kami akan menggunakan pemandu PAM. Ini menghilangkan keperluan untuk akaun pengguna WebDAV yang berasingan dan membolehkan pengguna sistem log masuk menggunakan bukti kelayakan mereka yang biasa.

Dalam bahagian "AUTHENTICATION", cari baris ini:

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

Gantikan mereka dengan yang berikut:

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

Anda kini boleh menguji pelayan anda:

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

Buka https://dav.example.com:8080/dalam pelayar web anda. Oleh kerana kami mengkonfigurasi pengesahan PAM, anda perlu log masuk dengan akaun pengguna Linux anda. Gunakan CTRL+ Cuntuk menghentikan pelayan sebelum meneruskan.

Memasang sebagai perkhidmatan

Untuk menjalankan pelayan WebDAV anda sebagai perkhidmatan sistem yang dikendalikan oleh systemd, buat fail unit:

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

Sila isikan:

[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

Kemudian buat fail konfigurasi untuk perkhidmatan pembalakan sistem:

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

Tandakan fail dengan yang berikut:

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

Simpan dan keluar, kemudian gunakan arahan di bawah untuk mencipta fail log:

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

Akhirnya, muatkan fail unit sistemd baru dan mulakan semula perkhidmatan pembalakan sebelum memulakan WsgiDAV:

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

Kini anda boleh gunakan systemctluntuk memulakan, menghentikan dan memulakan semula pelayan WebDAV anda. Keluaran dan kesilapan standard WsgiDAV akan dilog masuk /var/log/wsgidav.log, dan juga boleh diakses menggunakan sudo journalctl -u wsgidav.service.

Sekiranya anda mahu pelayan WebDAV dimulakan secara automatik pada waktu boot sistem, jalankan:

 sudo systemctl enable wsgidav.service

Bacaan lanjut



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut