Ανάπτυξη 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@domain.tldμε το όνομα τομέα και τη διεύθυνση email σας αντίστοιχα πριν την εκτελέσετε:

sudo certbot certonly --standalone --agree-tos -m email@domain.tld -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, Οδηγοί Linux, Εφαρμογές διακομιστή

Αφήστε ένα σχόλιο

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. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα