Seria RHCSA konfiguruje uwierzytelnianie oparte na LDAP w RHEL 7 - Część 14

Seria RHCSA konfiguruje uwierzytelnianie oparte na LDAP w RHEL 7 - Część 14

Rozpoczniemy ten artykuł od nakreślenia niektórych LDAP Podstawy (co to jest, gdzie jest używany i dlaczego) i pokazuj, jak skonfigurować serwer LDAP i skonfigurować klienta do uwierzytelnienia się za pomocą za pomocą Red Hat Enterprise Linux 7 systemy.

RHCSA Serie

Jak zobaczymy, istnieje kilka innych możliwych scenariuszy aplikacji, ale na tym przewodniku skupimy się całkowicie Oparte na LDAP uwierzytelnianie. Ponadto pamiętaj, że ze względu na ogromnego tematu omówimy tylko jego podstawy, ale możesz odwołać się do dokumentacji przedstawionej w podsumowaniu, aby uzyskać bardziej szczegółowe szczegóły.

Z tego samego powodu zauważysz, że postanowiłem pominąć kilka odniesień do stron narzędzi LDAP ze względu na zwięzłość, ale odpowiednie wyjaśnienia znajdują się na odległości wyciągnięcia (Man ldapadd, Na przykład).

To powiedziawszy, zacznijmy.

Nasze środowisko testowe

Nasze środowisko testowe składa się z dwóch RHEL 7 pudła:

serwer: 192.168.0.18. Fqdn: Rhel7.mydomain.com Klient: 192.168.0.20. Fqdn: ldapclient.mydomain.com 

Jeśli chcesz, możesz użyć maszyny zainstalowanej w części 12: Zautomatyzuj instalacje RHEL 7 za pomocą KICKStART jako klienta.

Co to jest LDAP?

LDAP oznacza Lekki protokół dostępu do katalogu i składa się z zestawu protokołów, które pozwala klientowi uzyskać dostęp do sieci, centralnie przechowywane informacje (takie jak katalog powłok logowania, bezwzględne ścieżki do katal. od różnych miejsc lub dostępnych do dużej liczby użytkowników końcowych (innym przykładem byłby katalog adresów domowych i numerów telefonów wszystkich pracowników w firmie).

Utrzymanie takich (i więcej) informacji centralnie oznacza, że ​​można je łatwiej utrzymać i uzyskać do uzyskania przez wszystkich, którzy otrzymali uprawnienia do korzystania z nich.

Poniższy schemat oferuje uproszczony schemat LDAP, i jest opisany poniżej bardziej szczegółowo:

Schemat LDAP

Szczegółowo wyjaśnienie powyższego schematu.

  1. Jakiś wejście W katalogu LDAP reprezentuje pojedynczą jednostkę lub informacje i jest wyjątkowo identyfikowana przez tak zwaną nazwę wyróżniającą.
  2. Jakiś atrybut to informacje powiązane z wpisem (na przykład adresy, dostępne numery telefonów kontaktowych i adresy e -mail).
  3. Każdy atrybut jest przypisany jeden lub więcej wartości składający się na liście oddzielonej przestrzeni. Wartość, która jest unikalna na wpis, nazywa się względną nazwą wyróżniającą.

To powiedziawszy, kontynuujmy instalacje serwera i klienta.

Instalowanie i konfigurowanie serwera LDAP i klienta

W RHEL 7, LDAP jest wdrażany przez OpenlDap. Aby zainstalować serwer i klient, użyj odpowiednio następujących poleceń:

# Yum Update && Yum Instaluj OpenLDAP OpenlDap-CLUSS OpenLDap-Servers # Yum Update && Yum Instaluj OpenlDap OpenlDAP-CLUSS NSS-PAM-LDAPD 

Po zakończeniu instalacji są pewne rzeczy, na które patrzymy. Poniższe kroki należy wykonać sam na serwerze, chyba że wyraźnie zauważono:

1. Upewnić się Selinux nie przeszkadza, umożliwiając następujące Boolean trwale, zarówno na serwerze, jak i klienta:

# setsebool -p zezwolić_ypbind = 0 authlogin_nssligch_use_ldap = 0 

Gdzie Zezwalaj na_pbind jest wymagane do uwierzytelniania opartego na LDAP i AuthLogin_NSSwitch_use_ldap niektóre aplikacje mogą być potrzebne.

2. Włącz i uruchom usługę:

# Systemctl Włącz slapd.Service # Systemctl start slapd.praca 

Należy pamiętać, że możesz również wyłączyć, ponownie uruchomić lub zatrzymać usługę za pomocą SystemCTL:

# Systemctl wyłącz slapd.Service # Systemctl restart slapd.Service # Systemctl Stop Slapd.praca 

3. Od Slapd Usługa działa jako użytkownik LDAP (który możesz zweryfikować Ps -e -o pid, niezamazja, comm | Grep Slapd), taki użytkownik powinien posiadać /var/lib/ldap katalog, aby serwer mógł modyfikować wpisy utworzone przez narzędzia administracyjne, które można uruchomić tylko jako root (więcej na ten temat za minutę).

Przed zmianą własności tego katalogu rekurencyjnie skopiuj przykładowy plik konfiguracyjny bazy danych Slapd w tym:

# cp/usr/share/openlDap-servers/db_config.przykład/var/lib/ldap/db_config # chown -r ldap: ldap/var/lib/ldap 

4. Skonfiguruj użytkownika administracyjnego OpenLDAP i przypisz hasło:

# slappasswd 

Jak pokazano na następnym obrazie:

Ustaw hasło administratora LDAP

i stwórz Ldif plik (ldaprootpasswd.ldif) Z następującymi treściami:

DN: olcDatabase = 0 config, cn = config cangetype: modyfikuj Dodaj: olcrootpw olcrootpw: ssha hasło 

Gdzie:

  1. HASŁO to sznur haszedowy uzyskany wcześniej.
  2. cn = config Wskazuje globalne opcje konfiguracji.
  3. Olcdatabaza Wskazuje określoną nazwę instancji bazy danych i można je zwykle znaleźć w środku /etc/openlDap/slapd.d/cn = config.

Odnosząc się do teoretycznego tła podanego wcześniej, ldaprootpasswd.ldif Plik doda wpis do katalogu LDAP. W tym wpisie każda linia reprezentuje atrybut: para wartości (gdzie DN, ChangeType, Add i OlcrootPW są atrybutami, a ciągami po prawej stronie każdego okrężnicy są ich odpowiednimi wartościami).

Możesz o tym pamiętać, gdy postępujemy dalej, i pamiętaj, że używamy tych samych powszechnych nazwisk (CN =) przez resztę tego artykułu, w którym każdy krok zależy od poprzedniego.

5. Teraz dodaj odpowiedni wpis LDAP, określając URI odnosząc się do serwera LDAP, gdzie dozwolone są tylko pola protokołu/hosta/portu.

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

Wyjście powinno być podobne do:

Konfiguracja LDAP

i zaimportować podstawowe definicje LDAP z /etc/openlDap/schemat informator:

# dla def w cosinus.ldif nis.LDIF INETORGPERSON.ldif; do ldapadd -h ldapi: /// -f/etc/openlDap/schema/$ def; zrobione 
Definicje LDAP

6. Niech LDAP użyje swojej domeny w swojej bazie danych.

Utwórz kolejny Ldif plik, który zadzwonimy ldapdomain.ldif, Z następującą zawartością zastępując domenę (w komponencie domeny DC =) i hasło odpowiednio:

DN: OLCDATABASE = 1 Monitor, CN = Config CangeType: Modyfikuj Wymień: Olcaccess olcAccess: 0 do * przez DN.base = "gidnumber = 0+uidnumber = 0, cn = peercred, cn = zewnętrzny, cn = auth" odczytany przez DN.base = "cn = menedżer,DC = MyDomain,dc = com "odczyt przez * Brak dn: olcDatabase = 2 hdb, cn = config cangeType: modyfikuj zamień: olcsuffix olcsuffix: DC = MyDomain,dc = com dn: olcDatabase = 2 hdb, cn = config cangeType: modyfikuj zamień: olcrootdn olcrootdn: cn = menedżer,DC = MyDomain,dc = com dn: olcDatabase = 2 hdb, cn = config cangeType: modyfikuj Dodaj: olcrootpw olcrootpw: ssha hasło dn: olcDatabase = 2 hdb, cn = config cangeType: modyfikuj dodaj: olcaccess olcasccess: 0 do attrs = userPassword, shadowlastchange by dn = "cn = menedżer,DC = MyDomain,dc = com "Write by Anonimowy auth autor: Self Write by * none olcaccess: 1 do dn.base = "" przez * odczyt olcAccess: 2 do * przez dn = "cn = menedżer, dc = myDomain, dc = com" pisz przez * odczyt 

Następnie załaduj go w następujący sposób:

# ldapModify -h ldapi: /// -f ldapdomain.ldif 
Konfiguracja domeny LDAP

7. Teraz nadszedł czas, aby dodać kilka wpisów do naszego katalogu LDAP. Atrybuty i wartości są oddzielone przez okrężnicę (:) W poniższym pliku, który nazwiemy Baseldapdomain.ldif:

DN: DC = MyDomain, DC = COM ObjectClass: Top Obiektclass: DCObject ObjectClass: Organizacja O: MyDomain Com DC: MyDomain DN: CN = Manager, DC = MyDomain, DC = COM OBIETNIK ou = ludzie, DC = MyDomain, DC = COM ObjectClass: OrganizationalUnit OU: People DN: OU = Group, DC = MyDomain, DC = COM ObjectClass: OrganizationalUnit Ou: Grupa 

Dodaj wpisy do katalogu LDAP:

# ldapadd -x -d cn = menedżer, dc = myDomain, dc = com -w -f baseldapdomain.ldif 
Dodaj atrybuty i wartości domeny LDAP

8. Utwórz użytkownik LDAP, nazywany Ldapuser (Adduser Ldapuser), następnie utwórz definicje dla grupy LDAP w ldapgroup.ldif.

# adduser ldapuser # vi ldapgroup.ldif 

Dodaj następującą zawartość.

DN: cn = menedżer, ou = grupa, dc = myDomain, dc = com obiekt klas: TOP OBSZIOR CLASS: POSIXGROUP GIDNumber: 1004 

Gdzie Gidnumber jest GID w /etc/grupa dla ldapuser) i załaduj go:

# ldapadd -x -w -d "cn = menedżer, dc = myDomain, dc = com" -f ldapgroup.ldif 

9. Dodaj plik LDIF z definicjami dla użytkownika LDapuser (Ldapuser.ldif):

dn: uid = ldapuser, ou = ludzie, dc = MyDomain, dc = com obiektclass: TOP OBIEKCLASS: Konto ObjectClass: PosixAccount ObjectClass: Shadowaccount CN: LDAPUSER UID: LDAPUSER UIDNUMBER: 1004 SSHA FIN0YQZBDUDI0FPQQ9UUDWMJZQY28S3M LOGINSHELL: /BIN /BASH GECO: LDAPUSER ShadowlastChange: 0 Shadowmax: 0 ShadowWarning: 0 

i załaduj to:

# ldapadd -x -d cn = menedżer, dc = myDomain, dc = com -w -f ldapuser.ldif 
Konfiguracja użytkownika LDAP

Podobnie możesz usunąć właśnie utworzony wpis użytkownika:

# ldapdelete -x -w -d cn = menedżer, dc = myDomain, dc = com "uid = ldapuser, ou = ludzie, dc = myDomain, dc = com" 

10. Pozwól komunikacji za pośrednictwem zapory:

# Firewall-Cmd --add-Service = LDAP 

11. Wreszcie, umożliwić klientowi uwierzytelnianie się za pomocą LDAP.

Aby pomóc nam w tym ostatnim kroku, użyjemy Authconfig narzędzie (interfejs konfigurowania zasobów uwierzytelniania systemu).

Korzystając z następującego polecenia, katalog domowy dla żądanego użytkownika jest tworzony, jeśli nie istnieje po uwierzytelnieniu na serwerze LDAP:

# Authconfig --enableldap --enableldapauth --ldapserver = rhel7.mydomain.com --ldapbasedn = "dc = myDomain, dc = com" --enablemkhomedir -update 
Konfiguracja klienta LDAP

Streszczenie

W tym artykule wyjaśniliśmy, jak skonfigurować podstawowe uwierzytelnianie na serwerze LDAP. Aby dalej skonfigurować konfigurację opisaną w niniejszym przewodniku, patrz rozdział 13 - Konfiguracja LDAP w przewodniku administratora systemu RHEL 7, zwracając szczególną uwagę na ustawienia zabezpieczeń za pomocą TLS.

Zapraszam do zostawienia wszelkich pytań, które możesz użyć poniższego formularza komentarza.