Authenticating Linux συστήματα σε Active Directory Domain.
Όσοι στο παρελθόν έχετε βάλει κάποιο linux σύστημα σε ένα εταιρικό δίκτυο, θα έχετε καταλάβει ότι υπάρχει μία δυσκολία στο να κάνετε το σύστημα σας authenticate στο Active Directory.
Η απλή λύση είναι να δώσετε στο workgroup το όνομα του domain (όπως γίνεται και στις Home εκδόσεις των Windows) και μετά να δίνετε domain/username & password, όπου θέλετε να συνδεθείτε (εντός του domain και εφόσον έχετε εγκαταστήσει κάποιο πρόγραμμα που να προσφέρει file & printer sharing access).
Η λύση αυτή δεν είναι η καλύτερη δυνατή και τελευταία οι εκδόσεις των διανομών Linux που βγαίνουν προσθέτουν την δυνατότητα να οριστεί και το domain, μέσω της επιλογής να χρησιμοποιεί το σύστημα Kerberos (αυτό δεν σημαίνει ότι σε κάνει authenticate), ενώ αρχικά είχαν προχωρήσει στην χρήση του LDAP για τον ίδιο λόγο.
Ιστορικό
Ο λόγος που τα πράγματα πήραν αυτή την τροπή, ήταν γιατί οι open source προγραμματιστές δεν είχαν στο μυαλό τους την χρήση ενός (και κοινού) συστήματος authentication, με αποτέλεσμα ο κάθε ένας να φτιάχνει ένα διαφορετικό authentication σύστημα. Με συνέπεια το θέμα να ξεφύγει από την δυνατότητα 'διαχείρισης'. Αρχίκα η λύση ήρθε από την SUN Microsystems που χρησιμοποίησε συγκεκριμένα APIs για authentication που ο κάθε developer μπορούσε να χρησιμοποιήσει. Για την ακρίβεια χρησιμοποίησε ένα μηχανισμό που λέγετε Pluggable Authentication Modules (PAM) και συνδύασαν αυτά τα APIs με τα Name Server Switch (NSS) APIs που χρησιμοποιούνται για την ανεύρεση των πληροφοριών του κάθε χρήστη.
Η χρήση του LDAP μόνη της ή μαζί με Kerberos δεν δίνει τα επιθυμητά αποτελέσματα, καθότι στο μεν LDAP τα username & password περνάνε ως clear text μέσα από το δίκτυο (πράγμα μη αποδεκτό και ανασφαλές), ενώ με την χρήση του Kerberos τα πράγματα γίνονται μεν πιο ασφαλή, αλλά αγνοεί ότι γίνεται publish από το Active Directory που έχει σχέση με τις εγγραφές DNS Service Location, πράγμα που σημαίνει ότι ο linux χρήστης πρέπει να διαλέξει συγκεκριμένο set από DCs για να συνδεθεί.
-----------------
Η λύση έρχεται με την χρήση δύο εφαρμογών (μίας ουσιαστικά) που είναι διαθέσιμες σε όλες τις γνωστές και διαδεδομένες διανομές linux και είναι το SAMBA και το Winbind.
Το SAMBA είναι ένα πρόγραμμα που συνδέει τα Linux συστήματα με τα συστήματα της Microsoft. Έχει συγκεκριμένα components που προσφέρουν Windows file & print services, όπως επίσης και linux-based services που συνεργάζονται με Windows DCs.
Αυτό που μας ενδιαφέρει περισσότερο στο SAMBA είναι ένας δαίμονας (ή να λέω deamon;) με το όνομα Winbind. Αυτός ο δαίμονας δουλεύει σαν Proxy για την επικοινωνία των PAM & NSS (που αναφέραμε ποιο πάνω) του linux με το Active Directory ενός Domain Controller. Για την ακρίβεια χρησιμοποιεί το Kerberos για να κάνει το authentication με το AD και το LDAP για να πάρει όποια πληροφορία για χρήστες ή groups . Αυτό, θα σκεφτείτε, ότι ανέφερα ότι το κάνει ο συνδυασμός Kerberos & LDAP μέσα από το Linux έτσι και αλλιώς χωρίς την χρήση κάποιου δαίμονα. Όμως το Winbind, έρχεται να πάρει αυτό το κομμάτι και να του προσθέσει την δυνατότητα να βρίσκει όλους τους DCs (πράγμα που δεν κάνει ο απλός συνδυασμός Kerberos & LDAP) και το κάνει χρησιμοποιώντας ένα αλγόριθμο παρόμοιο με του DCLOCATOR που χρησιμοποιεί το AD, μαζί με την δυνατότητα να χρησιμοποιεί RPC και πλέον να μπορεί να κάνει reset Active Directory passwords (πράγμα που δεν γινόταν μέχρι την εμφάνιση του Winbind).
------------------
Εγκατάσταση – Παραμετροποίηση
http://www.wlug.org.nz/ActiveDirectorySamba
http://docs.sun.com/app/docs/doc/819-3063/ciajejfa?a=view
https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto
http://www.linuxquestions.org/questions/linux-software-2/suse-9-winbind-samba-doc-153836/
--------------------
Winbind
http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/winbind.html
Εναλλακτικές λύσεις μπορείτε να βρείτε σε αυτό το ενδιαφέρον άρθρο
http://www.securityfocus.com/infocus/1563
---------------------
Ελπίζω να σας βοηθήσει!
4 Comments
Recommended Comments