Katalogtjeneste med LDAP [5]: OpenLDAP (II)

La oss fortsette, ikke uten først å konsultere:

I dette innlegget vil vi se:

Lokal brukerautentisering

Etter at OpenLDAP-serveren er i gang, hvis vi vil teste eller ha lokal autentisering av registrerte brukere - eller at vi vil registrere - i katalogen, må vi installere og konfigurere de nødvendige pakkene.

I Squeeze er de involverte pakkene:

libnss-ldap: Gir Name Exchange Service (NSS navneservicebryter) som lar LDAP-serveren fungere som en navneserver.

Det betyr å gi informasjon om brukerkontoer, gruppe-ID-er, informasjon om verten, aliaser, NetGroups og i utgangspunktet alle andre data som vanligvis hentes fra vanlige tekstfiler som f.eks. / Etc / passwd/ etc / gruppe, etc., eller en tjeneste NIS.

libpam-ldap: "Pluggbar godkjenningsmodul for LDAP", Eller modul PAM for LDAP. Gir et grensesnitt mellom LDAP-serveren og autentiseringssystemet gjennom PAM.

nscd: "Navn Service Cache Daemon“, Eller Daemon for Name Service Cache. Den håndterer søket etter passord, grupper og verter og lagrer resultatene av søkene i hurtigbufferen for fremtidig referanse.

: ~ # aptitude installer libnss-ldap finger

Installere pakken libnss-ldap, som også installeres som avhengigheter libpam-ldap allerede djevelen nscd, tar oss gjennom en konfigurasjonsveiviser, hvis spørsmål vi må svare på riktig måte:

libnss-01

libnss-02

libnss-03

libnss-04

libnss-05

libnss-06

libpam-01

libpam-02

libpam-03

libpam-04

Hvis vi ønsker å konfigurere pakkene på nytt libnss-ldap og / eller libpam-ldap, må vi utføre:

: ~ # dpkg-omkonfigurer libnss-ldap
: ~ # dpkg-omkonfigurer libpam-ldap

Senere endrer vi filen /etc/nsswitch.conf og vi lar det med følgende innhold:

: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Eksempel på konfigurasjon av GNU Name Service Switch-funksjonalitet. # Hvis du har pakken 'glibc-doc-reference' og 'info' installert, kan du prøve: # `info libc" Name Service Switch "'for informasjon om denne filen. passwd: compat ldap-gruppe: compat ldap shadow: compat ldap-verter: filer dns-nettverk: filer protokoller: db-filer tjenester: db-filer etere: db-filer rpc: db-filer nettgruppe: nis

For endringene i filen /etc/nsswitch.conf trer i kraft, starter vi tjenesten på nytt nscd:

: ~ # service nscd restart

Viktig detalj er å endre filen /etc/pam.d/common-session for at brukermappen skal opprettes på den lokale serveren når du logger på den, en bruker registrert i katalogen:

: ~ # nano /etc/pam.d/common-session
[----]
økt kreves pam_mkhomedir.so skel = / etc / skel / umask = 0022
### Linjen ovenfor må inkluderes FØR # her er modulene per pakke ("Primær" -blokken) [----]

Befolk databasen

For å fylle ut katalogdatabasen eller starte den, må vi legge til de viktigste organisasjonsenhetene, registrere minst en brukergruppe og legge til en bruker. For å gjøre dette oppretter vi en fil i LDIF-format, som vi senere vil legge til katalogen, med følgende innhold:

: ~ # nano content.ldif
dn: ou = People, dc = friends, dc = cu objectClass: organisationalUnit ou: People dn: ou = Groups, dc = friends, dc = cu objectClass: organisationalUnit ou: Groups dn: cn = rings, ou = Groups, dc = venner, dc = cu objectClass: posixGruppe cn: rings gidNumber: 10000 dn: uid = frodo, ou = People, dc = friends, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: frodo sn: Bagins givenName: Frodo cn : Frodo Bagins displayName: Frodo Bagins uidNumber: 10000 gidNumber: 10000 userPassword: frodo mail: frodo@amigos.cu gecos: Frodo Bagins loginShell: / bin / bash homeDirectory: / home / frodo

Vi legger til innholdet i filen i katalogen:

: ~ # ldapadd -x -D cn = admin, dc = venner, dc = cu -W -f content.ldif
Skriv inn LDAP-passord: legge til ny oppføring "ou = People, dc = venner, dc = cu" legge til ny oppføring "ou = Grupper, dc = venner, dc = cu" legge til ny oppføring "cn = ringer, ou = Grupper, dc = venner, dc = cu "legge til ny oppføring" uid = frodo, ou = People, dc = venner, dc = cu "

Vi utfører de relevante kontrollene:

: ~ # id frodo
uid = 10000 (frodo) gid = 10000 (ringer) grupper = 10000 (ringer)

: ~ # getent passwd | grep frodo
frodo: x: 10000: 10000: Frodo Bagins: / home / frodo: / bin / bas

: ~ # finger frodo
Pålogging: frodo Navn: Frodo Bagins Directory: / home / frodo Shell: / bin / bash Aldri pålogget. Ingen post. Ingen plan.

: ~ # ldapsearch -Y EXTERNAL -H ldapi: /// -b uid = frodo, ou = People, dc = venner, dc = cu

Nå har vi en katalogtjeneste som vi må administrere !!! Vi vil utvikle to måter: den første gjennom pakken lscripts, og den andre, som vi vil ta opp i neste artikkel, vil være gjennomLdap Account Manager.

Vi bør også si at pakken ldap-utils, gir en rekke nyttige kommandoer for å administrere katalogen. For å vite hva disse kommandoene er, utfører vi:

: ~ # dpkg -L ldap-utils | grep / søppel
/ usr / bin / usr / bin / ldapmodrdn / usr / bin / ldapurl / usr / bin / ldapdelete / usr / bin / ldapwhoami / usr / bin / ldapexop / usr / bin / ldappasswd / usr / bin / ldapcompare / usr / bin / ldapsearch / usr / bin / ldapmodify / usr / bin / ldapadd

For å lære mer om hver kommando, anbefaler vi at du kjører Mann. Å gi en forklaring på hver vil gjøre artikkelen veldig lang.

Administrer databasen ved hjelp av konsollverktøy

Vi velger pakken lscripts for en slik oppgave. Installasjons- og konfigurasjonsprosedyren er som følger:

: ~ # aptitude installer ldapscripts

: ~ # cp /etc/ldapscripts/ldapscripts.conf \ /etc/ldapscripts/ldapscripts.conf.original

: ~ # cp / dev / null /etc/ldapscripts/ldapscripts.conf

: ~ # nano /etc/ldapscripts/ldapscripts.conf
SERVER = localhost BINDDN = 'cn = admin, dc = venner, dc = cu' BINDPWDFILE = "/ etc / ldapscripts / ldapscripts.passwd" SUFFIX = 'dc = venner, dc = cu' GSUFFIX = 'ou = Grupper' USUFFIX = 'ou = People' # MSUFFIX = 'ou = Computers' GIDSTART = 10001 UIDSTART = 10001 # MIDSTART = 10000 # OpenLDAP-klientkommandoer LDAPSEARCHBIN = "/ usr / bin / ldapsearch" LDAPADDBIN = "/ usr / bin / ldapadd" LDAPDELETEBIN = " / usr / bin / ldapdelete "LDAPMODIFYBIN =" / usr / bin / ldapmodify "LDAPMODRDNBIN =" / usr / bin / ldapmodrdn "LDAPPASSWDBIN =" / usr / bin / ldappasswd "GCLASS =" posixGroup "# UTEMPLATE etc. /ldapadduser.template "PASSWORDGEN =" ekko% u "

### Legg merke til at manusene bruker kommandoene til
### ldap-utils-pakke

: ~ # sh -c "echo -n 'tupassowrd'> \ /etc/ldapscripts/ldapscripts.passwd"

: ~ # chmod 400 /etc/ldapscripts/ldapscripts.passwd

: ~ # cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \ /etc/ldapscripts/ldapadduser.template

: ~ # nano /etc/ldapscripts/ldapadduser.template
dn: uid = , , objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: sn: fornavn: displayName: uid: uidNumber: gidNumber: homeDirectory: loginShell: post: gekko: beskrivelse: Brukerkonto

: ~ # nano /etc/ldapscripts/ldapscripts.conf
## vi fjerner kommentaren UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"

La oss prøve å legge til brukeren Strider The King til brukergruppe ringer og la oss sjekke de oppgitte dataene:

: ~ # ldapadduser strides rings
[dn: uid = skritt, ou = People, dc = venner, dc = cu] Angi verdi for "sn": Kongen [dn: uid = skritt, ou = People, dc = venner, dc = cu] Angi verdi for "givenName": Strides [dn: uid = strides, ou = People, dc = friends, dc = cu] Angi verdi for "displayName": Strides El Rey [dn: uid = skritt, ou = People, dc = venner, dc = cu] Angi verdi for "mail": trancos@amigos.cu Vellykket lagt til brukertrancos i LDAP Angitt passord for brukertrancos

root @ mildap: ~ # ldapfinger skritt
dn: uid = strides, ou = People, dc = friends, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: strides sn: El Rey givenName: Strides displayName: Strides El Rey uid: strides uidNumber: 10002 gidNumber: 10000 homeDirectory: / home / trancos loginShell: / bin / bash mail: trancos@amigos.cu gecos: trancos beskrivelse: Brukerkonto brukerPassord :: e1NTSEF9UnlmcWxCem5iUzBuSzQzTkM3ZFRFcTUwV2VsVnBqRm8 =

La oss erklære et passord til brukeren Frodo, la oss liste opp "DN”Av registrerte brukere, og slett den nyopprettede brukeren Striders:

: ~ # ldapsetpasswd frodo
Endre passord for bruker uid = frodo, ou = People, dc = venner, dc = cu Nytt passord: Skriv inn nytt passord: Angi passord for bruker uid = frodo, ou = People, dc = venner, dc = cu

: ~ # lsldap -u | grep dn
dn: uid = frodo, ou = People, dc = venner, dc = cu dn: uid = skritt, ou = People, dc = venner, dc = cu

: ~ # ldapfinger frodo
dn: uid = frodo, ou = People, dc = friends, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: frodo sn: Bagins givenName: Frodo cn: Frodo Bagins displayName: Frodo Bagins uidNumber: 10000 gidNummer: 10000 mailnummer : frodo@amigos.cu gecos: Frodo Bagins loginShell: / bin / bash homeDirectory: / home / frodo userPassword :: e1NTSEF9TnI4ZXN3YXA1VnplK1ZIZXZzbFZKaWF1SVdWeU5oVjA =

: ~ # ldapdeleteuser skritt
Bruker uid = skritt, ou = People, dc = venner, dc = cu fra LDAP er slettet

: ~ # lsldap -u | grep dn
dn: uid = frodo, ou = People, dc = venner, dc = cu

La oss sjekke at lokal autentisering fungerer riktig:

: ~ # ssh frodo @ mildap
frodo @ mildaps passord: Linux mildap 2.6.32-5-686 # 1 SMP Fredag ​​10. mai 08:33:48 UTC 2013 i686 [---] Debian GNU / Linux leveres absolutt INGEN GARANTI, i den grad det er tillatt i gjeldende lov . Siste innlogging: Tirsdag 18 feb 18:54:01 2014 fra mildap.amigos.cu
frodo @ mildap: ~ $ pwd
/ hjem / frodo
frodo @ mildap: ~ $ 

Det er mange eksempler vi kan skrive, men dessverre vil artikkelen være veldig lang. Vi sier alltid at vi gir et inngangspunkt til spørsmålene om tjenester generelt. Det er umulig å erstatte den omfattende dokumentasjonen i et enkelt innlegg.

For å lære mer om pakken lscripts og dets kommandoer, vær så snill og ta kontakt mannens ldapscripts.

Så langt fungerer vår Simple Directory-tjeneste basert på OpenLDAP bra.

Sammendrag så langt ...

Mange som har ansvaret for tjenester i forretningsnettverk, når de tar ansvar for en med tjenester basert på Microsoft-produkter, hvis de ønsker å migrere til Linux, vurderer de migrering av Domain Controllers blant andre tjenester.

Hvis de ikke velger et tredjepartsprodukt som ClearOS eller Zentyal, eller hvis de av andre grunner ønsker å bli uavhengige, påtar de seg den møysommelige oppgaven å bli sin egen Domain Controller, eller fra Samba 4 sin egen Active Directory.

Så begynner problemene og noen andre skuffelser. Driftsfeil. De finner ikke plasseringen av problemene for å kunne løse dem. Gjentatte installasjonsforsøk. Delvis drift av tjenestene. Og en lang liste med problemer.

Basen til en hvilken som helst domenekontroller eller Active Directory i Linux, basert på OpenLDAP pluss Samba, går gjennom grunnleggende kunnskap om Hva er en LDAP-server, hvordan installeres den, hvordan konfigureres og administreres, og så videre?. De som har lest den omfattende dokumentasjonen til Samba, vet godt hva vi mener.

Nettopp for å svare på det spørsmålet har vi skrevet hele artikkelserien opp til denne, og vi vil fortsette med de som er nødvendige. Vi håper de er nyttige for deg.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   vidagnu sa

    Utmerket innlegget ditt Fico, et spørsmål med OpenLDAP, kan domeneregler opprettes? å bruke dem på tilkoblede brukere, for eksempel at skjermspareren aktiveres etter 5 minutter uten aktivitet, konfigurere bakgrunnsbildet, forhindre at visse applikasjoner kjører, konfigurere oppstartsskript osv.

    hilsen,
    oscar

    1.    Federico sa

      Takk for kommentaren !!!. Oscar, husk at disse policyene på Linux implementeres annerledes når det gjelder Linux-klienter. GNOME gir et verktøy for å oppnå det at nå husker jeg ikke navnet. Ja, jeg vet at vi kan opprette retningslinjer for brukerkontoer direkte i OpenLDAP. Mange stiller meg det samme spørsmålet, og jeg svarer alltid mer eller mindre det samme. 🙂 Disse sikkerhetsretningslinjene gjelder bare for Microsoft-klienter, IKKE Linux-klienter. De er to forskjellige filosofier. En Active Directory er et proprietært program basert på OpenLDAP, en personlig Kerberos fra Microsft og nettverksadministratoren, som jeg ikke vet hva de kaller det nå. Før var det i Lan Manager. Vi kan ikke tenke oss å etterligne en Active Directory bare med LDAP. Vi må integrere Samba eller bruke Samba 4 for å se om det kan oppnås. Og min venn, jeg har ikke en gang sett på Samba 4. 🙂 Jeg vet heller ikke om Zentyal med Active Directory kan bruke dem ... men den programvaren er ikke bare OpenLDAP. Det er OpenLDAP + Samba + Kerberos + andre ting som jeg ikke kjenner godt til. 🙂 I denne serien tar jeg bare for meg OpenLDAP, og hvis du følger den, vil du se at i kompendiet jeg skriver om hele serien, pluss andre viktige tjenester, alt er basert på autentisering mot OpenLDAP Directory.

      Hilsen