Ovaj ćemo članak opisati neke od njih LDAP osnove (što je to, gdje se koristi i zašto) i pokazati kako postaviti LDAP poslužitelj i konfigurirati klijenta za provjeru autentičnosti prema njemu pomoću Red Hat Enterprise Linux 7 sustava.
Kao što ćemo vidjeti, postoji nekoliko drugih mogućih scenarija primjene, no u ovom ćemo se vodiču u potpunosti usredotočiti na Na temelju LDAP-a ovjera. Osim toga, imajte na umu da ćemo zbog opsežnosti teme ovdje obraditi samo njezine osnove, ali za detaljnije pojedinosti možete se obratiti dokumentaciji navedenoj u sažetku.
Iz istog razloga primijetit ćete da sam odlučio izostaviti nekoliko referenci na stranicama s uputama LDAP alata radi sažetosti, ali odgovarajuća objašnjenja nadohvat su ruke udaljenost (čovjek ldapadd, na primjer).
Rečeno je, počnimo.
Naše ispitno okruženje sastoji se od dva RHEL 7 kutije:
Poslužitelj: 192.168.0.18. FQDN: rhel7.mydomain.com. Klijent: 192.168.0.20. FQDN: ldapclient.mydomain.com.
Ako želite, možete koristiti stroj instaliran u Dio 12: Automatizirajte instalacije RHEL 7 koristeći Kickstart kao klijenta.
LDAP stoji za Lagani protokol za pristup imeniku i sastoji se od niza protokola koji klijentu omogućuju pristup, preko mreže, centralno pohranjenim podacima (kao što je direktorij za prijavu ljuske, apsolutni putevi do kućnih direktorija i drugi tipični podaci o korisniku sustava, na primjer) koji bi trebali biti dostupni s različitih mjesta ili dostupna velikom broju krajnjih korisnika (drugi primjer bio bi imenik kućnih adresa i telefonskih brojeva svih zaposlenika u društvo).
Središnje čuvanje takvih (i više) informacija znači da se njima može lakše održavati i pristupiti svima kojima je odobrena upotreba.
Sljedeći dijagram nudi pojednostavljeni dijagram LDAP, a dolje je detaljnije opisano:
Detaljno objašnjenje gornjeg dijagrama.
S obzirom na to, nastavimo s instalacijama poslužitelja i klijenta.
U RHEL 7, LDAP implementira OpenLDAP. Za instaliranje poslužitelja i klijenta upotrijebite sljedeće naredbe:
# yum ažuriranje && yum instaliranje openldap openldap-klijenti openldap-poslužitelji. # yum update && yum install openldap openldap-clients nss-pam-ldapd.
Kad instalacija završi, moramo pogledati neke stvari. Sljedeće korake treba izvesti samo na poslužitelju, osim ako nije izričito navedeno:
1. Budi siguran SELinux ne ometa tako što omogućuje sljedeće booleans stalno, i na poslužitelju i na klijentu:
# setsebool -P allow_ypbind = 0 authlogin_nsswitch_use_ldap = 0.
Gdje dopusti_ypbind je potrebna za provjeru autentičnosti temeljenu na LDAP-u, i authlogin_nsswitch_use_ldap mogu biti potrebne nekim aplikacijama.
2. Omogućite i pokrenite uslugu:
# systemctl omogućiti slapd.service. # systemctl start slapd.service.
Imajte na umu da uslugu možete i onemogućiti, ponovno pokrenuti ili zaustaviti systemctl također:
# systemctl onemogući slapd.service. # systemctl ponovno pokrenite slapd.service. # systemctl stop slapd.service.
3. Budući da je slapd usluga radi kao ldap korisnik (što možete provjeriti pomoću ps -e -o pid, uname, comm | grep slapd), takav korisnik treba posjedovati /var/lib/ldap direktorij kako bi poslužitelj mogao izmijeniti unose stvorene administrativnim alatima koji se mogu pokrenuti samo kao root (više o tome u minuti).
Prije nego što rekurzivno promijenite vlasništvo nad ovim imenikom, kopirajte oglednu konfiguracijsku datoteku baze podataka za slapd u to:
# cp /usr/share/openldap-servers/DB_CONFIG.example/var/lib/ldap/DB_CONFIG. # chown -R ldap: ldap/var/lib/ldap.
4. Postavite administratorskog korisnika OpenLDAP -a i dodijelite lozinku:
# slappasswd.
kao što je prikazano na sljedećoj slici:
i stvoriti LDIF datoteka (ldaprootpasswd.ldif) sa sljedećim sadržajem:
dn: olcDatabase = {0} config, cn = config. changetype: modify. dodaj: olcRootPW. olcRootPW: {SSHA} LOZINKA.
gdje:
Pozivajući se na ranije navedenu teorijsku podlogu, ldaprootpasswd.ldif
file će dodati unos u LDAP direktorij. U tom unosu svaki redak predstavlja par atribut: vrijednost (gdje su dn, tip promjene, dodavanje i olcRootPW atributi, a nizovi desno od svakog dvotočka odgovarajuće vrijednosti).
Možda želite imati na umu to dok nastavljamo dalje. Imajte na umu da koristimo ista zajednička imena (cn =)
u ostatku ovog članka, gdje svaki korak ovisi o prethodnom.
5. Sada dodajte odgovarajući unos LDAP navođenjem URI koji se odnosi na poslužitelj ldap, gdje su dopuštena samo polja protokola/hosta/porta.
# ldapadd -H ldapi: /// -f ldaprootpasswd.ldif
Izlaz bi trebao biti sličan:
i uvesti neke osnovne definicije LDAP -a iz /etc/openldap/schema
imenik:
# for def in cosine.ldif nis.ldif inetorgperson.ldif; do ldapadd -H ldapi: /// -f/etc/openldap/schema/$ def; učinjeno.
6. Neka LDAP koristi vašu domenu u svojoj bazi podataka.
Stvorite drugu LDIF datoteku, koju ćemo nazvati ldapdomain.ldif
, sa sljedećim sadržajem, zamjenjujući vašu domenu (u komponenti domene dc =) i lozinku prema potrebi:
dn: olcDatabase = {1} monitor, cn = config. changetype: modify. zamijeniti: olcAccess. olcAccess: {0} to * by dn.base = "gidNumber = 0+uidNumber = 0, cn = peercred, cn = external, cn = auth" čita dn.base = "cn = Manager,dc = mojadomena, dc = com "čita * nema dn: olcDatabase = {2} hdb, cn = config. changetype: modify. zamijeniti: olcSuffix. olcSufiks: dc = mojadomena, dc = com dn: olcDatabase = {2} hdb, cn = config. changetype: modify. zamijeni: olcRootDN. olcRootDN: cn = Upravitelj,dc = mojadomena, dc = com dn: olcDatabase = {2} hdb, cn = config. changetype: modify. dodaj: olcRootPW. olcRootPW: {SSHA} LOZINKA dn: olcDatabase = {2} hdb, cn = config. changetype: modify. dodaj: olcAccess. olcAccess: {0} to attrs = userPassword, shadowLastChange by dn = "cn = Manager,dc = mojadomena, dc = com "pisanje anonimnim auth samostalno pisanje * nema. olcAccess: {1} to dn.base = "" by * read. olcAccess: {2} to * by dn = "cn = Manager, dc = mydomain, dc = com" piši po * read.
Zatim ga učitajte na sljedeći način:
# ldapmodify -H ldapi: /// -f ldapdomain.ldif.
7. Sada je vrijeme da dodate neke unose u naš LDAP direktorij. Atributi i vrijednosti odvojeni su dvotočkom (:)
u sljedećoj datoteci kojoj ćemo dati ime baseldapdomain.ldif
:
dn: dc = mydomain, dc = com. objectClass: top. objectClass: dcObject. predmetna klasa: organizacija. o: mydomain com. dc: mydomain dn: cn = Manager, dc = mydomain, dc = com. objectClass: organizationRole. cn: Upravitelj. opis: Upravitelj imenika dn: ou = Osobe, dc = mojadomena, dc = com. objectClass: organizationUnit. ou: Ljudi dn: ou = Grupa, dc = mojadomena, dc = com. objectClass: organizationUnit. ou: Grupa.
Dodajte unose u LDAP direktorij:
# ldapadd -x -D cn = Upravitelj, dc = mydomain, dc = com -W -f baseldapdomain.ldif.
8. Izradite LDAP korisnika koji se zove ldapuser (adduser ldapuser), zatim stvorite definicije za LDAP grupu u ldapgroup.ldif
.
# adduser ldapuser. # vi ldapgroup.ldif.
Dodajte sljedeći sadržaj.
dn: cn = Manager, ou = Group, dc = mydomain, dc = com. objectClass: top. objectClass: posixGroup. gidbroj: 1004.
gdje gidBroj je GID u /etc/group za ldapuser) i učitajte ga:
# ldapadd -x -W -D "cn = Upravitelj, dc = mojadomena, dc = com" -f ldapgroup.ldif.
9. Dodajte LDIF datoteku s definicijama za korisnika ldapuser (ldapuser.ldif
):
dn: uid = ldapuser, ou = Ljudi, dc = mojadomena, dc = com. objectClass: top. objectClass: račun. objectClass: posixAccount. objectClass: shadowAccount. cn: ldapuser. uid: ldapuser. uidBroj: 1004. gidbroj: 1004. homeDirektorij: /home /ldapuser. korisnička lozinka: {SSHA} fiN0YqzbDuDI0Fpqq9UudWmjZQY28S3M. loginShell: /bin /bash. gecos: ldapuser. shadowLastChange: 0. shadowMax: 0. shadowUpozorenje: 0.
i učitajte ga:
# ldapadd -x -D cn = Upravitelj, dc = mojadomena, dc = com -W -f ldapuser.ldif.
Isto tako, možete izbrisati korisnički unos koji ste upravo stvorili:
# ldapdelete -x -W -D cn = Upravitelj, dc = mojadomena, dc = com "uid = ldapuser, ou = Ljudi, dc = mojadomena, dc = com"
10. Dopustite komunikaciju kroz vatrozid:
# firewall-cmd --add-service = ldap.
11. Na kraju, ali ne i najmanje važno, omogućite klijentu provjeru autentičnosti pomoću LDAP -a.
Kako bismo nam pomogli u ovom posljednjem koraku, upotrijebit ćemo authconfig uslužni program (sučelje za konfiguriranje izvora autentifikacije sustava).
Pomoću sljedeće naredbe stvara se kućni direktorij za traženog korisnika ako ne postoji nakon uspješne provjere autentičnosti na LDAP poslužitelju:
# authconfig --enableldap --enableldapauth --ldapserver = rhel7.mydomain.com --ldapbasedn = "dc = mydomain, dc = com" --enablemkhomedir --update.
U ovom smo članku objasnili kako postaviti osnovnu provjeru autentičnosti prema LDAP poslužitelju. Za daljnje konfiguriranje postavki opisanih u ovom vodiču pogledajte Poglavlje 13 - LDAP konfiguracija u vodiču za administratora sustava RHEL 7, posvećujući posebnu pozornost sigurnosnim postavkama pomoću TLS -a.
Slobodno ostavite bilo kakva pitanja koristeći obrazac za komentare ispod.