Ανάπτυξη WebDAV στο Debian 10 χρησιμοποιώντας το WsgiDAV

Εισαγωγή

Web Distributed Authoring and Versioning (WebDAV) είναι μια επέκταση HTTP που παρέχει ένα πλαίσιο για απομακρυσμένη δημιουργία και τροποποίηση αρχείων σε έναν διακομιστή. Ο WsgiDAV είναι ένας διακομιστής WebDAV γραμμένος σε python. Αυτός ο οδηγός θα σας βοηθήσει κατά την εγκατάσταση της έκδοσης 3.0 του WsgiDAV σε διακομιστή Vultr που εκτελεί το Debian 10. Θα λάβουμε επίσης ένα πιστοποιητικό SSL για την παροχή ασφαλούς σύνδεσης καθώς και έλεγχο ταυτότητας PAM.

Προαπαιτούμενα

  • Ένα σύστημα Debian 10 στο οποίο έχετε προνομιακή πρόσβαση (μέσω του χρήστη root ή οποιουδήποτε χρήστη sudo.)
  • Η $EDITORμεταβλητή περιβάλλοντος πρέπει να οριστεί σε ένα πρόγραμμα επεξεργασίας κειμένου της επιλογής σας.
  • Απαιτείται ένα καταχωρημένο όνομα τομέα. Οι διακομιστές ονομάτων του πρέπει να διαμορφωθούν με μια Aεγγραφή που να δείχνει τη διεύθυνση IPv4 του διακομιστή σας και προαιρετικά μια AAAAεγγραφή που να δείχνει τη διεύθυνση IPv6.
  • Συνιστάται η εξοικείωση με τη σύνταξη YAML.

Το σύμβολο κράτησης θέσης dav.example.comθα χρησιμοποιηθεί για το όνομα τομέα του διακομιστή σας.

Εγκατάσταση

Πιστοποιητικό SSL

Θα ξεκινήσουμε με την ενημέρωση του συστήματος και την απόκτηση ενός δωρεάν πιστοποιητικού SSL από το Let's Encrypt . Για να το κάνετε αυτό, ενημερώστε πρώτα το σύστημά σας και εγκαταστήστε το certbotβοηθητικό πρόγραμμα:

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

Στην παρακάτω εντολή, αντικαταστήστε dav.example.comκαι [email protected]με το όνομα τομέα και τη διεύθυνση email σας αντίστοιχα πριν την εκτελέσετε:

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

Θα σταλεί στον διακομιστή σας μια πρόκληση για να επαληθευτεί ότι ελέγχετε το όνομα τομέα που καθορίσατε. Εάν επιτύχει, το πιστοποιητικό θα εκδοθεί και θα αποθηκευτεί, μαζί με άλλα αρχεία, όπως το ιδιωτικό κλειδί, στο /etc/letsencrypt/live/dav.example.com/.

Εγκατάσταση του WsgiDAV

Πρώτα, εγκαταστήστε τον διαχειριστή πακέτων python pip:

sudo apt update sudo apt install -y python3-pip

Το WsgiDAV απαιτεί διακομιστή HTTP που υποστηρίζει WSGI. Θα εγκαταστήσουμε την προεπιλεγμένη επιλογή, που είναι το Cheroot. Θα εγκαταστήσουμε επίσης τη βιβλιοθήκη lxml python, η οποία τείνει να αποδίδει καλύτερα από τη βιβλιοθήκη XML που είναι εγκατεστημένη από προεπιλογή. Απαιτείται επίσης η βιβλιοθήκη python3 PAM (Pluggable Authentication Module). Εγκαταστήστε τα απαιτούμενα πακέτα χρησιμοποιώντας το pipεργαλείο:

sudo pip3 install wsgidav cheroot lxml python-pam

Διαμόρφωση του WsgiDAV

Το εκτελέσιμο αρχείο WsgiDAV είναι αποθηκευμένο στο /usr/local/bin, οπότε θα τοποθετήσουμε το αρχείο διαμόρφωσης στον /usr/local/etcκατάλογο. Κάντε λήψη του δείγματος αρχείου διαμόρφωσης με τις ακόλουθες εντολές:

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

Ανοίξτε το με τον επεξεργαστή σας:

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

Βρείτε τις ακόλουθες γραμμές στην ενότητα "Υποστήριξη SSL":

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

Αντικαταστήστε τα με τα ακόλουθα:

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"

Στη συνέχεια, θα διαμορφώσουμε τις κοινές διαδρομές αντιστοιχίζοντας διαδρομές HTTP (όπως /) σε αντίστοιχες θέσεις στο σύστημα αρχείων (όπως /var/www/dir1). Για λόγους επίδειξης, θα μοιραστούμε δύο καταλόγους, ο ένας από τους οποίους θα είναι μόνο για ανάγνωση. Βρείτε το provider_mappingμπλοκ στην ενότητα "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}

Αντικατέστησέ το:

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

Με αυτές τις αντιστοιχίσεις, https://dav.example.com:8080/θα αντιστοιχεί στον /var/www/html/documentsκατάλογο του διακομιστή, ενώ https://dav.example.com:8080/reportsθα αντιστοιχιστεί σε /var/www/html/reportsχωρίς πρόσβαση εγγραφής.

Για έλεγχο ταυτότητας, θα χρησιμοποιήσουμε το πρόγραμμα οδήγησης PAM. Αυτό καταργεί την ανάγκη για ξεχωριστούς λογαριασμούς χρηστών WebDAV και επιτρέπει στους χρήστες του συστήματος να συνδεθούν χρησιμοποιώντας τα συνήθη διαπιστευτήριά τους.

Στην ενότητα "ΕΛΕΓΧΟΣ", βρείτε αυτές τις γραμμές:

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

Αντικαταστήστε τα με τα ακόλουθα:

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

Τώρα μπορείτε να δοκιμάσετε τον διακομιστή σας:

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

Ανοίξτε https://dav.example.com:8080/στο πρόγραμμα περιήγησής σας. Εφόσον διαμορφώσαμε τον έλεγχο ταυτότητας PAM, θα χρειαστεί να συνδεθείτε με τον λογαριασμό χρήστη Linux που διαθέτετε. Χρησιμοποιήστε το CTRL+ Cγια να σταματήσετε τον διακομιστή πριν συνεχίσετε.

Εγκατάσταση ως υπηρεσία

Για να εκτελέσετε τον διακομιστή WebDAV ως υπηρεσία συστήματος που διαχειρίζεται το systemd, δημιουργήστε ένα αρχείο μονάδας:

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

Εισάγετε τα ακόλουθα:

[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

Στη συνέχεια, δημιουργήστε ένα αρχείο διαμόρφωσης για την υπηρεσία καταγραφής συστήματος:

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

Συμπληρώστε το αρχείο με τα εξής:

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

Αποθήκευση και έξοδος και, στη συνέχεια, χρησιμοποιήστε τις παρακάτω εντολές για να δημιουργήσετε το αρχείο καταγραφής:

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

Τέλος, φορτώστε το νέο αρχείο μονάδας systemd και επανεκκινήστε την υπηρεσία καταγραφής πριν ξεκινήσετε το WsgiDAV:

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

Τώρα μπορείτε να το χρησιμοποιήσετε systemctlγια να ξεκινήσετε, να σταματήσετε και να επανεκκινήσετε τον διακομιστή WebDAV. Η τυπική έξοδος και το σφάλμα του WsgiDAV θα καταγραφούν στο /var/log/wsgidav.logκαι μπορούν επίσης να προσπελαστούν χρησιμοποιώντας το sudo journalctl -u wsgidav.service.

Εάν θέλετε ο διακομιστής WebDAV να ξεκινά αυτόματα κατά την εκκίνηση του συστήματος, εκτελέστε:

sudo systemctl enable wsgidav.service

Περαιτέρω ανάγνωση


Πώς να ρυθμίσετε αναβαθμίσεις χωρίς παρακολούθηση στο Debian 9 (Stretch)

Πώς να ρυθμίσετε αναβαθμίσεις χωρίς παρακολούθηση στο Debian 9 (Stretch)

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εάν αγοράσετε έναν διακομιστή Debian, τότε θα πρέπει να έχετε πάντα τις πιο πρόσφατες ενημερώσεις κώδικα και ενημερώσεις, είτε κοιμάστε είτε όχι

Ρυθμίστε τον δικό σας διακομιστή DNS σε Debian/Ubuntu

Ρυθμίστε τον δικό σας διακομιστή DNS σε Debian/Ubuntu

Αυτό το σεμινάριο εξηγεί πώς να ρυθμίσετε έναν διακομιστή DNS χρησιμοποιώντας Bind9 σε Debian ή Ubuntu. Σε όλο το άρθρο, αντικαταστήστε το your-domain-name.com ανάλογα. Στο ου

Μεταγλώττιση και εγκατάσταση του Nginx με τη μονάδα PageSpeed ​​στο Debian 8

Μεταγλώττιση και εγκατάσταση του Nginx με τη μονάδα PageSpeed ​​στο Debian 8

Σε αυτό το άρθρο, θα δούμε πώς να μεταγλωττίσετε και να εγκαταστήσετε το Nginx mainline από τις επίσημες πηγές του Nginx με τη μονάδα PageSpeed, η οποία σας επιτρέπει να

Πώς να εγκαταστήσετε το Kanboard στο Debian 9

Πώς να εγκαταστήσετε το Kanboard στο Debian 9

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το Kanboard είναι ένα δωρεάν και ανοιχτού κώδικα πρόγραμμα λογισμικού διαχείρισης έργων που έχει σχεδιαστεί για να διευκολύνει και να οπτικοποιήσει

Πώς να εγκαταστήσετε το Gitea στο Debian 9

Πώς να εγκαταστήσετε το Gitea στο Debian 9

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Gitea είναι ένα εναλλακτικό ανοιχτού κώδικα, αυτο-φιλοξενούμενο σύστημα ελέγχου έκδοσης που υποστηρίζεται από το Git. Το Gitea είναι γραμμένο στα Golang και είναι

Εγκαταστήστε το Lynis στο Debian 8

Εγκαταστήστε το Lynis στο Debian 8

Εισαγωγή Το Lynis είναι ένα δωρεάν, ανοιχτού κώδικα εργαλείο ελέγχου συστήματος που χρησιμοποιείται από πολλούς διαχειριστές συστημάτων για την επαλήθευση της ακεραιότητας και τη σκλήρυνση των συστημάτων τους. Εγώ

Πώς να εγκαταστήσετε το Thelia 2.3 στο Debian 9

Πώς να εγκαταστήσετε το Thelia 2.3 στο Debian 9

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Thelia είναι ένα εργαλείο ανοιχτού κώδικα για τη δημιουργία ιστοσελίδων ηλεκτρονικού επιχειρείν και τη διαχείριση διαδικτυακού περιεχομένου γραμμένου σε PHP. Πηγαίος κώδικας Thelia i

Δημιουργία δικτύου διακομιστών Minecraft με το BungeeCord σε Debian 8, Debian 9 ή CentOS 7

Δημιουργία δικτύου διακομιστών Minecraft με το BungeeCord σε Debian 8, Debian 9 ή CentOS 7

Τι χρειάζεστε Ένα Vultr VPS με τουλάχιστον 1 GB μνήμης RAM. Πρόσβαση SSH (με δικαιώματα root/διαχειριστή). Βήμα 1: Εγκατάσταση του BungeeCord Πρώτα πράγματα

Πώς να εγκαταστήσετε το Golang 1.8.3 σε CentOS 7, Ubuntu 16.04 και Debian 9

Πώς να εγκαταστήσετε το Golang 1.8.3 σε CentOS 7, Ubuntu 16.04 και Debian 9

Η Golang είναι μια γλώσσα προγραμματισμού που αναπτύχθηκε από την Google. Χάρη στην ευελιξία, την απλότητα και την αξιοπιστία του, το Golang έχει γίνει ένα από τα πιο δημοφιλή

Επαναφέρετε τον κωδικό πρόσβασης ρίζας MySQL στο Debian/Ubuntu

Επαναφέρετε τον κωδικό πρόσβασης ρίζας MySQL στο Debian/Ubuntu

Εάν έχετε ξεχάσει τον κωδικό πρόσβασης root MySQL, μπορείτε να τον επαναφέρετε ακολουθώντας τα βήματα σε αυτό το άρθρο. Η διαδικασία είναι αρκετά απλή και λειτουργεί σε αυτές

Ρύθμιση Counter Strike: Πηγή στο Debian

Ρύθμιση Counter Strike: Πηγή στο Debian

Σε αυτόν τον οδηγό, θα ρυθμίσουμε έναν διακομιστή παιχνιδιών Counter Strike: Source στο Debian 7. Αυτές οι εντολές δοκιμάστηκαν στο Debian 7, αλλά θα πρέπει επίσης να λειτουργούν

Πώς να εγκαταστήσετε το Unturned 2.2.5 στο Debian 8

Πώς να εγκαταστήσετε το Unturned 2.2.5 στο Debian 8

Σε αυτόν τον οδηγό, θα μάθετε πώς να ρυθμίζετε έναν διακομιστή Unturned 2.2.5 σε Vultr VPS που εκτελεί Debian 8. Σημείωση: Αυτή είναι μια επεξεργασμένη έκδοση του Unturned που δεν

Πώς να εγκαταστήσετε το Cachet στο Debian 8

Πώς να εγκαταστήσετε το Cachet στο Debian 8

Σε αυτό το σεμινάριο, θα μάθετε πώς να εγκαταστήσετε το Cachet στο Debian 8. Το Cachet είναι ένα ισχυρό σύστημα σελίδας κατάστασης ανοιχτού κώδικα. Εγκατάσταση Αυτό το σεμινάριο είναι έτοιμο

Δημιουργία αντιγράφων ασφαλείας πολλαπλών βάσεων δεδομένων MySQL ή MariaDB αυτόματα

Δημιουργία αντιγράφων ασφαλείας πολλαπλών βάσεων δεδομένων MySQL ή MariaDB αυτόματα

Εισαγωγή Σε αυτήν την εγγραφή, διαβάστε καλά πώς μπορείτε να δημιουργήσετε αντίγραφα ασφαλείας πολλών βάσεων δεδομένων MySQL ή MariaDB που βρίσκονται στον ίδιο υπολογιστή χρησιμοποιώντας ένα προσαρμοσμένο σενάριο bash

Ρύθμιση ενός Chroot στο Debian

Ρύθμιση ενός Chroot στο Debian

Αυτό το άρθρο θα σας διδάξει πώς να ρυθμίσετε ένα chroot jail στο Debian. Υποθέτω ότι χρησιμοποιείτε το Debian 7.x. Εάν εκτελείτε το Debian 6 ή 8, αυτό μπορεί να λειτουργήσει, αλλά

Πώς να εγκαταστήσετε το Reader Self 3.5 RSS Reader σε ένα Debian 9 LAMP VPS

Πώς να εγκαταστήσετε το Reader Self 3.5 RSS Reader σε ένα Debian 9 LAMP VPS

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Reader Self 3.5 είναι ένα απλό και ευέλικτο, δωρεάν και ανοιχτού κώδικα, αυτο-φιλοξενούμενο πρόγραμμα ανάγνωσης RSS και εναλλακτική λύση του Google Reader. Αναγνώστης Σελ

Πώς να εγκαταστήσετε το Backdrop CMS 1.8.0 σε ένα Debian 9 LAMP VPS

Πώς να εγκαταστήσετε το Backdrop CMS 1.8.0 σε ένα Debian 9 LAMP VPS

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Backdrop CMS 1.8.0 είναι ένα απλό και ευέλικτο, φιλικό προς κινητά, δωρεάν και ανοιχτού κώδικα Σύστημα Διαχείρισης Περιεχομένου (CMS) που μας επιτρέπει

Πώς να εγκαταστήσετε το SteamCMD στο VPS σας

Πώς να εγκαταστήσετε το SteamCMD στο VPS σας

Σε αυτό το σεμινάριο θα εγκαταστήσουμε το SteamCMD. Το SteamCMD μπορεί να χρησιμοποιηθεί για λήψη και εγκατάσταση πολλών διακομιστών παιχνιδιών Steam, όπως το Counter-Strike: Global Offensiv

Αναβάθμιση Python στο Debian

Αναβάθμιση Python στο Debian

Όπως ίσως γνωρίζετε, τα αποθετήρια του Debian ενημερώνονται πολύ αργά. Τη στιγμή που γράφεται αυτό το κείμενο, οι εκδόσεις έκδοσης Python είναι στις 2.7.12 και 3.5.2, αλλά στο αποθετήριο Debian 8

Πώς να ρυθμίσετε το Samba με μπλοκ αποθήκευσης στο Debian 9

Πώς να ρυθμίσετε το Samba με μπλοκ αποθήκευσης στο Debian 9

Το Samba είναι μια λύση ανοιχτού κώδικα που επιτρέπει στους χρήστες να ρυθμίζουν γρήγορα και ασφαλή κοινόχρηστα αρχεία και να εκτυπώνουν. Σε αυτό το άρθρο, θα καλύψω πώς να ρυθμίσετε το Samba wit

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα