Πώς να εγκαταστήσετε το διακομιστή OpenLDAP για κεντρικό έλεγχο ταυτότητας
Το Ελαφρύ πρωτόκολλο πρόσβασης καταλόγου (LDAP εν συντομία) είναι ένα βιομηχανικό πρότυπο, ελαφρύ, ευρέως χρησιμοποιούμενο σύνολο πρωτοκόλλων για πρόσβαση σε υπηρεσίες καταλόγου. Μια υπηρεσία καταλόγου είναι μια κοινόχρηστη υποδομή πληροφοριών για πρόσβαση, διαχείριση, οργάνωση και ενημέρωση καθημερινών στοιχείων και πόρων δικτύου, όπως χρήστες, ομάδες, συσκευές, διευθύνσεις email, αριθμοί τηλεφώνου, τόμοι και πολλά άλλα αντικείμενα.
Το μοντέλο πληροφοριών LDAP βασίζεται σε καταχωρίσεις. Μια καταχώρηση σε έναν κατάλογο LDAP αντιπροσωπεύει μια ενιαία μονάδα ή μια πληροφορία και προσδιορίζεται μοναδικά από αυτό που ονομάζεται Διακεκριμένο όνομα (DN). Κάθε ένα από τα χαρακτηριστικά της καταχώρισης έχει έναν τύπο και μία ή περισσότερες τιμές.
Ένα χαρακτηριστικό είναι μια πληροφορία που σχετίζεται με μια καταχώρηση. Οι τύποι είναι συνήθως μνημονικές συμβολοσειρές, όπως cn για κοινό όνομα ή mail για διεύθυνση ηλεκτρονικού ταχυδρομείου. Σε κάθε χαρακτηριστικό εκχωρείται μία ή περισσότερες τιμές που αποτελούνται από μια λίστα διαχωρισμένη με διάστημα.
Ακολουθεί μια απεικόνιση του τρόπου με τον οποίο οι πληροφορίες ταξινομούνται στον κατάλογο LDAP.
Σε αυτό το άρθρο, θα δείξουμε πώς να εγκαταστήσετε και να ρυθμίσετε τον διακομιστή OpenLDAP για κεντρικό έλεγχο ταυτότητας στο Ubuntu 16.04/18.04 και στο CentOS 7.
Βήμα 1: Εγκατάσταση διακομιστή LDAP
1. Αρχικά ξεκινήστε εγκαθιστώντας το OpenLDAP, μια υλοποίηση ανοιχτού κώδικα του LDAP και ορισμένων παραδοσιακών βοηθητικών προγραμμάτων διαχείρισης LDAP χρησιμοποιώντας τις ακόλουθες εντολές.
# yum install openldap openldap-servers #CentOS 7 $ sudo apt install slapd ldap-utils #Ubuntu 16.04/18.04
Στο Ubuntu, κατά την εγκατάσταση του πακέτου, θα σας ζητηθεί να εισαγάγετε τον κωδικό πρόσβασης για την καταχώρηση διαχειριστή στον κατάλογο LDAP, να ορίσετε έναν ασφαλή κωδικό πρόσβασης και να τον επιβεβαιώσετε.
Όταν ολοκληρωθεί η εγκατάσταση, μπορείτε να ξεκινήσετε την υπηρεσία όπως εξηγείται στη συνέχεια.
2. Στο CentOS 7, εκτελέστε τις ακόλουθες εντολές για να ξεκινήσετε τον δαίμονα διακομιστή openldap, ενεργοποιήστε την αυτόματη εκκίνηση κατά την εκκίνηση και ελέγξτε εάν είναι σε λειτουργία (στο Ubuntu η υπηρεσία θα πρέπει να ξεκινήσει αυτόματα στο systemd, μπορείτε απλά να ελέγξετε την κατάστασή της):
$ sudo systemctl start slapd $ sudo systemctl enable slapd $ sudo systemctl status slapd
3. Στη συνέχεια, επιτρέψτε αιτήματα στον δαίμονα διακομιστή LDAP μέσω του τείχους προστασίας όπως φαίνεται.
# firewall-cmd --add-service=ldap #CentOS 7 $ sudo ufw allow ldap #Ubuntu 16.04/18.04
Βήμα 2: Διαμόρφωση διακομιστή LDAP
Σημείωση: Δεν συνιστάται η μη αυτόματη επεξεργασία της διαμόρφωσης LDAP, πρέπει να προσθέσετε τις διαμορφώσεις σε ένα αρχείο και να χρησιμοποιήσετε το ldapadd ή την εντολή ldapmodify για να τα φορτώσετε στον κατάλογο LDAP όπως φαίνεται παρακάτω.
4. Τώρα δημιουργήστε έναν χρήστη διαχειριστή OpenLDAP και εκχωρήστε έναν κωδικό πρόσβασης για αυτόν τον χρήστη. Στην παρακάτω εντολή, δημιουργείται μια κατακερματισμένη τιμή για τον δεδομένο κωδικό πρόσβασης, σημειώστε τον, θα τη χρησιμοποιήσετε στο αρχείο διαμόρφωσης LDAP.
$ slappasswd
5. Στη συνέχεια, δημιουργήστε ένα αρχείο LDIF (ldaprootpasswd.ldif) το οποίο χρησιμοποιείται για την προσθήκη μιας καταχώρησης στον κατάλογο LDAP.
$ sudo vim ldaprootpasswd.ldif
Προσθέστε τα ακόλουθα περιεχόμενα σε αυτό:
dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}PASSWORD_CREATED
εξηγώντας τα παραπάνω ζεύγη χαρακτηριστικών-τιμών:
- olcDatabase: υποδεικνύει ένα συγκεκριμένο όνομα παρουσίας βάσης δεδομένων και μπορεί να βρεθεί συνήθως στο /etc/openldap/slapd.d/cn=config.
- cn=config: υποδεικνύει καθολικές επιλογές διαμόρφωσης.
- PASSWORD: είναι η κατακερματισμένη συμβολοσειρά που λαμβάνεται κατά τη δημιουργία του διαχειριστή χρήστη.
6. Στη συνέχεια, προσθέστε την αντίστοιχη καταχώρηση LDAP, προσδιορίζοντας το URI που αναφέρεται στον διακομιστή ldap και στο παραπάνω αρχείο.
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f ldaprootpasswd.ldif
Βήμα 3: Διαμόρφωση βάσης δεδομένων LDAP
7. Τώρα αντιγράψτε το δείγμα αρχείου διαμόρφωσης βάσης δεδομένων για το slapd στον κατάλογο /var/lib/ldap και ορίστε τα σωστά δικαιώματα στο αρχείο .
$ sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG $ sudo chown -R ldap:ldap /var/lib/ldap/DB_CONFIG $ sudo systemctl restart slapd
8. Στη συνέχεια, εισαγάγετε ορισμένα βασικά σχήματα LDAP από τον κατάλογο /etc/openldap/schema ως εξής.
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif $ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif $ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
9. Τώρα προσθέστε τον τομέα σας στη βάση δεδομένων LDAP και δημιουργήστε ένα αρχείο που ονομάζεται ldapdomain.ldif για τον τομέα σας.
$ sudo vim ldapdomain.ldif
Προσθέστε το ακόλουθο περιεχόμενο σε αυτό (αντικαταστήστε το παράδειγμα με τον τομέα σας και το PASSWORD με την κατακερματισμένη τιμή που λήφθηκε πριν):
dn: olcDatabase={1}monitor,cn=config changetype: modify replace: olcAccess olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=example,dc=com" read by * none dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=example,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=Manager,dc=example,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}PASSWORD dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcAccess olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none olcAccess: {1}to dn.base="" by * read olcAccess: {2}to * by dn="cn=Manager,dc=example,dc=com" write by * read
10. Στη συνέχεια, προσθέστε την παραπάνω διαμόρφωση στη βάση δεδομένων LDAP με την ακόλουθη εντολή.
$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f ldapdomain.ldif
11. Σε αυτό το βήμα, πρέπει να προσθέσουμε ορισμένες καταχωρίσεις στον κατάλογό μας LDAP. Δημιουργήστε ένα άλλο αρχείο με το όνομα baseldapdomain.ldif με το ακόλουθο περιεχόμενο.
dn: dc=example,dc=com objectClass: top objectClass: dcObject objectclass: organization o: example com dc: example dn: cn=Manager,dc=example,dc=com objectClass: organizationalRole cn: Manager description: Directory Manager dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou: People dn: ou=Group,dc=example,dc=com objectClass: organizationalUnit ou: Group
Αποθηκεύστε το αρχείο και, στη συνέχεια, προσθέστε τις εγγραφές στον κατάλογο LDAP.
$ sudo ldapadd -Y EXTERNAL -x -D cn=Manager,dc=example,dc=com -W -f baseldapdomain.ldif
12. Το επόμενο βήμα είναι να δημιουργήσετε έναν χρήστη LDAP για παράδειγμα, tecmint και να ορίσετε έναν κωδικό πρόσβασης για αυτόν τον χρήστη ως εξής.
$ sudo useradd tecmint $ sudo passwd tecmint
13. Στη συνέχεια, δημιουργήστε τους ορισμούς για μια ομάδα LDAP σε ένα αρχείο που ονομάζεται ldapgroup.ldif με το ακόλουθο περιεχόμενο.
dn: cn=Manager,ou=Group,dc=example,dc=com objectClass: top objectClass: posixGroup gidNumber: 1005
Στην παραπάνω διαμόρφωση, το gidNumber είναι το GID στο /etc/group για το tecmint και προσθέστε το στο OpenLDAP Ευρετήριο.
$ sudo ldapadd -Y EXTERNAL -x -W -D "cn=Manager,dc=example,dc=com" -f ldapgroup.ldif
14. Στη συνέχεια, δημιουργήστε ένα άλλο αρχείο LDIF που ονομάζεται ldapuser.ldif και προσθέστε τους ορισμούς για το χρήστη tecmint.
dn: uid=tecmint,ou=People,dc=example,dc=com objectClass: top objectClass: account objectClass: posixAccount objectClass: shadowAccount cn: tecmint uid: tecmint uidNumber: 1005 gidNumber: 1005 homeDirectory: /home/tecmint userPassword: {SSHA}PASSWORD_HERE loginShell: /bin/bash gecos: tecmint shadowLastChange: 0 shadowMax: 0 shadowWarning: 0
στη συνέχεια φορτώστε τη διαμόρφωση στον κατάλογο LDAP.
$ ldapadd -Y EXTERNAL -x -D cn=Manager,dc=example,dc=com -W -f ldapuser.ldif
Αφού ρυθμίσετε έναν κεντρικό διακομιστή για έλεγχο ταυτότητας, το τελευταίο μέρος είναι να επιτρέψετε στον πελάτη να πραγματοποιήσει έλεγχο ταυτότητας χρησιμοποιώντας LDAP όπως εξηγείται σε αυτόν τον οδηγό:
- Τρόπος διαμόρφωσης του προγράμματος-πελάτη LDAP για σύνδεση εξωτερικού ελέγχου ταυτότητας
Για περισσότερες πληροφορίες, ανατρέξτε στην κατάλληλη τεκμηρίωση από τον οδηγό διακομιστή OpenLDAP.
Περίληψη
Το OpenLDAP είναι μια εφαρμογή ανοιχτού κώδικα του LDAP στο Linux. Σε αυτό το άρθρο, δείξαμε πώς να εγκαταστήσετε και να ρυθμίσετε τον διακομιστή OpenLDAP για κεντρικό έλεγχο ταυτότητας, στο Ubuntu 16.04/18.04 και στο CentOS 7. Εάν έχετε κάποια ερώτηση ή σκέψεις να μοιραστείτε, μη διστάσετε να επικοινωνήσετε μαζί μας μέσω της παρακάτω φόρμας σχολίων.