Serye sa RHCSA: Pag-set up sa LDAP-based Authentication sa RHEL 7 - Bahin 14


Atong sugdan kini nga artikulo pinaagi sa paglatid sa pipila ka mga sukaranan sa LDAP (unsa kini, diin kini gigamit ug ngano) ug ipakita kung giunsa ang pag-set up sa usa ka LDAP server ug pag-configure sa usa ka kliyente aron ma-authenticate batok niini gamit ang mga sistema sa Red Hat Enterprise Linux 7.

Sama sa atong makita, adunay daghang uban pang posibleng mga sitwasyon sa aplikasyon, apan niini nga giya bug-os natong ipunting ang LDAP-based authentication. Dugang pa, palihug hinumdomi nga tungod sa kadaghanon sa hilisgutan, among hisgutan ang mga sukaranan niini dinhi, apan mahimo nimong i-refer ang dokumentasyon nga gilatid sa katingbanan alang sa mas lawom nga mga detalye.

Sa samang rason, imong mamatikdan nga nakahukom ko nga biyaan ang pipila ka mga reperensiya sa man page sa LDAP nga mga himan para sa kamubo, apan ang katugbang nga mga pagpatin-aw anaa sa gilay-on sa tumoy sa tudlo (man ldapadd, pananglitan).

Ingon niana, magsugod na ta.

Ang among palibot sa pagsulay naglangkob sa duha ka kahon sa RHEL 7:

Server: 192.168.0.18. FQDN: rhel7.mydomain.com
Client: 192.168.0.20. FQDN: ldapclient.mydomain.com

Kung gusto nimo, mahimo nimong gamiton ang makina nga na-install sa Bahin 12: I-automate ang mga pag-install sa RHEL 7 gamit ang Kickstart isip kliyente.

Ang LDAP nagpasabut sa Lightweight Directory Access Protocol ug naglangkob sa usa ka set sa mga protocol nga nagtugot sa usa ka kliyente sa pag-access, sa usa ka network, sentral nga gitipigan nga impormasyon (sama sa usa ka direktoryo sa mga shell sa pag-login, hingpit nga mga agianan ngadto sa mga direktoryo sa balay, ug uban pang tipikal nga impormasyon sa tiggamit sa sistema, pananglitan) nga kinahanglan nga ma-access gikan sa lain-laing mga lugar o magamit sa daghang mga end user (laing pananglitan usa ka direktoryo sa mga adres sa balay ug mga numero sa telepono sa tanan nga empleyado sa usa ka kompanya).

Ang pagtipig sa ingon (ug daghan pa) nga impormasyon sa sentro nagpasabut nga kini mahimong mas dali nga mamentinar ug ma-access sa tanan nga gihatagan og pagtugot sa paggamit niini.

Ang mosunod nga diagram nagtanyag og gipasimple nga diagram sa LDAP, ug gihulagway sa ubos sa mas detalyado:

Detalyadong pagpatin-aw sa dayagram sa ibabaw.

  1. Ang usa ka entry sa usa ka LDAP nga direktoryo nagrepresentar sa usa ka yunit o impormasyon ug talagsaon nga giila pinaagi sa gitawag nga usa ka Distinguished Name.
  2. Ang attribute kay usa ka piraso sa impormasyon nga nalangkit sa usa ka entry (pananglitan, mga adres, available nga contact phone number, ug email addresses).
  3. Ang matag hiyas gihatagan og usa o daghan pa nga mga kantidad nga gilangkuban sa usa ka lista nga gilain sa espasyo. Ang bili nga talagsaon kada entry gitawag ug Relative Distinguished Name.

Ingon niana, magpadayon kita sa pag-install sa server ug kliyente.

Pag-instalar ug Pag-configure sa usa ka LDAP Server ug Kliyente

Sa RHEL 7, ang LDAP gipatuman sa OpenLDAP. Aron ma-install ang server ug kliyente, gamita ang mosunod nga mga mando, matag usa:

# yum update && yum install openldap openldap-clients openldap-servers
# yum update && yum install openldap openldap-clients nss-pam-ldapd

Kung nahuman na ang pag-install, adunay pipila ka mga butang nga among gitan-aw. Ang mosunud nga mga lakang kinahanglan himuon sa server lamang, gawas kung klaro nga nahibal-an:

1. Siguruha nga ang SELinux dili makabalda pinaagi sa pagpadayon sa mga mosunod nga boolean, sa server ug sa kliyente:

# setsebool -P allow_ypbind=0 authlogin_nsswitch_use_ldap=0

Diin ang allow_ypbind gikinahanglan alang sa LDAP-based authentication, ug authlogin_nsswitch_use_ldap mahimong gikinahanglan sa pipila ka mga aplikasyon.

2. I-enable ug sugdi ang serbisyo:

# systemctl enable slapd.service
# systemctl start slapd.service

Hinumdumi nga mahimo usab nimo nga ma-disable, i-restart, o ihunong ang serbisyo gamit ang systemctl:

# systemctl disable slapd.service
# systemctl restart slapd.service
# systemctl stop slapd.service

3. Tungod kay ang serbisyo sa slapd nagdagan ingon ang ldap user (nga mahimo nimong mapamatud-an gamit ang ps -e -o pid,uname,comm | grep slapd), ang ingon nga tiggamit kinahanglan nga manag-iya sa /var/lib/ldap direktoryo aron ang server mahimo makahimo sa pag-usab sa mga entries nga gihimo sa administratibo nga mga himan nga mahimo lamang nga modagan ingon nga gamut (labaw pa niini sa usa ka minuto).

Sa dili pa usbon ang pagpanag-iya niini nga direktoryo balik-balik, kopyaha ang sample nga database configuration file alang sa slapd ngadto niini:

# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# chown -R ldap:ldap /var/lib/ldap

4. Pagbutang ug OpenLDAP administrative user ug assign ug password:

# slappasswd

sama sa gipakita sa sunod nga hulagway:

ug paghimo ug LDIF file (ldaprootpasswd.ldif) nga adunay mosunod nga mga sulod:

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD

diin:

  1. PASSWORD mao ang hashed string nga nakuha sa sayo pa.
  2. cn=config nagpaila sa global config mga opsyon.
  3. Ang olcDatabase nagpaila sa usa ka espesipikong ngalan sa instance sa database ug kasagarang makita sa sulod sa /etc/openldap/slapd.d/cn=config.

Naghisgot sa theoretical background nga gihatag sa sayo pa, ang ldaprootpasswd.ldif file magdugang og entry sa LDAP directory. Niana nga entry, ang matag linya nagrepresentar sa usa ka attribute: value pair (diin ang dn, changetype, add, ug olcRootPW mao ang mga attribute ug ang mga string sa tuo sa matag colon mao ang ilang katumbas nga values).

Mahimo nimong hinumdoman kini samtang nagpadayon kami, ug palihug timan-i nga kami naggamit sa parehas nga Komon nga Ngalan (cn=) sa tibuuk nga nahabilin niini nga artikulo, diin ang matag lakang nagdepende sa nauna. .

5. Karon, idugang ang katugbang nga LDAP entry pinaagi sa pagtino sa URI nga nagtumong sa ldap server, diin ang protocol/host/port fields lang ang gitugotan.

# ldapadd -H ldapi:/// -f ldaprootpasswd.ldif 

Ang output kinahanglan nga susama sa:

ug pag-import ug pipila ka batakang LDAP depinisyon gikan sa /etc/openldap/schema direktoryo:

# for def in cosine.ldif nis.ldif inetorgperson.ldif; do ldapadd -H ldapi:/// -f /etc/openldap/schema/$def; done

6. Ipagamit sa LDAP ang imong domain sa database niini.

Paghimo og laing LDIF file, nga among tawgon nga ldapdomain.ldif, uban sa mosunod nga mga sulod, ilisan ang imong domain (sa Domain Component dc=) ug password kon angay:

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

Dayon i-load kini sama sa mosunod:

# ldapmodify -H ldapi:/// -f ldapdomain.ldif

7. Karon na ang panahon sa pagdugang og pipila ka entries sa among LDAP directory. Ang mga hiyas ug bili gibulag sa usa ka colon (:) sa mosunod nga payl, nga among nganlan og 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

Idugang ang mga entri sa direktoryo sa LDAP:

# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f baseldapdomain.ldif

8. Paghimo og LDAP user nga gitawag og ldapuser (adduser ldapuser), dayon paghimo og mga depinisyon para sa LDAP nga grupo sa ldapgroup.ldif.

# adduser ldapuser
# vi ldapgroup.ldif

Idugang ang mosunod nga sulod.

dn: cn=Manager,ou=Group,dc=mydomain,dc=com
objectClass: top
objectClass: posixGroup
gidNumber: 1004

diin ang gidNumber mao ang GID sa /etc/group para sa ldapuser) ug i-load kini:

# ldapadd -x -W -D "cn=Manager,dc=mydomain,dc=com" -f ldapgroup.ldif

9. Pagdugang og LDIF file nga adunay mga kahulugan para sa user ldapuser (ldapuser.ldif):

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

ug i-load kini:

# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f ldapuser.ldif

Ingon usab, mahimo nimong papason ang entry sa gumagamit nga imong gibuhat:

# ldapdelete -x -W -D cn=Manager,dc=mydomain,dc=com "uid=ldapuser,ou=People,dc=mydomain,dc=com"

10. Tugoti ang komunikasyon pinaagi sa firewall:

# firewall-cmd --add-service=ldap

11. Katapusan, apan dili labing gamay, makahimo sa kliyente sa pag-authenticate gamit ang LDAP.

Aron matabangan kami niining katapusang lakang, among gamiton ang authconfig utility (usa ka interface alang sa pag-configure sa mga kapanguhaan sa pag-authenticate sa sistema).

Gamit ang mosunud nga mando, ang direktoryo sa balay alang sa gihangyo nga tiggamit gihimo kung kini wala maglungtad pagkahuman ang pag-authenticate batok sa LDAP server molampos:

# authconfig --enableldap --enableldapauth --ldapserver=rhel7.mydomain.com --ldapbasedn="dc=mydomain,dc=com" --enablemkhomedir --update

Summary

Niining artikuloha among gipasabot kon unsaon pag-set up sa batakang pag-authenticate batok sa LDAP server. Aron mas ma-configure ang setup nga gihulagway sa karon nga giya, palihug tan-awa ang Kapitulo 13 - LDAP Configuration sa RHEL 7 System administrator's guide, nga naghatag ug espesyal nga pagtagad sa mga setting sa seguridad gamit ang TLS.

Mobati nga gawasnon nga magbilin bisan unsang mga pangutana nga mahimo nimo gamit ang porma sa komento sa ubos.