Weboldal keresés

RHCSA sorozat: LDAP-alapú hitelesítés beállítása az RHEL 7-ben – 14. rész


Ezt a cikket azzal kezdjük, hogy felvázolunk néhány LDAP alapismeretet (mi ez, hol és miért használják), és bemutatjuk, hogyan állíthatunk be egy LDAP-kiszolgálót, és konfigurálhatunk egy klienst, hogy hitelesítsen ellene a használatával. Red Hat Enterprise Linux 7rendszerek.

Amint látni fogjuk, számos más lehetséges alkalmazási forgatókönyv is létezik, de ebben az útmutatóban teljes mértékben az LDAP-alapú hitelesítésre összpontosítunk. Ezenkívül kérjük, ne feledje, hogy a téma kiterjedtsége miatt itt csak az alapjaira térünk ki, de részletesebben az összefoglalóban vázolt dokumentációban olvashat.

Ugyanezen okból megjegyzendő, hogy úgy döntöttem, hogy a rövidség kedvéért kihagyok néhány hivatkozást az LDAP-eszközök kézikönyvoldalaira, de a megfelelő magyarázatok karnyújtásnyira vannak (man ldapadd, mert példa).

Ez azt jelenti, kezdjük.

Tesztelési környezetünk

Tesztkörnyezetünk két RHEL 7 dobozból áll:


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

Ha szeretné, használhatja a 12. rész: RHEL 7 telepítések automatizálása a Kickstart kliens használatával című részben telepített gépet.

Mi az LDAP?

Az LDAP a Lightweight Directory Access Protocol rövidítése, és olyan protokollkészletből áll, amely lehetővé teszi az ügyfelek számára, hogy a hálózaton keresztül hozzáférjenek a központilag tárolt információkhoz (például a bejelentkezési parancsértelmezők könyvtárához). , az otthoni címtárak abszolút elérési útjai és egyéb tipikus rendszerfelhasználói információk, például), amelyeknek különböző helyekről vagy nagyszámú végfelhasználó számára elérhetőnek kell lenniük (egy másik példa lehet az összes alkalmazott otthoni címét és telefonszámát tartalmazó telefonkönyv). a cég).

Az ilyen (és több) információk központi megőrzése azt jelenti, hogy mindenki könnyebben karbantarthatja és hozzáférhet, aki engedélyt kapott a használatára.

Az alábbi diagram az LDAP egyszerűsített diagramját mutatja be, és az alábbiakban részletesebben ismertetjük:

A fenti diagram részletes magyarázata.

  1. Az LDAP-címtárban lévő bejegyzés egyetlen egységet vagy információt képvisel, és egyedileg azonosítható az úgynevezett megkülönböztető névvel.
  2. Az attribútum egy bejegyzéshez kapcsolódó információ (például címek, elérhető telefonszámok és e-mail címek).
  3. Minden attribútumhoz egy vagy több érték van hozzárendelve, amelyek szóközzel elválasztott listából állnak. A bejegyzésenként egyedi értéket relatív megkülönböztető névnek nevezzük.

Ennek ellenére folytassuk a szerver és a kliens telepítését.

LDAP szerver és kliens telepítése és konfigurálása

Az RHEL 7 verzióban az LDAP-t az OpenLDAP valósítja meg. A szerver és a kliens telepítéséhez használja a következő parancsokat:


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

A telepítés befejezése után néhány dolgot megvizsgálunk. A következő lépéseket csak a szerveren kell végrehajtani, hacsak nincs kifejezetten megjelölve:

1. Győződjön meg arról, hogy a SELinux ne akadályozza az alábbi logikai értékeket, mind a szerveren, mind a kliensen:


setsebool -P allow_ypbind=0 authlogin_nsswitch_use_ldap=0

Ahol az allow_ypbind szükséges az LDAP-alapú hitelesítéshez, az authlogin_nsswitch_use_ldap pedig egyes alkalmazásokhoz szükséges.

2. Engedélyezze és indítsa el a szolgáltatást:


systemctl enable slapd.service
systemctl start slapd.service

Ne feledje, hogy a systemctl segítségével is letilthatja, újraindíthatja vagy leállíthatja a szolgáltatást:


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

3. Mivel a slapd szolgáltatás ldap felhasználóként fut (ezt a ps -e -o pid,uname,comm | grep slapd paranccsal ellenőrizheti >), az ilyen felhasználónak birtokolnia kell a /var/lib/ldap könyvtárat, hogy a szerver képes legyen módosítani a csak rootként futtatható adminisztrációs eszközök által létrehozott bejegyzéseket (erről bővebben a perc).

Mielőtt rekurzív módon megváltoztatná a könyvtár tulajdonjogát, másolja be a slapd mintaadatbázis-konfigurációs fájlját:


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

4. Állítson be egy OpenLDAP rendszergazdai felhasználót, és rendeljen hozzá jelszót:


slappasswd

ahogy a következő képen látható:

és hozzon létre egy LDIF fájlt (ldaprootpasswd.ldif) a következő tartalommal:


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

ahol :

  1. A PASSWORD a korábban kapott kivonatolt karakterlánc.
  2. A cn=config a globális konfigurációs beállításokat jelöli.
  3. Az olcDatabase egy adott adatbázispéldány nevét jelöli, és általában az /etc/openldap/slapd.d/cn=config mappában található.

A korábban ismertetett elméleti háttérre hivatkozva az ldaprootpasswd.ldif fájl egy bejegyzést fog hozzáadni az LDAP-könyvtárhoz. Ebben a bejegyzésben minden sor egy attribútum: értékpárt jelöl (ahol a dn, changetype, add és olcRootPW az attribútumok, és az egyes kettőspontoktól jobbra lévő karakterláncok a megfelelő értékek).

Érdemes ezt szem előtt tartania, amikor tovább haladunk, és vegye figyelembe, hogy a cikk további részében ugyanazokat a (cn=) gyakori neveket használjuk, ahol minden lépés az előzőtől függ. .

5. Most adja hozzá a megfelelő LDAP-bejegyzést az ldap-szerverre hivatkozó URI megadásával, ahol csak a protokoll/gazda/port mezők engedélyezettek.


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

A kimenetnek hasonlónak kell lennie:

és importáljon néhány alapvető LDAP-definíciót az /etc/openldap/schema könyvtárból:


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

6. Az LDAP használja a domainjét az adatbázisában.

Hozzon létre egy másik LDIF fájlt, amelyet ldapdomain.ldif néven fogunk hívni, a következő tartalommal, cserélje le a domainjét (a dc= Domain komponensben) és jelszavát, ha szükséges:


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

Ezután töltse be a következőképpen:


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

7. Itt az ideje, hogy néhány bejegyzést adjunk az LDAP-címtárunkhoz. Az attribútumokat és az értékeket kettősponttal (:) választja el a következő fájl, amelynek elnevezése 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

Adja hozzá a bejegyzéseket az LDAP-könyvtárhoz:


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

8. Hozzon létre egy ldapuser nevű LDAP-felhasználót (adduser ldapuser), majd hozza létre az LDAP-csoport definícióit az ldapgroup.ldif fájlban. .


adduser ldapuser
vi ldapgroup.ldif

Adja hozzá a következő tartalmat.


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

ahol a gidNumber a GID a /etc/group fájlban az ldapuser számára), és töltse be:


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

9. Adjon hozzá egy LDIF-fájlt az ldapuser felhasználó definícióival (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

és töltsd be:


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

Hasonlóképpen törölheti az imént létrehozott felhasználói bejegyzést:


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

10. Tűzfalon keresztüli kommunikáció engedélyezése:


firewall-cmd --add-service=ldap

11. Végül, de nem utolsósorban engedélyezze az ügyfél számára az LDAP használatával történő hitelesítést.

Az utolsó lépésben az authconfig segédprogramot (a rendszerhitelesítési erőforrások konfigurálására szolgáló felületet) használjuk.

A következő paranccsal létrejön a kért felhasználó saját könyvtára, ha az nem létezik, miután az LDAP-kiszolgálóval végzett hitelesítés sikeres volt:


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

Összegzés

Ebben a cikkben elmagyaráztuk, hogyan állíthat be alapvető hitelesítést LDAP-kiszolgálón. A jelen útmutatóban leírt beállítás további konfigurálásához tekintse meg az RHEL 7 rendszergazdai útmutató 13. fejezetét – LDAP konfiguráció, különös figyelmet fordítva a TLS használatával végzett biztonsági beállításokra.

Nyugodtan tegye fel kérdéseit az alábbi megjegyzés űrlap segítségével.