RHCSA sērija: Uz LDAP balstītas autentifikācijas iestatīšana RHEL 7 - 14. daļa
Mēs sāksim šo rakstu, izklāstot dažus LDAP pamatus (kas tas ir, kur un kāpēc tiek izmantots) un parādīsim, kā iestatīt LDAP serveri un konfigurēt klientu tā autentificēšanai, izmantojot Red Hat Enterprise Linux 7 sistēmas.
Kā redzēsim, ir vairāki citi iespējamie lietojumprogrammu scenāriji, taču šajā rokasgrāmatā mēs pilnībā koncentrēsimies uz LDAP balstītu autentifikāciju. Turklāt, lūdzu, ņemiet vērā, ka tēmas plašuma dēļ šeit aplūkosim tikai tās pamatus, taču, lai iegūtu detalizētāku informāciju, varat atsaukties uz kopsavilkumā izklāstīto dokumentāciju.
Šī paša iemesla dēļ jūs ievērosiet, ka es esmu nolēmis īsuma labad atstāt vairākas atsauces uz LDAP rīku manas lapām, taču atbilstošie paskaidrojumi ir rokas stiepiena attālumā (piemēram, man ldapadd).
Tas nozīmē, ka sāksim.
Mūsu testa vide sastāv no divām RHEL 7 kastēm:
Server: 192.168.0.18. FQDN: rhel7.mydomain.com Client: 192.168.0.20. FQDN: ldapclient.mydomain.com
Ja vēlaties, varat izmantot 12. daļā instalēto mašīnu: automatizēt RHEL 7 instalācijas, kā klientu izmantojot Kickstart.
LDAP nozīmē Lightweight Directory Access Protocol un sastāv no protokolu kopas, kas ļauj klientam tīklā piekļūt centralizēti glabātai informācijai (piemēram, pieteikšanās čaulu direktorijai, absolūtiem ceļiem uz mājas direktorijiem un citai tipiskai sistēmas lietotāja informācijai). piemēram), kam vajadzētu būt pieejamam no dažādām vietām vai pieejamam lielam skaitam galalietotāju (cits piemērs būtu visu uzņēmuma darbinieku mājas adrešu un tālruņu numuru katalogs).
Šādas (un citas) informācijas glabāšana centralizēti nozīmē, ka to var vieglāk uzturēt un piekļūt ikviens, kam ir piešķirtas atļaujas to izmantot.
Šī diagramma piedāvā vienkāršotu LDAP diagrammu, un tā ir sīkāk aprakstīta zemāk:
Šīs diagrammas detalizēts paskaidrojums.
- Ieraksts LDAP direktorijā apzīmē vienu vienību vai informāciju, un to unikāli identificē ar tā dēvēto atšķirīgo vārdu.
- Atribūts ir informācija, kas saistīta ar ierakstu (piemēram, adreses, pieejamie kontakttālruņu numuri un e-pasta adreses).
- Katram atribūtam tiek piešķirta viena vai vairākas vērtības, kas sastāv no atstarpēm atdalītā sarakstā. Vērtību, kas ir unikāla katram ierakstam, sauc par relatīvo atšķirīgo vārdu.
Paturot prātā, turpināsim servera un klienta instalēšanu.
LDAP servera un klienta instalēšana un konfigurēšana
RHEL 7 LDAP ievieš OpenLDAP. Lai instalētu serveri un klientu, izmantojiet attiecīgi šādas komandas:
# yum update && yum install openldap openldap-clients openldap-servers # yum update && yum install openldap openldap-clients nss-pam-ldapd
Kad instalēšana ir pabeigta, mēs apskatām dažas lietas. Šīs darbības jāveic tikai serverī, ja vien nav skaidri norādīts:
1. Pārliecinieties, ka SELinux netraucē, pastāvīgi iespējojot šādus booleanus gan serverī, gan klientā:
# setsebool -P allow_ypbind=0 authlogin_nsswitch_use_ldap=0
Ja uz LDAP balstītai autentifikācijai ir nepieciešama allow_ypbind, un dažām lietojumprogrammām var būt nepieciešama authlogin_nsswitch_use_ldap.
2. Iespējojiet un palaidiet pakalpojumu:
# systemctl enable slapd.service # systemctl start slapd.service
Paturiet prātā, ka pakalpojumu var atspējot, restartēt vai pārtraukt arī ar systemctl:
# systemctl disable slapd.service # systemctl restart slapd.service # systemctl stop slapd.service
3. Tā kā slapd pakalpojums darbojas kā ldap lietotājs (kuru varat pārbaudīt, izmantojot ps -e -o pid, uname, comm | grep slapd), šādam lietotājam vajadzētu būt direktorijai/var/lib/ldap, lai serveris varētu jāspēj modificēt administratīvo rīku izveidotos ierakstus, kurus var palaist tikai kā root (vairāk par to minūtē).
Pirms rekursīvi maināt šī direktorija īpašumtiesības, nokopējiet tajā slapd datu bāzes konfigurācijas faila paraugu:
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # chown -R ldap:ldap /var/lib/ldap
4. Iestatiet OpenLDAP administratīvo lietotāju un piešķiriet paroli:
# slappasswd
kā parādīts nākamajā attēlā:
un izveidojiet LDIF failu (ldaprootpasswd.ldif) ar šādu saturu:
dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}PASSWORD
kur:
- PASSWORD ir iepriekš iegūta jaukta virkne.
- cn = config norāda globālās konfigurācijas opcijas.
- olcDatabase norāda konkrētu datu bāzes instances nosaukumu, un to parasti var atrast mapē /etc/openldap/slapd.d/cn=config.
Atsaucoties uz iepriekš sniegto teorētisko pamatu, fails ldaprootpasswd.ldif
pievienos ierakstu LDAP direktorijā. Šajā ierakstā katra rinda apzīmē atribūtu: vērtību pāris (kur dn, changetype, add un olcRootPW ir atribūti, un virknes, kas atrodas pa labi no katra kolona, ir tām atbilstošās vērtības).
Iespējams, vēlēsities to paturēt prātā, turpinot darbu, un, lūdzu, ņemiet vērā, ka šī raksta atlikušajā daļā mēs izmantojam tos pašus parastos nosaukumus (cn =)
, kur katrs solis ir atkarīgs no iepriekšējā .
5. Tagad pievienojiet atbilstošo LDAP ierakstu, norādot URI, atsaucoties uz ldap serveri, kur ir atļauti tikai protokola/resursdatora/porta lauki.
# ldapadd -H ldapi:/// -f ldaprootpasswd.ldif
Rezultātam jābūt līdzīgam:
un importējiet dažas LDAP pamata definīcijas no direktorija /etc/openldap/schema
:
# for def in cosine.ldif nis.ldif inetorgperson.ldif; do ldapadd -H ldapi:/// -f /etc/openldap/schema/$def; done
6. Ļaujiet LDAP izmantot savu domēnu savā datu bāzē.
Izveidojiet citu LDIF failu, kuru mēs sauksim par ldapdomain.ldif
, ar šādu saturu, attiecīgi aizstājot jūsu domēnu (domēna komponentā dc =) un paroli:
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
Pēc tam ielādējiet to šādi:
# ldapmodify -H ldapi:/// -f ldapdomain.ldif
7. Tagad ir pienācis laiks pievienot dažus ierakstus mūsu LDAP direktorijā. Atribūtus un vērtības nākamajā failā atdala kols (:)
, kuru mēs nosauksim par 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
Pievienojiet ierakstus LDAP direktorijā:
# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f baseldapdomain.ldif
8. Izveidojiet LDAP lietotāju ar nosaukumu ldapuser (adduser ldapuser), pēc tam izveidojiet LDAP grupas definīcijas sadaļā ldapgroup.ldif
.
# adduser ldapuser # vi ldapgroup.ldif
Pievienojiet šādu saturu.
dn: cn=Manager,ou=Group,dc=mydomain,dc=com objectClass: top objectClass: posixGroup gidNumber: 1004
kur gidNumber ir ldapuser GID failā/etc/group) un ielādējiet to:
# ldapadd -x -W -D "cn=Manager,dc=mydomain,dc=com" -f ldapgroup.ldif
9. Pievienojiet LDIF failu ar lietotāja ldapuser ( ldapuser.ldif
) definīcijām:
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
un ielādējiet to:
# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f ldapuser.ldif
Tāpat jūs varat izdzēst tikko izveidoto lietotāja ierakstu:
# ldapdelete -x -W -D cn=Manager,dc=mydomain,dc=com "uid=ldapuser,ou=People,dc=mydomain,dc=com"
10. Atļaujiet sazināties caur ugunsmūri:
# firewall-cmd --add-service=ldap
11. Visbeidzot, bet ne mazāk svarīgi, ļaujiet klientam autentificēties, izmantojot LDAP.
Lai palīdzētu mums šajā pēdējā posmā, mēs izmantosim authconfig utilītu (saskarni sistēmas autentifikācijas resursu konfigurēšanai).
Izmantojot šo komandu, tiek izveidots pieprasītā lietotāja mājas direktorijs, ja tas nepastāv pēc tam, kad autentifikācija pret LDAP serveri ir veiksmīga:
# authconfig --enableldap --enableldapauth --ldapserver=rhel7.mydomain.com --ldapbasedn="dc=mydomain,dc=com" --enablemkhomedir --update
Kopsavilkums
Šajā rakstā mēs esam paskaidrojuši, kā iestatīt pamata autentifikāciju pret LDAP serveri. Lai tālāk konfigurētu šajā rokasgrāmatā aprakstīto iestatīšanu, lūdzu, skatiet RHEL 7 sistēmas administratora rokasgrāmatas 13. nodaļu - LDAP konfigurācija, īpašu uzmanību pievēršot drošības iestatījumiem, izmantojot TLS.
Nekautrējieties atstāt visus jautājumus, izmantojot zemāk esošo komentāru veidlapu.