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.
- 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.
- 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).
- 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:
- PASSWORD mao ang hashed string nga nakuha sa sayo pa.
- cn=config nagpaila sa global config mga opsyon.
- 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.