Katalogtjänst med LDAP [5]: OpenLDAP (II)

Låt oss fortsätta, men inte innan vi har konsulterat:

I det här inlägget får vi se:

Lokal användarautentisering

Efter att vi har fått OpenLDAP-servern att fungera, om vi vill testa eller ha lokal autentisering av användarna registrerade -eller att vi kommer att registrera- i katalogen, måste vi installera och konfigurera de nödvändiga paketen.

I Squeeze är de inblandade paketen:

libnss-ldap: Tillhandahåller namnbytestjänsten (NSS Name Service Switch) som tillåter LDAP-servern att fungera som en namnserver.

Det innebär att tillhandahålla information om användarkonton, grupp-ID:n, information om värden, alias, nätgrupper och i princip all annan data som normalt erhålls från vanliga textfiler som t.ex. / Etc / passwd/ etc / grupp, etc., eller en tjänst NIS.

libpam-ldap: "Pluggbar autentiseringsmodul för LDAP", eller modul PAM för LDAP. Ger ett gränssnitt mellan LDAP-servern och autentiseringssystemet genom PAM.

nscd: "Namn Service Cache Daemon", eller Namntjänst Cache Daemon. Hanterar uppslagningar efter lösenord, grupper och värdar och cachar uppslagningsresultaten för framtida referens.

:~# aptitude installera libnss-ldap finger

Installationen av paketet libnss-ldap, som också installeras som beroenden a libpam-ldap redan djävulen nscd, tar oss igenom en konfigurationsguide, vars frågor vi måste besvara på lämpligt sätt:

libnss-01

libnss-02

libnss-03

libnss-04

libnss-05

libnss-06

libpam-01

libpam-02

libpam-03

libpam-04

Om vi ​​vill konfigurera om paketen libnss-ldap y / o libpam-ldap, vi måste utföra:

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

Senare ändrar vi filen /etc/nsswitch.conf och vi lämnar det med följande innehåll:

:~# nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Exempelkonfiguration av GNU Name Service Switch-funktionalitet. # Om du har paketen `glibc-doc-reference' och `info' installerade, försök: # `info libc "Name Service Switch"' för information om den här filen. passwd: compat ldap group: compat ldap shadow: compat ldap hosts: filer dns nätverk: filer protokoll: db filer tjänster: db filer etrar: db filer rpc: db filer nätgrupp: nis

Så att de ändringar som gjorts i filen /etc/nsswitch.conf träder i kraft startar vi om tjänsten nscd:

:~# tjänst nscd omstart

Viktig detalj är att ändra filen /etc/pam.d/common-session så att användarmappen skapas på den lokala servern när en användare som är inloggad i katalogen loggar in på den:

:~# nano /etc/pam.d/common-session
[----]
session krävs pam_mkhomedir.so skel = / etc / skel / umask = 0022
### Ovanstående rad måste inkluderas INNAN # här är modulerna per paket ("Primär" -blocket) [----]

Befolka databasen

För att fylla i katalogdatabasen eller starta den måste vi lägga till huvudorganisationsenheterna, registrera minst en användargrupp och lägga till en användare. För att göra detta skapar vi en fil i LDIF-format, som vi senare kommer att lägga till i katalogen, med följande innehåll:

:~# nanocontent.ldif
dn: ou=Människor,dc=vänner,dc=cu objektKlass: organisationsenhet ou: Människor dn: ou=Grupper,dc=vänner,dc=cu objektKlass: organisationsenhet ou: Grupper dn: cn=ringar,ou=Grupper,dc= friends,dc=cu objectClass: posixGroup cn: rings gidNumber: 10000 dn: uid=frodo,ou=People,dc=vänner,dc=cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowKonto uid: frodo sn: Bag : Frodo Bagins displaynamn: Frodo Bagins uidNumber: 10000 gidNumber: 10000 användareLösenord: frodo mail: frodo@amigos.cu geckos: Frodo Bagins loginShell: /bin/bash homeKatalog: /home/frodo

Vi lägger till innehållet i filen till katalogen:

: ~ # ldapadd -x -D cn=admin,dc=vänner,dc=cu -W -f content.ldif
Ange LDAP-lösenord: lägga till ny post "ou=People,dc=vänner,dc=cu" lägga till ny post "ou=Grupper,dc=vänner,dc=cu" lägga till ny post "cn=ringar,ou=Grupper,dc= vänner,dc=cu" lägger till ny post "uid=frodo,ou=People,dc=vänner,dc=cu"

Vi utför relevanta kontroller:

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

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

:~# finger frodo
Inloggning: frodo Namn: Frodo Bagins Katalog: /home/frodo Shell: /bin/bash Aldrig inloggad. Inget mail. Inte plan.

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

Nu har vi en katalogtjänst som vi måste hantera !!!. Vi kommer att utveckla två sätt: det första genom paketet ldapscripts, och den andra, som vi kommer att ta upp i nästa artikel, kommer att vara genomLdap Account Manager.

Vi måste också säga att paketet ldap-verktyg, tillhandahåller en hel rad användbara kommandon för att hantera katalogen. För att ta reda på vad dessa kommandon är, kör vi:

:~# dpkg -L ldap-utils | grep /bin
/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

För att lära dig mer om varje kommando rekommenderar vi att du kör man. Att ge en förklaring av var och en skulle göra artikeln väldigt lång.

Hantera databasen med hjälp av konsolverktyg

Vi väljer paketet ldapscripts för en sådan uppgift. Installations- och konfigurationsproceduren är som följer:

:~# aptitude installera 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=vänner,dc=cu' BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd" SUFFIX='dc=vänner,dc=cu' GSUFFIX='ou=Grupper' USUFFIX= 'ou=Personer' #MSUFFIX='ou=Datorer' GIDSTART=10001 UIDSTART=10001 #MIDSTART=10000 # OpenLDAP-klientkommandon LDAPSEARCHBIN="/usr/bin/ldapsearch" LDAPADDBIN="/usr/bin/ldapaddEBIN=" LDAP /usr/bin/ldapdelete" LDAPMODIFYBIN="/usr/bin/ldapmodify" LDAPMODRDNBIN="/usr/bin/ldapmodrdn" LDAPPASSWDBIN="/usr/bin/ldappasswd" GCLASS="posixGroup" # UTEMPLATE="/etc/ldapscripts /ldapadduser.template" PASSWORDGEN="echo %u"

### Observera att skripten använder kommandona för
### ldap-utils-paket

:~# 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/ldapdduser.template
dn: uid= , , objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: sn: förnamn: visningsnamn: uid: uidNumber: gidNumber: hemkatalog: loginShell: e-post: geckos: beskrivning: Användarkonto

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

Låt oss försöka lägga till användaren Striders kungen till användargruppen ringar och kontrollera de angivna uppgifterna:

:~# ldapadduser stegringar
[dn: uid=striders,ou=People,dc=vänner,dc=cu] Ange värde för "sn" : Kungen [dn: uid=striders,ou=People,dc=vänner,dc=cu] Ange värde för "givenName" : Striders [dn: uid=striders,ou=People,dc=vänner,dc=cu] Ange värde för "displayName" : Striders The King [dn: uid=striders,ou=People,dc=vänner,dc =cu] Ange värde för "mail" : trancos@amigos.cu Användartrancos har lagts till framgångsrikt i LDAP. Lösenordet för användartrancos har angetts framgångsrikt

root@mildap:~# ldapfinger steg
dn: uid=strider,ou=People,dc=vänner,dc=cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: strider sn: The King givenName: Strider displayName: Strider The King uid: strider uidNumber: 10002 gidNumber10000: hemkatalog: /home/trancos loginShell: /bin/bash mail: trancos@amigos.cu gecos: trancos beskrivning: Användarkonto användarLösenord:: e1NTSEF9UnlmcWxCem5iUzBuSzQzTkM3ZFRFcTUwV2VsVnBqRm

Låt oss deklarera ett lösenord för användaren Frodo, låt oss lista "DN” av registrerade användare och ta bort den nyskapade användaren Striders:

:~# ldapsetpasswd frodo
Ändra lösenord för användaren uid=frodo,ou=People,dc=amigos,dc=cu Nytt lösenord: Ange nytt lösenord: Ange lösenordet för användaren uid=frodo,ou=People,dc=amigos,dc=cu

:~# lsldap -u | grep dn
dn: uid=frodo,ou=People,dc=vänner,dc=cu dn: uid=strider,ou=People,dc=vänner,dc=cu

:~# ldapfinger frodo
dn: uid=frodo,ou=People,dc=vänner,dc=cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowKonto uid: frodo sn: Bagins givenName: Frodo cn: Frodo Bagins displayName: Frodo Bagins uidNumber: 10000 gidNumber10000: email : frodo@amigos.cu geckos: Frodo Bagins loginShell: /bin/bash hemKatalog: /home/frodo användareLösenord:: e1NTSEF9TnI4ZXN3YXA1VnplK1ZIZXZzbFZKaWF1SVdWeU5oVjA=

:~# ldapdeleteuser steg
Användaren uid=trancos,ou=People,dc=vänner,dc=cu från LDAP har tagits bort

:~# lsldap -u | grep dn
dn: uid=frodo,ou=Människor,dc=vänner,dc=cu

Låt oss kontrollera att lokal autentisering fungerar korrekt:

:~# ssh frodo@mildap
frodo@mildaps lösenord: Linux mildap 2.6.32-5-686 #1 SMP Fre 10 maj 08:33:48 UTC 2013 i686 [---] Debian GNU/Linux levereras med ABSOLUT INGEN GARANTI, i den utsträckning det är tillåtet enligt tillämplig lag . Senaste inloggning: Tis 18 feb 18:54:01 2014 från mildap.amigos.cu
frodo@mildap:~$ pwd
/hem/frodo
frodo@mildap:~$ 

Det finns många exempel som vi kan skriva, men tyvärr skulle artikeln bli väldigt lång. Vi säger alltid att vi ger en ingångspunkt till frågor om tjänster i allmänhet. Det är omöjligt att ersätta den omfattande befintliga dokumentationen i ett enda inlägg.

För att lära dig mer om paketet ldapscripts och dess kommandon, vänligen och rådfråga man ldapscripts.

Hittills fungerar vår OpenLDAP-baserade Simple Directory Service bra.

Sammanfattning hittills ...

Många personer som ansvarar för tjänster i affärsnätverk, när de tar ansvar för en med tjänster baserade på Microsoft-produkter, om de vill migrera till Linux, överväger de migreringen av domänkontrollanter bland andra tjänster.

Om de inte väljer en tredjepartsprodukt som ClearOS eller Zentyal, eller om de av andra skäl vill bli oberoende, ger de sig själva den mödosamma uppgiften att göra sin egen domänkontrollant, eller börja med Samba 4 till sin egen Active Directory .

Sedan börjar problemen och några andra besvikelser. Driftsfel. De hittar inte platsen för problemen för att kunna lösa dem. Upprepade installationsförsök. Delvis drift av tjänsterna. Och en lång lista med problem.

Basen för alla domänkontrollanter eller Active Directory i Linux, baserad på OpenLDAP plus Samba, kräver med nödvändighet grundläggande kunskaper om vad är en LDAP-server, hur är den installerad, hur är den konfigurerad och hanterad, etc.?. De som har läst den omfattande Samba-dokumentationen vet vad vi menar.

Just för att svara på den frågan har vi skrivit hela serien av artiklar fram till denna, och vi kommer att fortsätta med de som är nödvändiga. Vi hoppas att de är användbara för dig.


2 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   vidagnu sade

    Ditt inlägg är utmärkt Fico, en fråga, med OpenLDAP, kan du skapa domänpolicyer? för att tillämpa dem på anslutna användare, som att skärmsläckaren aktiveras efter 5 minuter utan aktivitet, konfigurera bakgrunden, vissa applikationer som inte körs, konfigurera startskript, etc.

    hälsningar,
    oscar

    1.    federico sade

      Tack för kommentar!!!. Oscar, kom ihåg att dessa policyer, i Linux, implementeras annorlunda när det kommer till Linux-klienter. GNOME kommer med ett verktyg för att göra detta som jag inte kommer ihåg namnet på nu. Ja, jag vet att vi kan upprätta användarkontopolicyer direkt i OpenLDAP. Många ställer samma fråga till mig och jag svarar alltid ungefär likadant. 🙂 Dessa säkerhetspolicyer gäller endast för Microsoft-klienter, INTE Linux-klienter. Det är två olika filosofier. En Active Directory är en proprietär applikation baserad på OpenLDAP, en personlig Kerberos från Microsft och Network Manager, jag vet inte vad de kallar det nu. Förut var det i Lan Manager. Vi kan inte tänka på att emulera en Active Directory endast med LDAP. Vi skulle behöva integrera Samba eller använda Samba 4 för att se om det kan uppnås. Och vän, jag har inte ens tittat på Samba 4 än. 🙂 Jag vet inte heller om Zentyal med Active Directory kan applicera dem... men den programvaran är inte bara OpenLDAP. Det är OpenLDAP + Samba + Kerberos + andra saker jag inte känner till. 🙂 I den här serien sysslar jag bara med OpenLDAP, och om du följer den kommer du att se att i kompendiet som jag skriver av hela serien, plus andra viktiga tjänster, allt förlitar sig på autentisering mot OpenLDAP-katalogen.

      hälsningar