Android

Πώς να εγκαταστήσετε και να διαμορφώσετε ένα διακομιστή nfs στο ubuntu 18.04

Introduction to Amazon Web Services by Leo Zhadanovsky

Introduction to Amazon Web Services by Leo Zhadanovsky

Πίνακας περιεχομένων:

Anonim

Το Σύστημα αρχείων δικτύου (NFS) είναι ένα πρωτόκολλο κατανεμημένου συστήματος αρχείων που σας επιτρέπει να μοιράζεστε απομακρυσμένους καταλόγους μέσω δικτύου. Με το NFS, μπορείτε να συνδέσετε απομακρυσμένους καταλόγους στο σύστημά σας και να εργαστείτε με τα αρχεία στο απομακρυσμένο μηχάνημα σαν να ήταν τοπικά αρχεία.

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

Σε αυτό το σεμινάριο, θα εξετάσουμε τον τρόπο δημιουργίας ενός διακομιστή NFSv4 στο Ubuntu 18.04. Θα σας δείξουμε επίσης πώς να προσαρτήσετε ένα σύστημα αρχείων NFS στον υπολογιστή-πελάτη.

Προϋποθέσεις

Αυτό το παράδειγμα υποθέτει ότι έχετε έναν διακομιστή που εκτελεί Ubuntu 18.04 και έναν άλλο που εκτελεί οποιαδήποτε άλλη διανομή Linux. Ο διακομιστής και οι πελάτες πρέπει να είναι σε θέση να επικοινωνούν μεταξύ τους μέσω ενός ιδιωτικού δικτύου. Εάν ο παροχέας φιλοξενίας σας δεν προσφέρει ιδιωτικές διευθύνσεις IP, μπορείτε να χρησιμοποιήσετε τις δημόσιες διευθύνσεις IP και να διαμορφώσετε το τείχος προστασίας διακομιστών ώστε να επιτρέπεται η κυκλοφορία στη θύρα 2049 μόνο από αξιόπιστες πηγές.

Οι μηχανές σε αυτό το παράδειγμα έχουν τις ακόλουθες διευθύνσεις IP:

NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range

Ρύθμιση του διακομιστή NFS

Θα ξεκινήσουμε με την εγκατάσταση και τη διαμόρφωση του διακομιστή NFS.

Εγκατάσταση του διακομιστή NFS

Ανανεώστε το ευρετήριο πακέτων και εγκαταστήστε το πακέτο διακομιστή NFS:

sudo apt update sudo apt install nfs-kernel-server

Μόλις ολοκληρωθεί η εγκατάσταση, οι υπηρεσίες NFS θα ξεκινήσουν αυτόματα.

Από προεπιλογή, στο Ubuntu 18.04 είναι απενεργοποιημένη η έκδοση 2 του NFS. Οι εκδόσεις 3 και 4 είναι ενεργοποιημένες. Μπορείτε να το επιβεβαιώσετε εκτελώντας την ακόλουθη εντολή cat :

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

Το NFSv2 είναι αρκετά παλιό τώρα και δεν υπάρχει λόγος να το ενεργοποιήσετε.

Οι επιλογές διαμόρφωσης του διακομιστή NFS ορίζονται σε αρχεία /etc/default/nfs-kernel-server και /etc/default/nfs-common . Οι προεπιλεγμένες ρυθμίσεις είναι αρκετές στην περίπτωσή μας.

Δημιουργία συστημάτων αρχείων

Κατά τη διαμόρφωση ενός διακομιστή NFSv4 είναι μια καλή πρακτική να χρησιμοποιείτε έναν γενικό κατάλογο ριζικού NFS και να συνδέσετε την τοποθέτηση των πραγματικών καταλόγων στο σημείο αναφοράς κοινής χρήσης. Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε τον /srv/nfs4 διευθυντή ως root της NFS.

Θα μοιραστούμε δύο καταλόγους ( /var/www και /opt/backups ), με διαφορετικές ρυθμίσεις διαμόρφωσης, για να εξηγήσουμε καλύτερα πώς μπορούν να διαμορφωθούν τα υποστηρίγματα του NFS.

Το /var/www/ ανήκει στον χρήστη και η ομάδα www-data και /opt/backups ανήκει στο root .

Δημιουργήστε το σύστημα αρχείων εξαγωγής χρησιμοποιώντας την mkdir :

sudo mkdir -p /srv/nfs4/backups sudo mkdir -p /srv/nfs4/www

Τοποθετήστε τους πραγματικούς καταλόγους:

sudo mount --bind /opt/backups /srv/nfs4/backups sudo mount --bind /var/www /srv/nfs4/www

Για να δημιουργήσετε μόνιμες mount βάσεις, ανοίξτε το αρχείο /etc/fstab :

sudo nano /etc/fstab

και προσθέστε τις ακόλουθες γραμμές:

/ etc / fstab

/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0

Εξαγωγή των συστημάτων αρχείων

Το επόμενο βήμα είναι να ορίσετε τα συστήματα αρχείων που θα εξαχθούν από το διακομιστή NFS, τις επιλογές κοινόχρηστων εφαρμογών και τους υπολογιστές-πελάτες που έχουν πρόσβαση σε αυτά τα συστήματα αρχείων. Για να το ανοίξετε, ανοίξτε το αρχείο /etc/exports :

sudo nano /etc/exports Το αρχείο /etc/exports περιέχει επίσης σχόλια που περιγράφουν τον τρόπο εξαγωγής ενός καταλόγου.

Στην περίπτωση μας, πρέπει να εξάγουμε τους καταλόγους www και των backups και να επιτρέψουμε την πρόσβαση μόνο από πελάτες στο δίκτυο 192.168.33.0/24 :

/ etc / exports

/srv/nfs4 192.168.33.0/24(rw, sync, no_subtree_check, crossmnt, fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro, sync, no_subtree_check) 192.168.33.3(rw, sync, no_subtree_check) /srv/nfs4/www 192.168.33.110(rw, sync, no_subtree_check)

Η πρώτη γραμμή περιέχει fsid=0 που καθορίζει τον ριζικό κατάλογο NFS /srv/nfs . Η πρόσβαση σε αυτόν τον τόμο NFS επιτρέπεται μόνο στους πελάτες από το 192.168.33.0/24 υποδίκτυο. Η επιλογή crossmnt απαιτείται για την κοινή χρήση καταλόγων που είναι υπο-καταλόγους ενός εξαγόμενου καταλόγου.

Στη δεύτερη γραμμή εμφανίζεται ο τρόπος καθορισμού πολλαπλών κανόνων εξαγωγής για ένα σύστημα αρχείων. Εξάγει τον κατάλογο /srv/nfs4/backups και επιτρέπει μόνο πρόσβαση ανάγνωσης σε ολόκληρη την περιοχή 192.168.33.0/24 και πρόσβαση και ανάγνωση και εγγραφή στο 192.168.33.3 . Η επιλογή sync λέει στο NFS να γράψει αλλαγές στο δίσκο πριν απαντήσει.

Η τελευταία γραμμή πρέπει να είναι αυτονόητη. Για περισσότερες πληροφορίες σχετικά με όλες τις διαθέσιμες επιλογές, πληκτρολογήστε man exports στο τερματικό σας.

Αποθηκεύστε το αρχείο και εξαγάγετε τα κοινόχρηστα στοιχεία:

sudo exportfs -ra

Πρέπει να εκτελέσετε την εντολή παραπάνω κάθε φορά που τροποποιείτε το αρχείο /etc/exports . Εάν υπάρχουν σφάλματα ή προειδοποιήσεις, θα εμφανιστούν στο τερματικό.

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

sudo exportfs -v

Η έξοδος θα περιλαμβάνει όλες τις μετοχές με τις επιλογές τους. Όπως μπορείτε να δείτε, υπάρχουν και επιλογές που δεν έχουμε ορίσει στο αρχείο /etc/exports . Αυτές είναι οι προεπιλεγμένες επιλογές και αν θέλετε να τις αλλάξετε, θα πρέπει να ορίσετε ρητά αυτές τις επιλογές.

/srv/nfs4/backups 192.168.33.3(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(rw, wdelay, crossmnt, root_squash, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(ro, wdelay, root_squash, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)

Στο Ubuntu, το root_squash είναι ενεργοποιημένο από προεπιλογή. Αυτή είναι μια από τις πιο σημαντικές επιλογές σχετικά με την ασφάλεια NFS. Αποτρέπει τους χρήστες root που είναι συνδεδεμένοι από τους υπολογιστές-πελάτες να έχουν δικαιώματα root για τα ενσωματωμένα κοινόχρηστα στοιχεία. Θα χαρτογραφήσει το root UID και το GID σε nobody / nogroup UID / GID .

Προκειμένου να έχουν πρόσβαση οι χρήστες στις μηχανές-πελάτες, το NFS αναμένει ότι ο χρήστης και η ομάδα ταυτότητας του πελάτη θα ταιριάζουν με εκείνους του διακομιστή. Μια άλλη επιλογή είναι να χρησιμοποιήσετε τη δυνατότητα idmapping NFSv4 που μεταφράζει αναγνωριστικά χρήστη και ομάδας σε ονόματα και αντίστροφα.

Αυτό είναι. Σε αυτό το σημείο, έχετε δημιουργήσει ένα διακομιστή NFS στο διακομιστή Ubuntu. Τώρα μπορείτε να προχωρήσετε στο επόμενο βήμα και να διαμορφώσετε τους υπολογιστές-πελάτες και να συνδεθείτε με το διακομιστή NFS.

Διαμόρφωση τείχους προστασίας

Υποθέτοντας ότι χρησιμοποιείτε το UFW για τη διαχείριση του τείχους προστασίας σας για να επιτρέψετε την πρόσβαση από το υποδίκτυο 192.168.33.0/24 , πρέπει να εκτελέσετε την ακόλουθη εντολή:

sudo ufw allow from 192.168.33.0/24 to any port nfs

Για να επαληθεύσετε την αλλαγή αλλαγών:

sudo ufw status

Η έξοδος πρέπει να δείχνει ότι η κίνηση στη θύρα 2049 επιτρέπεται:

To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)

Ρύθμιση των πελατών NFS

Τώρα που ο διακομιστής NFS έχει εγκατασταθεί και οι μετοχές εξάγονται, το επόμενο βήμα είναι να διαμορφώσετε τους υπολογιστές-πελάτες και να προσαρτήσετε τα απομακρυσμένα συστήματα αρχείων.

Μπορείτε επίσης να προσαρτήσετε το κοινόχρηστο στοιχείο NFS στα macOS και τα Windows, αλλά θα επικεντρωθούμε σε συστήματα Linux.

Εγκατάσταση του προγράμματος-πελάτη NFS

Στις μηχανές-πελάτες πρέπει να εγκαταστήσουμε μόνο τα εργαλεία που απαιτούνται για τη συναρμολόγηση απομακρυσμένων συστημάτων αρχείων NFS.

  • Εγκαταστήστε το πρόγραμμα-πελάτη NFS σε Debian και Ubuntu

    Το όνομα του πακέτου που περιλαμβάνει προγράμματα για την τοποθέτηση συστημάτων αρχείων NFS στις διανομές που βασίζονται στο Debian είναι nfs-common . Για να την εγκαταστήσετε:

    sudo apt update sudo apt install nfs-common

    Εγκαταστήστε το πρόγραμμα-πελάτη NFS σε CentOS και Fedora

    Σχετικά με το Red Hat και τα παράγωγά του εγκαταστήστε το πακέτο nfs-utils :

    sudo yum install nfs-utils

Εγκατάσταση συστημάτων αρχείων

Θα εργαστούμε στο μηχάνημα πελάτη με IP 192.168.33.110 οποίο έχει πρόσβαση ανάγνωσης και εγγραφής στο σύστημα αρχείων /srv/nfs4/www και μόνο ανάγνωση για πρόσβαση στο σύστημα αρχείων /srv/nfs4/backups .

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

sudo mkdir -p /backups sudo mkdir -p /srv/www

Τοποθετήστε τα εξαγόμενα συστήματα αρχείων με την εντολή mount :

sudo mount -t nfs -o vers=4 192.168.33.10:/backups /backups sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www

Όπου το 192.168.33.10 είναι η διεύθυνση IP του διακομιστή NFS. Μπορείτε επίσης να χρησιμοποιήσετε το όνομα κεντρικού υπολογιστή αντί της διεύθυνσης IP, αλλά πρέπει να επιλύεται από το μηχάνημα-πελάτη. Αυτό γίνεται συνήθως με τη χαρτογράφηση του ονόματος του host στο IP στο αρχείο /etc/hosts .

Κατά την τοποθέτηση ενός συστήματος αρχείων NFSv4, πρέπει να παραλείψετε τον ριζικό κατάλογο NFS, οπότε αντί για /srv/nfs4/backups πρέπει να χρησιμοποιήσετε /backups .

Βεβαιωθείτε ότι τα απομακρυσμένα συστήματα αρχείων είναι εγκατεστημένα με επιτυχία χρησιμοποιώντας είτε την εντολή mount ή df :

df -h

Η εντολή θα εκτυπώσει όλα τα εγκατεστημένα συστήματα αρχείων. Οι τελευταίες δύο γραμμές είναι οι τοποθετημένες μετοχές:

Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% / devtmpfs 236M 0 236M 0% /dev tmpfs 244M 0 244M 0% /dev/shm tmpfs 244M 4.5M 240M 2% /run tmpfs 244M 0 244M 0% /sys/fs/cgroup /dev/sda2 1014M 87M 928M 9% /boot tmpfs 49M 0 49M 0% /run/user/1000 192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.10:/www 9.7G 1.2G 8.5G 13% /srv/www

Για να κάνετε τις mounts μόνιμες κατά την επανεκκίνηση, ανοίξτε το αρχείο /etc/fstab :

sudo nano /etc/fstab

και προσθέστε τις ακόλουθες γραμμές:

/ etc / fstab

192.168.33.10:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.10:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0

Για να βρείτε περισσότερες πληροφορίες σχετικά με τις διαθέσιμες επιλογές κατά την τοποθέτηση ενός συστήματος αρχείων NFS, πληκτρολογήστε man nfs στο τερματικό σας.

Μια άλλη επιλογή για την εγκατάσταση των απομακρυσμένων συστημάτων αρχείων είναι να χρησιμοποιήσετε είτε το εργαλείο autofs είτε να δημιουργήσετε μια συστημένη μονάδα.

Έλεγχος πρόσβασης NFS

Ας δοκιμάσουμε την πρόσβαση στις μετοχές, δημιουργώντας ένα νέο αρχείο σε κάθε ένα από αυτά.

Αρχικά, προσπαθήστε να δημιουργήσετε ένα αρχείο δοκιμής στον κατάλογο /backups χρησιμοποιώντας την εντολή touch :

sudo touch /backups/test.txt

Το /backup σύστημα αρχείων /backup εξάγεται ως μόνο για ανάγνωση και όπως αναμένεται, θα δείτε ένα μήνυμα λάθους Permission denied :

touch: cannot touch '/backups/test': Permission denied

Στη συνέχεια, προσπαθήστε να δημιουργήσετε ένα αρχείο δοκιμής στον κατάλογο /srv/www ως root χρησιμοποιώντας την εντολή sudo :

sudo touch /srv/www/test.txt

Και πάλι, θα δείτε το μήνυμα Permission denied .

touch: cannot touch '/srv/www': Permission denied

Υποθέτοντας ότι έχετε μια χρήση www-data στο μηχάνημα-πελάτη με το ίδιο UID και GID όπως στον απομακρυσμένο διακομιστή (που θα έπρεπε να συμβαίνει εάν, για παράδειγμα, εγκαταστήσατε nginx και στις δύο μηχανές), μπορείτε να δοκιμάσετε να δημιουργήσετε ένα αρχείο ως χρήστη www-data με:

sudo -u www-data touch /srv/www/test.txt

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

Για να την επαληθεύσετε, ορίστε τα αρχεία στον κατάλογο /srv/www :

ls -la /srv/www

Η έξοδος πρέπει να εμφανίζει το αρχείο που δημιουργήθηκε πρόσφατα:

drwxr-xr-x 3 www-data www-data 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 www-data www-data 0 Jun 23 21:58 index.html -rw-r--r-- 1 www-data www-data 0 Jun 23 22:18 test.txt

Αποσύνδεση του συστήματος αρχείων NFS

sudo umount /backups

Αν το σημείο προσάρτησης έχει οριστεί στο αρχείο /etc/fstab , βεβαιωθείτε ότι έχετε αφαιρέσει τη γραμμή ή το σχολιάσει προσθέτοντας # στην αρχή της γραμμής.

συμπέρασμα

Σε αυτό το σεμινάριο, σας παρουσιάσαμε πώς να ρυθμίσετε ένα διακομιστή NFS και πώς να προσαρμόσετε τα απομακρυσμένα συστήματα αρχείων στις μηχανές-πελάτες. Εάν εφαρμόζετε το NFS στην παραγωγή και μοιράζεστε λογικά δεδομένα, είναι καλή ιδέα να ενεργοποιήσετε τον έλεγχο ταυτότητας kerberos.

Ως εναλλακτική λύση για το NFS, μπορείτε να χρησιμοποιήσετε το SSHFS για να συνδέσετε απομακρυσμένους καταλόγους μέσω σύνδεσης SSH. Το SSHFS είναι κρυπτογραφημένο από προεπιλογή και πολύ πιο εύκολο στη διαμόρφωση και τη χρήση.

Μη διστάσετε να αφήσετε ένα σχόλιο εάν έχετε οποιεσδήποτε ερωτήσεις.

ubuntu nfs mount terminal