RHCSA seeria: LDAP-põhise autentimise seadistamine RHEL 7-s - 14. osa
Alustame selle artikli kirjeldamisega mõned LDAP-i põhitõed (mis see on, kus seda kasutatakse ja miks) ning näitame, kuidas seadistada LDAP-server ja konfigureerida klient selle vastu autentimiseks Red Hat Enterprise Linux 7 süsteemide abil.
Nagu näeme, on veel mitmeid võimalikke rakendusstsenaariume, kuid selles juhendis keskendume täielikult LDAP-põhisele autentimisele. Lisaks pidage meeles, et teema avaruse tõttu käsitleme siin ainult selle põhitõdesid, kuid põhjalikumate üksikasjade saamiseks võite viidata kokkuvõttes kirjeldatud dokumentatsioonile.
Samal põhjusel märkite, et olen lühiduse huvides otsustanud jätta välja mitmed viited LDAP-tööriistade manulehtedele, kuid vastavad selgitused on käeulatuses (näiteks man ldapadd).
See tähendab, et alustame.
Meie testikeskkond koosneb kahest RHEL 7 kastist:
Server: 192.168.0.18. FQDN: rhel7.mydomain.com Client: 192.168.0.20. FQDN: ldapclient.mydomain.com
Soovi korral saate kasutada osa 12: RHEL 7 installide automatiseerimist, kasutades kliendina Kickstarti.
LDAP tähistab kerget kataloogipöörduse protokolli ja koosneb protokollide komplektist, mis võimaldab kliendil võrgu kaudu juurde pääseda keskselt salvestatud teabele (nt sisselogimiskestade kataloog, kodukataloogide absoluutsed teed ja muu tüüpiline süsteemi kasutaja teave näiteks), mis peaks olema kättesaadav erinevatest kohtadest või kättesaadav suurele hulgale lõppkasutajatele (teine näide oleks ettevõtte kõigi töötajate koduaadresside ja telefoninumbrite kataloog).
Sellise (ja muu) teabe kesksel kohal hoidmine tähendab, et seda saavad hõlpsamini hooldada ja juurde pääseda kõik, kellele on antud luba selle kasutamiseks.
Järgmine diagramm pakub lihtsustatud LDAP-skeemi ja seda on üksikasjalikumalt kirjeldatud allpool:
Ülaltoodud skeemi üksikasjalik selgitus.
- LDAP-kataloogi kirje tähistab ühte üksust või teavet ja on ainulaadselt identifitseeritud nn eristatava nimega.
- Atribuut on kirjega seotud teave (näiteks aadressid, saadaolevad kontakttelefoninumbrid ja e-posti aadressid).
- Igale atribuudile määratakse üks või mitu väärtust, mis koosnevad tühikutega eraldatud loendist. Väärtust, mis on kande kohta ainulaadne, nimetatakse suhteliseks eristatavaks nimeks.
Nagu öeldud, jätkame serveri ja kliendi installimist.
LDAP-serveri ja kliendi installimine ja konfigureerimine
RHEL 7-s rakendab LDAP-i OpenLDAP. Serveri ja kliendi installimiseks kasutage vastavalt järgmisi käske:
# yum update && yum install openldap openldap-clients openldap-servers # yum update && yum install openldap openldap-clients nss-pam-ldapd
Kui installimine on lõpule jõudnud, vaatame mõningaid asju. Järgmised toimingud tuleks teha ainult serveris, välja arvatud juhul, kui seda on otseselt märgitud:
1. Veenduge, et SELinux ei takistaks, lubades järgmised tõeväärtused püsivalt nii serveris kui kliendis:
# setsebool -P allow_ypbind=0 authlogin_nsswitch_use_ldap=0
Kui LDAP-põhise autentimise jaoks on vaja allow_ypbind ja mõned rakendused võivad vajada authlogin_nsswitch_use_ldap.
2. Lubage ja käivitage teenus:
# systemctl enable slapd.service # systemctl start slapd.service
Pidage meeles, et teenuse saate keelata, taaskäivitada või peatada ka systemctl-ga:
# systemctl disable slapd.service # systemctl restart slapd.service # systemctl stop slapd.service
3. Kuna slapd-teenus töötab ldap-kasutajana (mida saate kontrollida rakendusega ps -e -o pid, uname, comm | grep slapd), peaks sellisele kasutajale kuuluma kataloog/var/lib/ldap, et server saaks olema võimeline muutma haldustööriistade loodud kirjeid, mida saab käivitada ainult juurkasutajana (rohkem selle kohta minutis).
Enne selle kataloogi omandiõiguse rekursiivset muutmist kopeerige slapdi näidisandmebaasi konfiguratsioonifail sinna:
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # chown -R ldap:ldap /var/lib/ldap
4. Seadistage OpenLDAP-i administraatorikasutaja ja määrake parool:
# slappasswd
nagu on näidatud järgmisel pildil:
ja looge järgmise sisuga LDIF-fail (ldaprootpasswd.ldif):
dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}PASSWORD
kus:
- PASSWORD on varem saadud räsitud string.
- cn = config näitab globaalseid seadistusvõimalusi.
- olcDatabase tähistab kindlat andmebaasi eksemplari nime ja selle võib tavaliselt leida /etc/openldap/slapd.d/cn=config.
Viidates varem esitatud teoreetilisele taustale, lisab fail ldaprootpasswd.ldif
kirje LDAP-kataloogi. Selles kirjes tähistab iga rida atribuuti: väärtuspaar (kus dn, changetype, add ja olcRootPW on atribuudid ja igast koolonist paremal asuvad stringid on nende vastavad väärtused).
Võite seda meeles pidada, kui jätkame, ja pidage meeles, et kogu ülejäänud artikli osas kasutame samu üldnimesid (cn =)
, kus iga samm sõltub eelmisest .
5. Nüüd lisage vastav LDAP-kirje, määrates ldap-serverile viitava URI, kus on lubatud ainult protokolli/hosti/pordi väljad.
# ldapadd -H ldapi:/// -f ldaprootpasswd.ldif
Väljund peaks olema sarnane:
ja importige mõned põhilised LDAP-määratlused kataloogist /etc/openldap/schema
:
# for def in cosine.ldif nis.ldif inetorgperson.ldif; do ldapadd -H ldapi:/// -f /etc/openldap/schema/$def; done
6. Laske LDAP-il oma domeenis oma andmebaasis kasutada.
Looge järgmine LDIF-fail, mida nimetame ldapdomain.ldif
, järgmise sisuga, asendades teie domeeni (domeenikomponendis dc =) ja parooli vastavalt vajadusele:
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=mydomain,dc=com" read by * none dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=mydomain,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=Manager,dc=mydomain,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=mydomain,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=mydomain,dc=com" write by * read
Seejärel laadige see järgmiselt:
# ldapmodify -H ldapi:/// -f ldapdomain.ldif
7. Nüüd on aeg lisada mõned kirjed meie LDAP-kataloogi. Atribuudid ja väärtused eraldatakse järgmises failis kooloniga (:)
, millele paneme nimeks baseldapdomain.ldif
:
dn: dc=mydomain,dc=com objectClass: top objectClass: dcObject objectclass: organization o: mydomain com dc: mydomain dn: cn=Manager,dc=mydomain,dc=com objectClass: organizationalRole cn: Manager description: Directory Manager dn: ou=People,dc=mydomain,dc=com objectClass: organizationalUnit ou: People dn: ou=Group,dc=mydomain,dc=com objectClass: organizationalUnit ou: Group
Lisage kirjed LDAP-kataloogi:
# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f baseldapdomain.ldif
8. Looge LDAP kasutaja nimega ldapuser (adduser ldapuser), seejärel looge LDAP-rühma definitsioonid jaotises ldapgroup.ldif
.
# adduser ldapuser # vi ldapgroup.ldif
Lisage järgmine sisu.
dn: cn=Manager,ou=Group,dc=mydomain,dc=com objectClass: top objectClass: posixGroup gidNumber: 1004
kus gidNumber on ldapuseri grupi/etc/grupi GID) ja laadige see:
# ldapadd -x -W -D "cn=Manager,dc=mydomain,dc=com" -f ldapgroup.ldif
9. Lisage LDIF-fail koos kasutaja ldapuser ( ldapuser.ldif
) definitsioonidega:
dn: uid=ldapuser,ou=People,dc=mydomain,dc=com objectClass: top objectClass: account objectClass: posixAccount objectClass: shadowAccount cn: ldapuser uid: ldapuser uidNumber: 1004 gidNumber: 1004 homeDirectory: /home/ldapuser userPassword: {SSHA}fiN0YqzbDuDI0Fpqq9UudWmjZQY28S3M loginShell: /bin/bash gecos: ldapuser shadowLastChange: 0 shadowMax: 0 shadowWarning: 0
ja laadige see:
# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f ldapuser.ldif
Samamoodi saate kustutada äsja loodud kasutajakande:
# ldapdelete -x -W -D cn=Manager,dc=mydomain,dc=com "uid=ldapuser,ou=People,dc=mydomain,dc=com"
10. Lubage tulemüüri kaudu suhtlemine:
# firewall-cmd --add-service=ldap
11. Lõpuks, kuid mitte vähem oluline, võimaldage kliendil LDAP abil autentida.
Selle viimase sammu abistamiseks kasutame authconfig utiliiti (liidest süsteemi autentimisressursside konfigureerimiseks).
Järgmise käsu abil luuakse taotletud kasutaja kodukataloog, kui seda pole pärast LDAP-serveri autentimise õnnestumist:
# authconfig --enableldap --enableldapauth --ldapserver=rhel7.mydomain.com --ldapbasedn="dc=mydomain,dc=com" --enablemkhomedir --update
Kokkuvõte
Selles artiklis oleme selgitanud, kuidas seadistada LDAP-serveri põhiline autentimine. Selles juhendis kirjeldatud seadistuse täpsemaks konfigureerimiseks vaadake RHEL 7 süsteemiadministraatori juhendi peatükki 13 - LDAP-i seadistamine, pöörates erilist tähelepanu turvaseadetele TLS-i abil.
Jätke julgelt küsimused, mis teil tekkida võivad, kasutades allolevat kommentaarivormi.