![Hvordan bruke en app for påminnelse om legeavtale?](/f/c6cdda8a334d8ac8fdf908c9630c98c3.jpg?width=100&height=100)
Vi begynner denne artikkelen med å skissere noen LDAP grunnleggende (hva det er, hvor det brukes og hvorfor) og vise hvordan du konfigurerer en LDAP -server og konfigurerer en klient for å autentisere mot den ved hjelp av Red Hat Enterprise Linux 7 systemer.
Som vi vil se, er det flere andre mulige applikasjonsscenarier, men i denne guiden vil vi fokusere helt på LDAP-basert godkjenning. I tillegg må du huske på at på grunn av motivets omfang vil vi bare dekke det grunnleggende her, men du kan referere til dokumentasjonen som er beskrevet i sammendraget for mer grundige detaljer.
Av samme grunn vil du merke at jeg har bestemt meg for å utelate flere referanser til mannssider for kortfattet skyld, men de tilsvarende forklaringene er lett tilgjengelig avstand (mann ldapadd, for eksempel).
Når det er sagt, la oss komme i gang.
Testmiljøet vårt består av to RHEL 7 esker:
Server: 192.168.0.18. FQDN: rhel7.mydomain.com. Klient: 192.168.0.20. FQDN: ldapclient.mydomain.com.
Hvis du vil, kan du bruke maskinen som er installert i Del 12: Automatiser RHEL 7 -installasjoner bruker Kickstart som klient.
LDAP står for Lett katalogtilgangsprotokoll og består av et sett med protokoller som lar en klient få tilgang til sentralt lagret informasjon over et nettverk (for eksempel en katalog for pålogging skjell, absolutte stier til hjemmekataloger og annen typisk systembrukerinformasjon, for eksempel) som skal være tilgjengelige fra forskjellige steder eller tilgjengelig for et stort antall sluttbrukere (et annet eksempel er en katalog med hjemmeadresser og telefonnumre til alle ansatte i en selskap).
Å beholde slik (og mer) informasjon sentralt betyr at den lettere kan vedlikeholdes og nås av alle som har fått tillatelse til å bruke den.
Følgende diagram gir et forenklet diagram over LDAP, og er beskrevet nedenfor mer detaljert:
Forklaring av diagrammet ovenfor i detalj.
Når det er sagt, la oss fortsette med server- og klientinstallasjonene.
I RHEL 7, LDAP er implementert av ÅpenLDAP. For å installere serveren og klienten, bruker du henholdsvis følgende kommandoer:
# yum oppdatering && yum installer openldap openldap-klienter openldap-servere. # yum oppdatering && yum installer openldap openldap-klienter nss-pam-ldapd.
Når installasjonen er fullført, er det noen ting vi ser på. Følgende trinn bør utføres på serveren alene, med mindre det er uttrykkelig angitt:
1. Forsikre SELinux kommer ikke i veien ved å aktivere følgende booler vedvarende, både på serveren og klienten:
# setsebool -P allow_ypbind = 0 authlogin_nsswitch_use_ldap = 0.
Hvor allow_ypbind er nødvendig for LDAP-basert autentisering, og authlogin_nsswitch_use_ldap kan være nødvendig for noen applikasjoner.
2. Aktiver og start tjenesten:
# systemctl aktiver slapd.service. # systemctl start slapd.service.
Husk at du også kan deaktivere, starte på nytt eller stoppe tjenesten med systemctl også:
# systemctl deaktiver slapd.service. # systemctl start slapd.service på nytt. # systemctl stopp slapd.service.
3. Siden slapd tjenesten kjøres som ldap -brukeren (som du kan bekrefte med ps -e -o pid, uname, comm | grep slapd), bør slik bruker eie /var/lib/ldap katalog for at serveren skal kunne endre oppføringer som er opprettet av administrative verktøy som bare kan kjøres som root (mer om dette på et minutt).
Før du endrer eierskapet til denne katalogen rekursivt, kopierer du eksempeldatabasens konfigurasjonsfil for slapd i det:
# cp /usr/share/openldap-servers/DB_CONFIG.example/var/lib/ldap/DB_CONFIG. # chown -R ldap: ldap/var/lib/ldap.
4. Sett opp en OpenLDAP -administrativ bruker og tilordne et passord:
# slappasswd.
som vist på neste bilde:
og lage en LDIF fil (ldaprootpasswd.ldif) med følgende innhold:
dn: olcDatabase = {0} config, cn = config. changetype: endre. legg til: olcRootPW. olcRootPW: {SSHA} PASSORD.
hvor:
Med henvisning til den tidligere teoretiske bakgrunnen, ldaprootpasswd.ldif
filen vil legge til en oppføring i LDAP -katalogen. I den oppføringen representerer hver linje et attributt: verdipar (der dn, changetype, add og olcRootPW er attributtene og strengene til høyre for hvert kolon er de tilsvarende verdiene).
Det kan være lurt å huske dette når vi går videre, og vær oppmerksom på at vi bruker de samme vanlige navnene (cn =)
gjennom resten av denne artikkelen, hvor hvert trinn avhenger av det forrige.
5. Legg til den tilsvarende LDAP -oppføringen ved å spesifisere URI refererer til ldap -serveren, der bare protokoll/vert/port -felt er tillatt.
# ldapadd -H ldapi: /// -f ldaprootpasswd.ldif
Utgangen skal være lik:
og importer noen grunnleggende LDAP -definisjoner fra /etc/openldap/schema
katalog:
# for def in cosine.ldif nis.ldif inetorgperson.ldif; gjør ldapadd -H ldapi: /// -f/etc/openldap/schema/$ def; gjort.
6. La LDAP bruke domenet ditt i databasen.
Lag en annen LDIF fil, som vi vil kalle ldapdomain.ldif
, med følgende innhold, erstatte domenet ditt (i domenekomponenten dc =) og passordet etter behov:
dn: olcDatabase = {1} monitor, cn = config. changetype: endre. Erstatt: olcAccess. olcAccess: {0} to * by dn.base = "gidNumber = 0+uidNumber = 0, cn = peercred, cn = external, cn = auth" lest av dn.base = "cn = Manager,dc = mitt domene, dc = com "lest av * none dn: olcDatabase = {2} hdb, cn = config. changetype: endre. erstatte: olcSuffix. olcSuffix: dc = mitt domene, dc = com dn: olcDatabase = {2} hdb, cn = config. changetype: endre. Erstatt: olcRootDN. olcRootDN: cn = Manager,dc = mitt domene, dc = com dn: olcDatabase = {2} hdb, cn = config. changetype: endre. legg til: olcRootPW. olcRootPW: {SSHA} PASSORD dn: olcDatabase = {2} hdb, cn = config. changetype: endre. legg til: olcAccess. olcAccess: {0} to attrs = userPassword, shadowLastChange av dn = "cn = Manager,dc = mitt domene, dc = com "skriv av anonym autentisering av selvskriv av * ingen. olcAccess: {1} to dn.base = "" av * read. olcAccess: {2} til * av dn = "cn = Manager, dc = mydomain, dc = com" skriv av * read.
Last den deretter som følger:
# ldapmodify -H ldapi: /// -f ldapdomain.ldif.
7. Nå er det på tide å legge til noen oppføringer i LDAP -katalogen vår. Attributter og verdier er atskilt med et kolon (:)
i den følgende filen, som vi navngir baseldapdomain.ldif
:
dn: dc = mitt domene, dc = com. objectClass: topp. objectClass: dcObject. objektklasse: organisasjon. o: mydomain com. dc: mydomain dn: cn = Manager, dc = mydomain, dc = com. objectClass: organizationalRole. cn: Manager. beskrivelse: Directory Manager dn: ou = People, dc = mydomain, dc = com. objectClass: organizationalUnit. ou: People dn: ou = Group, dc = mydomain, dc = com. objectClass: organizationalUnit. ou: Gruppe.
Legg til oppføringene i LDAP -katalogen:
# ldapadd -x -D cn = Manager, dc = mydomain, dc = com -W -f baseldapdomain.ldif.
8. Opprett en LDAP -bruker kalt ldapuser (adduser ldapuser), opprett deretter definisjonene for en LDAP -gruppe i ldapgroup.ldif
.
# adduser ldapuser. # vi ldapgroup.ldif.
Legg til følgende innhold.
dn: cn = Manager, ou = Group, dc = mydomain, dc = com. objectClass: topp. objectClass: posixGroup. gidNumber: 1004.
hvor gidNumber er GID i /etc/group for ldapuser) og last den inn:
# ldapadd -x -W -D "cn = Manager, dc = mitt domene, dc = com" -f ldapgroup.ldif.
9. Legg til en LDIF -fil med definisjonene for bruker ldapuser (ldapuser.ldif
):
dn: uid = ldapuser, ou = People, dc = mydomain, dc = com. objectClass: topp. objectClass: konto. 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.
og last den:
# ldapadd -x -D cn = Manager, dc = mitt domene, dc = com -W -f ldapuser.ldif.
På samme måte kan du slette brukeroppføringen du nettopp opprettet:
# ldapdelete -x -W -D cn = Manager, dc = mydomain, dc = com "uid = ldapuser, ou = People, dc = mydomain, dc = com"
10. Tillat kommunikasjon gjennom brannmuren:
# firewall-cmd --add-service = ldap.
11. Sist, men ikke minst, gjør det mulig for klienten å autentisere ved hjelp av LDAP.
For å hjelpe oss i dette siste trinnet, vil vi bruke authconfig verktøy (et grensesnitt for konfigurering av systemgodkjenningsressurser).
Ved å bruke følgende kommando, opprettes hjemmekatalogen for den forespurte brukeren hvis den ikke eksisterer etter at autentiseringen mot LDAP -serveren lykkes:
# authconfig --enableldap --enableldapauth --ldapserver = rhel7.mydomain.com --ldapbasedn = "dc = mydomain, dc = com" --enablemkhomedir --update.
I denne artikkelen har vi forklart hvordan du konfigurerer grunnleggende autentisering mot en LDAP -server. For ytterligere å konfigurere oppsettet beskrevet i denne veiledningen, se Kapittel 13 - LDAP -konfigurasjon i RHEL 7 systemadministratorveiledning, og vær spesielt oppmerksom på sikkerhetsinnstillingene ved hjelp av TLS.
Legg igjen spørsmål du måtte ha ved å bruke kommentarfeltet nedenfor.