Serje RHCSA: Twaqqif ta' Awtentikazzjoni bbażata fuq LDAP f'RHEL 7 - Parti 14
Se nibdew dan l-artikolu billi niddeskrivu xi punti bażiċi tal-LDAP (x'inhu, fejn jintuża u għaliex) u nuru kif twaqqaf server LDAP u kkonfigurat klijent biex jawtentika kontrih bl-użu tas-sistemi Red Hat Enterprise Linux 7.
Kif se naraw, hemm diversi xenarji oħra ta 'applikazzjoni possibbli, iżda f'din il-gwida se niffukaw kompletament fuq awtentikazzjoni bbażata fuq LDAP. Barra minn hekk, jekk jogħġbok żomm f'moħħok li minħabba l-kobor tas-suġġett, aħna se nkopru biss il-punti bażiċi tiegħu hawn, iżda tista 'tirreferi għad-dokumentazzjoni deskritta fis-sommarju għal dettalji aktar fil-fond.
Għall-istess raġuni, tinnota li ddeċidejt li nħalli barra diversi referenzi għal paġni man ta 'għodod LDAP għal finijiet ta' qosor, iżda l-ispjegazzjonijiet korrispondenti huma f'distanza ta 'subgħajk (man ldapadd, per eżempju).
Cela dit, ejja nibdew.
L-ambjent tat-test tagħna jikkonsisti f'żewġ kaxxi RHEL 7:
Server: 192.168.0.18. FQDN: rhel7.mydomain.com Client: 192.168.0.20. FQDN: ldapclient.mydomain.com
Jekk trid, tista 'tuża l-magna installata fil-Parti 12: Awtomatizza l-installazzjonijiet RHEL 7 billi tuża Kickstart bħala klijent.
LDAP tfisser Lightweight Directory Access Protocol u tikkonsisti f'sett ta' protokolli li jippermettu lil klijent jaċċessa, fuq netwerk, informazzjoni maħżuna ċentralment (bħal direttorju ta' qxur ta' login, mogħdijiet assoluti għal direttorji tad-dar, u informazzjoni tipika oħra dwar l-utent tas-sistema, pereżempju) li għandhom ikunu aċċessibbli minn postijiet differenti jew disponibbli għal numru kbir ta’ utenti finali (eżempju ieħor ikun direttorju ta’ indirizzi tad-dar u numri tat-telefon tal-impjegati kollha f’kumpanija).
Iż-żamma ta' tali (u aktar) informazzjoni ċentralment ifisser li tista' tinżamm u tiġi aċċessata aktar faċilment minn kull min ikun ingħata permessi biex jużaha.
Id-dijagramma li ġejja toffri dijagramma simplifikata ta 'LDAP, u hija deskritta hawn taħt f'aktar dettall:
Spjegazzjoni tad-dijagramma ta' hawn fuq fid-dettall.
- Daħla f'direttorju LDAP tirrappreżenta unità jew informazzjoni waħda u hija identifikata unikament b'dak li jissejjaħ Isem Distinti.
- Attribut huwa biċċa informazzjoni assoċjata ma' dħul (pereżempju, indirizzi, numri tat-telefon ta' kuntatt disponibbli, u indirizzi tal-email).
- Kull attribut huwa assenjat valur wieħed jew aktar li jikkonsistu f'lista separata bi spazju. Valur li huwa uniku għal kull entrata jissejjaħ Isem Relattiv Distinti.
Għalhekk, ejja nipproċedu bl-installazzjonijiet tas-server u tal-klijent.
Installazzjoni u Konfigurazzjoni ta' Server u Klijent LDAP
F'RHEL 7, LDAP huwa implimentat minn OpenLDAP. Biex tinstalla s-server u l-klijent, uża l-kmandi li ġejjin, rispettivament:
# yum update && yum install openldap openldap-clients openldap-servers # yum update && yum install openldap openldap-clients nss-pam-ldapd
Ladarba l-installazzjoni titlesta, hemm xi affarijiet li nħarsu lejhom. Il-passi li ġejjin għandhom jitwettqu fuq is-server waħdu, sakemm ma jkunx innutat b'mod espliċitu:
1. Kun żgur li SELinux ma jfixkilx billi tippermetti l-booleans li ġejjin b'mod persistenti, kemm fuq is-server kif ukoll fuq il-klijent:
# setsebool -P allow_ypbind=0 authlogin_nsswitch_use_ldap=0
Fejn allow_ypbind huwa meħtieġ għal awtentikazzjoni bbażata fuq LDAP, u authlogin_nsswitch_use_ldap jista' jkun meħtieġ minn xi applikazzjonijiet.
2. Ippermetti u ibda s-servizz:
# systemctl enable slapd.service # systemctl start slapd.service
Żomm f'moħħok li tista 'wkoll tiddiżattiva, terġa' tibda jew twaqqaf is-servizz bis-systemctl ukoll:
# systemctl disable slapd.service # systemctl restart slapd.service # systemctl stop slapd.service
3. Peress li s-servizz slapd jaħdem bħala l-utent ldap (li tista' tivverifika b'ps -e -o pid,uname,comm | grep slapd), utent bħal dan għandu jkollu d-direttorju /var/lib/ldap sabiex is-server tkun tista' timmodifika l-entrati maħluqa minn għodod amministrattivi li jistgħu jitħaddmu biss bħala root (aktar dwar dan f'minuta).
Qabel ma tibdel is-sjieda ta' dan id-direttorju b'mod rikorsiv, ikkopja l-kampjun tal-fajl tal-konfigurazzjoni tad-database għal slapd fih:
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # chown -R ldap:ldap /var/lib/ldap
4. Stabbilixxi utent amministrattiv OpenLDAP u assenja password:
# slappasswd
kif muri fl-immaġni li jmiss:
u oħloq fajl LDIF (ldaprootpasswd.ldif) bil-kontenut li ġej:
dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}PASSWORD
fejn:
- PASSWORD hija s-sekwenza hashed miksuba qabel.
- cn=config jindika għażliet ta' konfigurazzjoni globali.
- olcDatabase jindika isem speċifiku tal-istanza tad-database u tipikament jista' jinstab ġewwa /etc/openldap/slapd.d/cn=config.
B'referenza għall-isfond teoretiku pprovdut aktar kmieni, il-fajl ldaprootpasswd.ldif
se jżid dħul fid-direttorju LDAP. F'dik id-dħul, kull linja tirrappreżenta attribut: par ta 'valur (fejn dn, changetype, add, u olcRootPW huma l-attributi u l-kordi fuq il-lemin ta' kull kolon huma l-valuri korrispondenti tagħhom).
Jista' jkun li trid iżżomm dan f'moħħok hekk kif nipproċedu aktar, u jekk jogħġbok innota li qed nużaw l-istess Ismijiet Komuni (cn=)
matul il-kumplament ta' dan l-artikolu, fejn kull pass jiddependi fuq dak preċedenti .
5. Issa, żid l-entrata LDAP korrispondenti billi tispeċifika l-URI li tirreferi għas-server ldap, fejn huma permessi biss l-oqsma tal-protokoll/host/port.
# ldapadd -H ldapi:/// -f ldaprootpasswd.ldif
L-output għandu jkun simili għal:
u jimporta xi definizzjonijiet bażiċi LDAP mid-direttorju /etc/openldap/schema
:
# for def in cosine.ldif nis.ldif inetorgperson.ldif; do ldapadd -H ldapi:/// -f /etc/openldap/schema/$def; done
6. Ħalli LDAP juża d-dominju tiegħek fid-database tiegħu.
Oħloq fajl LDIF ieħor, li se nsejħulu ldapdomain.ldif
, bil-kontenut li ġej, filwaqt li tissostitwixxi d-dominju tiegħek (fil-Komponent tad-Dominju dc=) u l-password kif xieraq:
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
Imbagħad tagħbijaha kif ġej:
# ldapmodify -H ldapi:/// -f ldapdomain.ldif
7. Issa wasal iż-żmien li żżid xi entrati fid-direttorju LDAP tagħna. L-attributi u l-valuri huma separati b'kolon (:)
fil-fajl li ġej, li se nsemmu 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
Żid l-entrati fid-direttorju LDAP:
# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f baseldapdomain.ldif
8. Oħloq utent LDAP imsejjaħ ldapuser (adduser ldapuser), imbagħad oħloq id-definizzjonijiet għal grupp LDAP f'ldapgroup.ldif
.
# adduser ldapuser # vi ldapgroup.ldif
Żid il-kontenut li ġej.
dn: cn=Manager,ou=Group,dc=mydomain,dc=com objectClass: top objectClass: posixGroup gidNumber: 1004
fejn gidNumber huwa l-GID f'/etc/group għal ldapuser) u tagħbijah:
# ldapadd -x -W -D "cn=Manager,dc=mydomain,dc=com" -f ldapgroup.ldif
9. Żid fajl LDIF bid-definizzjonijiet għall-utent 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
u tagħbijaha:
# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f ldapuser.ldif
Bl-istess mod, tista' tħassar id-dħul tal-utent li għadek kif ħloqt:
# ldapdelete -x -W -D cn=Manager,dc=mydomain,dc=com "uid=ldapuser,ou=People,dc=mydomain,dc=com"
10. Ħalli l-komunikazzjoni permezz tal-firewall:
# firewall-cmd --add-service=ldap
11. L-aħħar, iżda mhux l-inqas, jippermetti lill-klijent biex jawtentika bl-użu ta 'LDAP.
Biex tgħinna f'dan il-pass finali, se nużaw l-utilità authconfig (interface għall-konfigurazzjoni tar-riżorsi tal-awtentikazzjoni tas-sistema).
Bl-użu tal-kmand li ġej, id-direttorju tad-dar għall-utent mitlub jinħoloq jekk ma jeżistix wara li l-awtentikazzjoni kontra s-server LDAP tirnexxi:
# authconfig --enableldap --enableldapauth --ldapserver=rhel7.mydomain.com --ldapbasedn="dc=mydomain,dc=com" --enablemkhomedir --update
Sommarju
F'dan l-artikolu spjegajna kif twaqqaf awtentikazzjoni bażika kontra server LDAP. Biex tkompli tikkonfigura s-setup deskritta fil-gwida preżenti, jekk jogħġbok irreferi għall-Kapitolu 13 - Konfigurazzjoni LDAP fil-gwida tal-amministratur tas-Sistema RHEL 7, billi tagħti attenzjoni speċjali lill-issettjar tas-sigurtà bl-użu ta 'TLS.
Ħossok liberu li tħalli kwalunkwe mistoqsija li jista 'jkollok billi tuża l-formola tal-kummenti hawn taħt.