Mfululizo wa RHCSA: Kuweka Uthibitishaji unaotegemea LDAP katika RHEL 7 - Sehemu ya 14
Tutaanza makala haya kwa kueleza baadhi ya misingi ya LDAP (ni nini, inatumika wapi na kwa nini) na kuonyesha jinsi ya kusanidi seva ya LDAP na kusanidi mteja ili kuthibitisha dhidi yake kwa kutumia mifumo ya Red Hat Enterprise Linux 7.
Kama tutakavyoona, kuna matukio mengine kadhaa ya utumizi yanayowezekana, lakini katika mwongozo huu tutazingatia kabisa uthibitishaji wa msingi wa LDAP. Kwa kuongeza, tafadhali kumbuka kwamba kutokana na ukubwa wa somo, tutashughulikia tu misingi yake hapa, lakini unaweza kurejelea hati zilizoainishwa katika muhtasari kwa maelezo ya kina zaidi.
Kwa sababu hiyo hiyo, utagundua kuwa nimeamua kuacha marejeleo kadhaa kwa kurasa za mwanadamu za zana za LDAP kwa sababu ya ufupi, lakini maelezo yanayolingana yako umbali wa ncha ya vidole (man ldapadd, kwa mfano).
Hiyo ilisema, wacha tuanze.
Mazingira yetu ya majaribio yana visanduku viwili vya RHEL 7:
Server: 192.168.0.18. FQDN: rhel7.mydomain.com Client: 192.168.0.20. FQDN: ldapclient.mydomain.com
Ukitaka, unaweza kutumia mashine iliyosakinishwa katika Sehemu ya 12: Weka otomatiki usakinishaji wa RHEL 7 ukitumia Kickstart kama mteja.
LDAP inawakilisha Itifaki ya Ufikiaji wa Saraka Nyepesi na inajumuisha seti ya itifaki ambayo inaruhusu mteja kufikia, kupitia mtandao, habari iliyohifadhiwa serikali kuu (kama vile saraka ya makombora ya kuingia, njia kamili za saraka za nyumbani, na maelezo mengine ya kawaida ya mtumiaji wa mfumo, kwa mfano) ambayo inapaswa kupatikana kutoka sehemu tofauti au kupatikana kwa idadi kubwa ya watumiaji wa mwisho (mfano mwingine utakuwa orodha ya anwani za nyumbani na nambari za simu za wafanyikazi wote katika kampuni).
Kuweka maelezo kama hayo (na zaidi) katikati kunamaanisha kuwa yanaweza kudumishwa na kufikiwa kwa urahisi na kila mtu ambaye amepewa ruhusa ya kuyatumia.
Mchoro ufuatao unatoa mchoro uliorahisishwa wa LDAP, na umefafanuliwa hapa chini kwa undani zaidi:
Ufafanuzi wa mchoro hapo juu kwa undani.
- Ingizo katika saraka ya LDAP inawakilisha kitengo au taarifa moja na inatambulishwa kipekee kwa kile kinachoitwa Jina Lililotofautishwa.
- Sifa ni sehemu ya taarifa inayohusishwa na ingizo (kwa mfano, anwani, nambari za simu zinazopatikana, na anwani za barua pepe).
- Kila sifa imepewa thamani moja au zaidi zinazojumuisha orodha iliyotenganishwa na nafasi. Thamani ambayo ni ya kipekee kwa kila ingizo inaitwa Jina Lililotofautishwa na Jamaa.
Hiyo inasemwa, wacha tuendelee na usakinishaji wa seva na mteja.
Kusakinisha na Kusanidi Seva ya LDAP na Mteja
Katika RHEL 7, LDAP inatekelezwa na OpenLDAP. Ili kufunga seva na mteja, tumia amri zifuatazo, mtawaliwa:
# yum update && yum install openldap openldap-clients openldap-servers # yum update && yum install openldap openldap-clients nss-pam-ldapd
Mara baada ya ufungaji kukamilika, kuna baadhi ya mambo tunayoangalia. Hatua zifuatazo zinapaswa kufanywa kwenye seva pekee, isipokuwa ikiwa imebainishwa wazi:
1. Hakikisha SELinux haisumbui kwa kuwezesha booleans zifuatazo kila mara, kwenye seva na mteja:
# setsebool -P allow_ypbind=0 authlogin_nsswitch_use_ldap=0
Ambapo allow_ypbind inahitajika kwa uthibitishaji kulingana na LDAP, na authlogin_nsswitch_use_ldap inaweza kuhitajika na baadhi ya programu.
2. Wezesha na uanze huduma:
# systemctl enable slapd.service # systemctl start slapd.service
Kumbuka kuwa unaweza pia kuzima, kuanzisha upya, au kusimamisha huduma na systemctl pia:
# systemctl disable slapd.service # systemctl restart slapd.service # systemctl stop slapd.service
3. Kwa kuwa huduma ya slapd inaendeshwa kama mtumiaji wa ldap (ambaye unaweza kuthibitisha kwa ps -e -o pid,uname,comm | grep slapd), mtumiaji kama huyo anapaswa kumiliki saraka ya /var/lib/ldap ili seva iweze. kuwa na uwezo wa kurekebisha maingizo yaliyoundwa na zana za usimamizi ambazo zinaweza tu kuendeshwa kama mzizi (zaidi kuhusu hili kwa dakika moja).
Kabla ya kubadilisha umiliki wa saraka hii kwa kujirudia, nakili sampuli ya faili ya usanidi wa hifadhidata kwa slapd ndani yake:
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # chown -R ldap:ldap /var/lib/ldap
4. Sanidi mtumiaji wa utawala wa OpenLDAP na uweke nenosiri:
# slappasswd
kama inavyoonyeshwa kwenye picha ifuatayo:
na unda faili ya LDIF (ldaprootpasswd.ldif) na yaliyomo yafuatayo:
dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}PASSWORD
wapi:
- PASSWORD ni mfuatano wa heshi uliopatikana mapema.
- cn=config inaonyesha chaguo za usanidi wa kimataifa.
- olcDatabase inaonyesha jina maalum la mfano wa hifadhidata na inaweza kupatikana ndani ya /etc/openldap/slapd.d/cn=config.
Ikirejelea usuli wa kinadharia uliotolewa awali, faili ya ldaprootpasswd.ldif
itaongeza ingizo kwenye saraka ya LDAP. Katika ingizo hilo, kila mstari unawakilisha sifa: jozi ya thamani (ambapo dn, changetype, add, na olcRootPW ni sifa na kamba za kulia kwa kila koloni ni maadili yao yanayolingana).
Huenda ukataka kukumbuka hili tunapoendelea zaidi, na tafadhali kumbuka kuwa tunatumia Majina yale yale ya Kawaida (cn=)
katika sehemu iliyosalia ya makala haya, ambapo kila hatua inategemea iliyotangulia. .
5. Sasa, ongeza ingizo linalolingana la LDAP kwa kubainisha URI inayorejelea seva ya ldap, ambapo ni sehemu za itifaki/mwenyeji/mlango pekee ndizo zinazoruhusiwa.
# ldapadd -H ldapi:/// -f ldaprootpasswd.ldif
Pato linapaswa kuwa sawa na:
na uingize baadhi ya ufafanuzi wa kimsingi wa LDAP kutoka /etc/openldap/schema
saraka:
# for def in cosine.ldif nis.ldif inetorgperson.ldif; do ldapadd -H ldapi:/// -f /etc/openldap/schema/$def; done
6. Fanya LDAP itumie kikoa chako kwenye hifadhidata yake.
Unda faili nyingine ya LDIF, ambayo tutaiita ldapdomain.ldif
, pamoja na maudhui yafuatayo, ukibadilisha kikoa chako (katika Kipengele cha Kikoa dc=) na nenosiri inavyofaa:
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
Kisha pakia kama ifuatavyo:
# ldapmodify -H ldapi:/// -f ldapdomain.ldif
7. Sasa ni wakati wa kuongeza baadhi ya maingizo kwenye orodha yetu ya LDAP. Sifa na thamani zinatenganishwa na koloni (:)
katika faili ifuatayo, ambayo tutaipa jina 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
Ongeza maingizo kwenye saraka ya LDAP:
# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f baseldapdomain.ldif
8. Unda mtumiaji wa LDAP anayeitwa ldapuser (adduser ldapuser), kisha unda ufafanuzi wa kikundi cha LDAP katika ldapgroup.ldif
.
# adduser ldapuser # vi ldapgroup.ldif
Ongeza maudhui yafuatayo.
dn: cn=Manager,ou=Group,dc=mydomain,dc=com objectClass: top objectClass: posixGroup gidNumber: 1004
ambapo gidNumber ndio GID ndani /etc/group kwa ldapuser) na upakie:
# ldapadd -x -W -D "cn=Manager,dc=mydomain,dc=com" -f ldapgroup.ldif
9. Ongeza faili ya LDIF yenye ufafanuzi wa ldapuser ya mtumiaji (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
na kuipakia:
# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f ldapuser.ldif
Vivyo hivyo, unaweza kufuta ingizo la mtumiaji ambalo umeunda hivi punde:
# ldapdelete -x -W -D cn=Manager,dc=mydomain,dc=com "uid=ldapuser,ou=People,dc=mydomain,dc=com"
10. Ruhusu mawasiliano kupitia ngome:
# firewall-cmd --add-service=ldap
11. Mwisho, lakini sio uchache, wezesha mteja kuthibitisha kwa kutumia LDAP.
Ili kutusaidia katika hatua hii ya mwisho, tutatumia matumizi ya authconfig (kiolesura cha kusanidi rasilimali za uthibitishaji wa mfumo).
Kwa kutumia amri ifuatayo, saraka ya nyumbani ya mtumiaji aliyeombwa inaundwa ikiwa haipo baada ya uthibitishaji dhidi ya seva ya LDAP kufanikiwa:
# authconfig --enableldap --enableldapauth --ldapserver=rhel7.mydomain.com --ldapbasedn="dc=mydomain,dc=com" --enablemkhomedir --update
Muhtasari
Katika makala hii tumeelezea jinsi ya kusanidi uthibitishaji wa msingi dhidi ya seva ya LDAP. Ili kusanidi zaidi usanidi uliofafanuliwa katika mwongozo huu, tafadhali rejelea Sura ya 13 - Usanidi wa LDAP katika mwongozo wa msimamizi wa Mfumo wa RHEL 7, ukitoa kipaumbele maalum kwa mipangilio ya usalama kwa kutumia TLS.
Jisikie huru kuacha maswali yoyote ambayo unaweza kuwa nayo kwa kutumia fomu ya maoni hapa chini.