Ασφάλιση Αρχείου και Εκτυπωτή Διακομιστή Samba

Καταστάσεις Ασφάλειας Samba

Υπάρχουν δύο επίπεδα ασφάλειας διαθέσιμα στο πρωτόκολλο δικτύου Common Internet Filesystem (CIFS) user-level και share-level. Η εκτέλεση της security mode του Samba επιτρέπει μεγαλύτερη ευελιξία, παρέχοντας τέσσερις τρόπους εφαρμογής ασφάλειας επιπέδου-χρήστη και έναν τρόπο εφαρμογής επιπέδου-διαμοιρασμού:

  • security = user: απαιτεί από τους πελάτες να παρέχουν ένα όνομα χρήστη και κωδικό πρόσβασης για να συνδεθούν στα διαμοιραζόμενα. Οι λογαριασμοί χρηστών του Samba είναι διαφορετικοί από τους λογαριασμούς συστήματος, αλλά το πακέτο libpam-smbpass θα συγχρονίσει τους χρήστες και τους κωδικούς συστήματος με τη βάση δεδομένων χρηστών του Samba.

  • security = domain: αυτή η κατάσταση επιτρέπει στο διακομιστή του Samba να εμφανίζεται στους πελάτες των Windows σαν Πρωτεύον Ελεγκτής Τομέα (Primary Domain Controller (PDC)), ΕφεδρικόςΕλεγκτής Τομέα (Backup Domain Controller (BDC)), ή Τμήμα Μέλους Διακομιστή (Domain Member Server (DMS)). Δείτε “Το Samba ως Ελεγκτής Τομέα” για περισσότερεσ πληροφορίες.

  • security = ADS: επιτρέπει στο διακομιστή Samba να συνδεθεί στον τομέα Ενεργού Καταλόγου σαν ένα ιθαγενές μέλος. Δείτε “Ενοποίηση Ενεργού Καταλόγου Samba” για λεπτομέρειες.

  • security = server: αυτή η κατάσταση έχει απομείνει από τότε που το samba δεν μπορούσε να γίνει μέλος ενός διακομιστή, και εξαιτίας ορισμένων θεμάτων ασφαλείας δεν πρέπει να χρησιμοποιείται. Δείτε το τμήμα του οδηγού SambaΑσφάλεια Διακομιστή για περισσότερες πληροφορίες.

  • security = share: επιτρέπει στους πελάτες να συνδεθούν στα διαμοιραζόμενα χωρίς να παρέχουν ένα όνομα χρήστη και κωδικό πρόσβασης.

Η κατάσταση ασφαλείας που επιλέγεται θα βασίζεται στο περιβάλλον σας και στο τι χρειάζεστε να πετύχει ο διακομιστής Samba.

Security = User

Αυτό το τμήμα θα επαναδιαμορφώσει το αρχείο και το διακομιστή εκτυπωτή Samba, από “Διακομιστής Αρχείου Samba ” και “Διακομιστής Εκτύπωσης Samba”, ώστε να απαιτεί πιστοποίηση.

Πρώτον, εγκαταστήστε το πακέτο libpam-smbpass το οποίο θα συγχρονίσει τους χρήστες του συστήματος στη βάση δεδομένων χρηστών του Samba:

sudo apt-get install libpam-smbpass
[Σημείωση]

Εάν επιλέξατε τη διεργασία Διακομιστής Samba κατά τη διάρκεια της εγκατάστασης τότε το libpam-smbpass είναι ήδη εγκατεστημένο.

Επεξεργαστείτε το /etc/samba/smb.conf, και στον τομέα [διαμοιρασμένο] αλλάξτε:

    guest ok = no

Τέλος, επανεκκινήστε το Samba για να τεθούν σε ισχύ οι νέες ρυθμίσεις:

sudo restart smbd
sudo restart nmbd

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

[Σημείωση]

Αν επιλέξετε να αντιστοιχίσετε μια μονάδα δίσκου στο διαμοιραζόμενο μπορείτε να τσεκάρετε το κουτί επιλογής “Επανασύνδεση κατά την Είσοδο”, το οποίο θα σας ζητήσει να εισάγετε το όνομα χρήστη και τον κωδικό πρόσβασης μία φορα, τουλάχιστον μέχρι να αλλάξει ο κωδικός.

Ασφάλεια Διαμοιραζόμενου

Υπάρχουν πολλές διαθέσιμες επιλογές για να αυξήσετε την ασφάλεια για κάθε μεμονωμένο κοινόχρηστο κατάλογο. Χρησιμοποιώντας το παράδειγμα [share], αυτό το τμήμα θα καλυψει ορισμένες κοινές επιλογές.

Ομάδες

Οι ομάδες ορίζουν μια συλλογή από υπολογιστές ή χρήστες οι οποίοι έχουν ένα κοινό επίπεδο πρόσβασης σε συγκεκριμένους πόρους δικτύου και προσφέρουν ένα επίπεδο διακριτότητας για τον έλεγχο της πρόσβασης σε αυτούς τους πόρους. Για παράδειγμα, αν μια ομάδα qa ορίζεται και περιέχει τους χρήστες freda, danika, και rob και μια δεύτερη ομάδα support έχει οριστεί και περιέχει τους χρήστες danika, jeremy, και vincent τότε συγκεκριμένοι πόροι του δικτύου διαμορφωμένοι για να επιτρέπουν την είσοδο στην ομάδα qa ακολούθως θα επιτρέψει την είσοδο στους freda, danika, και rob, αλλά όχι στους jeremy ή vincent. Δεδομένου ότι ο χρήστης danika ανήκει και στην ομάδα qa και στην support, θα μπορεί να χρησιμοποιεί πόρους διαμορφωμένους για πρόσβαση και από τις δύο ομάδες, ενώ όλοι οι άλλοι χρήστες έχουν πρόσβαση μόνο σε πόρους που επιτρέπουν πρόσβαση στην ομάδα στην οποία ανήκουν.

Από προεπιλογή το Samba αναζητά τις τοπικές ομάδες συστήματος που ορίζονται στο /etc/group για να καθορίσει ποιοι χρήστες ανήκουν σε ποιες ομάδες. Για περισσότερες πληροφορίες για εισαγωγή και διαγραφή χρηστών από ομάδες βλ. “Προσθήκη και Διαγραφή Χρηστών”.

Όταν ορίζετε ομάδες στο αρχείο διαμόρφωσης του Samba, /etc/samba/smb.conf, η αναγνωρισμένη σύνταξη είναι να προλογίσετε το όνομα της ομάδας με ένα σύμβολο "@". Για παράδειγμα, εάν επιθυμούσατε να ορίσετε μια ομάδα με όνομα sysadmin σε ένα συγκεκριμένο τμήμα του /etc/samba/smb.conf, θα το κάνατε εισάγοντας το όνομα της ομάδας ως @sysadmin.

Άδειες Αρχείων

Οι Άδειες Αρχείων ορίζουν τα σαφή δικαιώματα που έχει ένας υπολογιστής ή χρήστης σε έναν συγκεκριμένο κατάλογο, αρχείο, ή σύνολο αρχείων. Τέτοιες άδειες μπορούν να οριστούν κάνοντας επεξεργασία του αρχείου /etc/samba/smb.conf και ορίζοντας τις σαφείς άδειες ενός ορισμένου διαμοιρασμένου αρχείου.

Για παράδειγμα, εάν έχετε ορίσει ένα διαμοιρασμένο του Samba με όνομα share και επιθυμείτε να δώσετε άδειες read-only στην ομάδα χρηστών γνωστών ως qa, αλλά θέλετε να επιτρέπετε την επεξεργασία του διαμοιραζόμενου από την ομάδα που ονομάζεται sysadmin και τον χρήστη με όνομα vincent, τότε θα μπορούσατε να επεξεργαστείτε το αρχείο /etc/samba/smb.conf, και να εισάγετε τις ακόλουθες τιμές κάτω από την εγγραφή [share]:

    read list = @qa
    write list = @sysadmin, vincent

Μια άλλη πιθανή άδεια του Samba είναι να δηλώσετε δικαιώματα διαχειριστή σε ένα συγκεκριμένο διαμοιρασμένο πόρο. Οι χρήστες που έχουν δικαιώματα διαχειριστή μπορούν να διαβάσουν, να επεξεργαστούν και τροποποιήσουν κάθε πληροφορία που περιέχεται στον πόρο για τον οποίο έχουν δοθεί στο χρήστη σαφή δικαιώματα διαχειριστή.

Για παράδειγμα, εάν θέλετε να δώσετε στο χρήστη melissa δικαιώματα διαχειριστή για το παράδειγμα share, θα επεξεργαζόσασταν το αρχείο /etc/samba/smb.conf, και θα εισάγατε την ακόλουθη γραμμή κάτω από την εγγραφή [διαμοιραζόμενο] :

    admin users = melissa

Αφού επεξεργαστείτε το /etc/samba/smb.conf, επανεκκινήστε το Samba για να εφαρμοστούν οι αλλαγές:

sudo restart smbd
sudo restart nmbd
[Σημείωση]

Για να δουλέψουν οι λίστα ανάγνωσης και λίστα επεξεργασίας η κατάσταση ασφαλείας του Samba δεν πρέπει να καθοριστεί σε ασφάλεια = διαμοιραζόμενο

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

Τα παραδοσιακά δικαιώματα αρχείων του Linux δεν λειτουργούν καλά με τον Λίστα Ελέγχου Πρόσβασης (Access Control Lists (ACLs))των Windows NT. Ευτυχώς οι POSIX ACLs είναι διαθέσιμες για διακομιστές Ubuntu παρέχοντας καλύτερο έλεγχο. Για παράδειγμα, για να ενεργοποιήσετε τις ACLs στο /srv ένα αρχείο συστήματος EXT3, επεξεργαστείτε το /etc/fstab εισάγοντας την επιλογή acl :

UUID=66bcdd2e-8861-4fb0-b7e4-e61c569fe17d /srv  ext3    noatime,relatime,acl 0       1

Μετά κάντε ξανά mount το διαμέρισμα:

sudo mount -v -o remount /srv
[Σημείωση]

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

Για να ταιριάξετε τη παραπάνω ρύθμιση του Samba στην ομάδα sysadmin θα δοθούν δικαιώματα ανάγνωσης, επεξεργασίας και εκτέλεσης στο /srv/samba/share, στην ομάδα qa θα δοθούν δικαιώματα ανάγνωσης και εκτέλεσης, και τα αρχεία θα ανήκουν στο όνομα χρήστη melissa. Πληκτρολογήστε τα ακόλουθα στο τερματικό:

sudo chown -R melissa /srv/samba/share/
sudo chgrp -R sysadmin /srv/samba/share/
sudo setfacl -R -m g:qa:rx /srv/samba/share/
[Σημείωση]

Η παραπάνω εντολή setfacl δίνει δικαιώματα εκτέλεσης σε όλα τα αρχεία του καταλόγου /srv/samba/share, κάτι το οποίο μπορεί να θέλετε ή να μην θέλετε.

Τώρα από έναν πελάτη των Windows θα πρέπει παρατηρήσετε ότι τα νέα δικαιώματα αρχείων είναι σε εφαρμογή. Δείτε τις σελίδες acl και setfacl για περισσότερες πληροφορίες πάνω στις POSIX ACLs.

Προφίλ Samba AppArmor

Το Ubuntu έρχεται με την υπομονάδα ασφαλείας AppArmor, η οποία παρέχει υποχρεωτικούς ελέγχους πρόσβασης. Το προεπιλεγμένο προφίλ AppArmor για το Samba θα χρειαστεί να προσαρμοστεί στη ρύθμισή σας. Για περισσότερες πληροφορίες στο πως να χρησιμοποιήσετε το AppArmor βλ. “AppArmor”.

Υπάρχουν προεπιλεγμένα προφίλ του AppArmor για τα /usr/sbin/smbd και /usr/sbin/nmbd, για τα daemon binaries του Samba, σαν μέρος των πακέτων apparmor-profiles. Για να εγκαταστήσετε το πακέτο, από ένα τερματικό εντολών πληκτρολογήστε:

sudo apt-get install apparmor-profiles
[Σημείωση]

Αυτό το πακέτο περιέχει προφίλ για πολλά άλλα binaries.

Από προεπιλογή τα προφίλ για τα smbd και nmbd βρίσκονται σε κατάσταση complain επιτρέποντας στο Samba να δουλεύει χωρίς να τροποποιεί το προφίλ, και μόνο να καταγράφει σφάλματα. Για να τοποθετήσετε το προφίλ smbd σε κατάσταση enforce, και να δουλεύει το Samba όπως αναμένεται, το προφίλ θα χρειαστεί να επεξεργαστεί ώστε να αντικατοπτρίζει όλους τους καταλόγους που χρησιμοποιούνται.

Επεξεργαστείτε το /etc/apparmor.d/usr.sbin.smbd εισάγοντας πληροφορίες για [share] από το αρχείο παραδείγματος του διακομιστή:

  /srv/samba/share/ r,
  /srv/samba/share/** rwkix,

Τώρα τοποθετήστε το προφίλ σε κατάσταση enforce και επαναφορτώστε το:

sudo aa-enforce /usr/sbin/smbd
cat /etc/apparmor.d/usr.sbin.smbd | sudo apparmor_parser -r

Θα πρέπει τώρα να μπορείτε να διαβάσετε, να επεξεργαστείτε και να εκτελέσετε αρχεία στον κοινόχρηστο κατάλογο όπως πάντα, και το binary smbd θα έχει πρόσβαση μόνο σε ρυθμισμένα αρχεία και καταλόγους. Σιγουρευτείτε να εισάγετε εγγραφές για κάθε κατάλογο που ρυθμίζετε για να διαμοιράσει το Samba. Επίσης, όποια λάθη θα καταγραφούν στο /var/log/syslog.

Πόροι