Servei de Directori amb LDAP [5]: OpenLDAP (II)

Continuem, no sense abans consultar:

En aquest post veurem:

Autenticació local d'usuaris

Després que tenim en servidor OpenLDAP funcionant, si volem provar o tenir autenticació local dels usuaris registrats -o que registraremos- al Directori, hem d'instal·lar i configurar els paquets necessaris.

En Squeeze, els paquets involucrats són:

libnss-ldap: Proveeix el Servei d'Intercanvi de Nom (NSS Name Service Switch) Que permet a l'servidor LDAP actuar com un servidor de nom.

Significa brindar la informació sobre Comptes d'Usuaris, ID de Grups, informació sobre el sistema principal, Alias, netgroups, i bàsicament qualsevol altra dada que normalment s'obté dels arxius de text pla com el / etc / passwd/ Etc / group, Etcètera, o d'un servei NIS.

libpam-ldap: "Pluggable Authentication Module for LDAP", O Mòdul PAM per al LDAP. Proveeix una interfície entre el servidor LDAP i el sistema d'autenticació mitjançant PAM.

nscd: "Name Service Cache Daemon", O Dimoni per a la Memòria cau de el Servei de Nom. Maneja la recerca de contrasenyes, grups i hosts i emmagatzema els resultats de les recerques en la memòria cau per a futures consultes.

: ~ # Aptitude install libnss-ldap finger

La instal·lació de l'paquet libnss-ldap, Que a més s'instal·la com dependències a libpam-ldap ja el dimoni nscd, Ens portarà a través d'un Assistent per a la configuració, les preguntes hem de respondre adequadament:

libnss-01

libnss-02

libnss-03

libnss-04

libnss-05

libnss-06

libpam-01

libpam-02

libpam-03

libpam-04

Si volem tornar a configurar els paquets libnss-ldap i / o libpam-ldap, Hem d'executar:

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

Posteriorment modifiquem l'arxiu /etc/nsswitch.conf i ho deixem amb el següent contingut:

: ~ # Nano /etc/nsswitch.conf
# /Etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-doc-reference 'and` info' packages installed, try: # `info libc" Name Service Switch " 'for information about this file. passwd: compat ldap group: compat ldap shadow: compat ldap hosts: files dns networks: files protocols: db files serveis: db files ethers: db files rpc: db files netgroup: nis

Perquè els canvis realitzats a l'arxiu /etc/nsswitch.conf tinguin efecte, reiniciem el servei nscd:

: ~ # Service nscd restart

Detall important és modificar el fitxer /etc/pam.d/common-session perquè es creï la carpeta d'usuari al servidor local quan iniciï una sessió en ell, un usuari registrat en el Directori:

: ~ # Nano /etc/pam.d/common-session
[----]
session required pam_mkhomedir.so skel = / etc / skel / umask = 0022
### La línia anterior s'ha d'incloure ABANS de # here are the per-package modules (the "Primary" block) [----]

Poblar la base de dades

Per poblar la base de dades de l'Directori o iniciar-la, hem de afegir les Unitats Organitzatives principals, registrar al menys un Grup d'Usuaris, i afegir un usuari. Per a això, vam crear un arxiu en format LDIF, el qual ho afegirem posteriorment a l'Directori, amb el següent contingut:

: ~ # Nano content.ldif
dn: ou = People, dc = amics, dc = cu objectClass: organizationalUnit ou: People dn: ou = Groups, dc = amics, dc = cu objectClass: organizationalUnit ou: Groups dn: cn = anells, ou = Groups, dc = amics, dc = cu objectClass: posixGroup cn: anells gidNumber: 10000 dn: uid = frodo, ou = People, dc = amics, 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

Afegim el contingut de l'arxiu a l'Directori:

: ~ # ldapadd -x -D cn = admin, dc = amics, dc = cu -W -f content.ldif
Enter LDAP Password: adding new entry "ou = People, dc = amics, dc = cu" adding new entry "ou = Groups, dc = amics, dc = cu" adding new entry "cn = anells, ou = Groups, dc = amics, dc = cu "adding new entry" uid = frodo, ou = People, dc = amics, dc = cu "

Realitzem les comprovacions pertinents:

: ~ # Id frodo
uid = 10000 (frodo) gid = 10000 (anells) grups = 10000 (anells)

: ~ # Getent passwd | grep frodo
frodo: x: 10000: 10000: Frodo Bagins: / home / frodo: / bin / ves

: ~ # Finger frodo
Login: frodo Name: Frodo Bagins Directory: / home / frodo Shell: / bin / bash Never logged in. No mail. No Pla.

: ~ # Ldapsearch -I EXTERNAL -H ldapi: /// -b uid = frodo, ou = People, dc = amics, dc = cu

Ara tenim un Servei de Directori que hem d'administrar !!!. Desenvoluparem dues vies: la primera mitjançant el paquet ldapscripts, I la segona, que abordarem en el proper article, serà mitjançant elLdap Account Manager.

També hem de dir que el paquet ldap-utils, Aporta tot un seguit d'ordres útils per administrar el Directori. Per conèixer quines són aquests ordres, executem:

: ~ # 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

Per conèixer més sobre cada comanda, recomanem executin man. Donar una explicació de cada un faria molt llarg l'article.

Administrar la base de dades mitjançant utilitats de consola

Seleccionem el paquet ldapscripts per tal tasca. El procediment d'instal·lació i configuració és el següent:

: ~ # Aptitude install 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 = amics, dc = cu' BINDPWDFILE = "/ etc / ldapscripts / ldapscripts.passwd" SUFFIX = 'dc = amics, dc = cu' GSUFFIX = 'ou = Groups' USUFFIX = 'ou = People' # MSUFFIX = 'ou = Computers' GIDSTART = 10001 UIDSTART = 10001 # MIDSTART = 10000 # OpenLDAP client commands 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 / ldapscripts /ldapadduser.template "PASSWORDGEN =" echo% o "

### Observin que els scripts utilitzen les ordres de l'
### paquet ldap-utils

: ~ # 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: GivenName: DisplayName: uid: uidNumber: gidNumber: homeDirectory: loginShell: mail: gecos: description: Compte d'Usuari

: ~ # Nano /etc/ldapscripts/ldapscripts.conf
## eliminem el comentari UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"

Provem a addicionar l'usuari Trancos El Rei a el grup d'usuaris anells i comprovem les dades introduïdes:

: ~ # Ldapadduser gambades anells
[Dn: uid = gambades, ou = People, dc = amics, dc = cu] Enter value for "sn": El Rei [dn: uid = gambades, ou = People, dc = amics, dc = cu] Enter value for "GivenName": trancos [dn: uid = gambades, ou = People, dc = amics, dc = cu] Enter value for "DisplayName": trancos El Rei [dn: uid = gambades, ou = People, dc = amics, dc = cu] Enter value for "mail": trancos@amigos.cu successfully added user gambades to LDAP successfully setembre password for user gambades

root @ mildap: ~ # ldapfinger gambades
dn: uid = gambades, ou = People, dc = amics, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: gambades sn: El Rei GivenName: Trancos DisplayName: Trancos El Rei uid: gambades uidNumber: 10002 gidNumber: 10000 homeDirectory: / home / gambades loginShell: / bin / bash mail: trancos@amigos.cu gecos: gambades description: Compte d'Usuari userPassword :: e1NTSEF9UnlmcWxCem5iUzBuSzQzTkM3ZFRFcTUwV2VsVnBqRm8 =

Declarem una contrasenya a l'usuari Frodo, Llistem els "DN"Dels usuaris registrats, i esborrem a l'acabat de crear usuari trancos:

: ~ # Ldapsetpasswd frodo
Changing password for user uid = frodo, ou = People, dc = amics, dc = cu New Password: Retype New Password: successfully setembre password for user uid = frodo, ou = People, dc = amics, dc = cu

: ~ # Lsldap -o | grep dn
dn: uid = frodo, ou = People, dc = amics, dc = cu dn: uid = gambades, ou = People, dc = amics, dc = cu

: ~ # Ldapfinger frodo
dn: uid = frodo, ou = People, dc = amics, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: frodo sn: Bagins GivenName: Frodo cn: Frodo Bagins DisplayName: Frodo Bagins uidNumber: 10000 gidNumber: 10000 mail : frodo@amigos.cu gecos: Frodo Bagins loginShell: / bin / bash homeDirectory: / home / frodo userPassword :: e1NTSEF9TnI4ZXN3YXA1VnplK1ZIZXZzbFZKaWF1SVdWeU5oVjA =

: ~ # Ldapdeleteuser gambades
Successfully deleted user uid = gambades, ou = People, dc = amics, dc = cu from LDAP

: ~ # Lsldap -o | grep dn
dn: uid = frodo, ou = People, dc = amics, dc = cu

Comprovem que l'Autenticació Local funciona correctament:

: ~ # Ssh frodo @ mildap
frodo @ mildap 's password: Linux mildap 2.6.32-5-686 # 1 SMP Fri May 10 08:33:48 UTC 2013 i686 [---] Debian GNU / Linux menges with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law . Last login: Tue febrer 18 18:54:01 2014 from mildap.amigos.cu
frodo @ mildap: ~ $ pwd
/ Home / frodo
frodo @ mildap: ~ $ 

Són molts els exemples que podem escriure, però lamentablement l'article seria molt llarg. Sempre diem que nosaltres donem un punt d'entrada als temes dels serveis en general. És impossible substituir l'àmplia documentació existent en un sol post.

Per conèixer més sobre el paquet ldapscripts i els seus comandaments, favor i consulti man ldapscripts.

Fins ara, el nostre Senzill Servei de Directori basat en OpenLDAP funciona correctament.

Resum fins aquí ...

Molts encarregats dels serveis a les xarxes empresarials, quan es fan càrrec d'una amb serveis basats en productes Microsoft, si desitgen migrar cap a Linux, es plantegen la migració dels controladors de domini entre d'altres serveis més.

Sinó trien un producte de tercers com el ClearOS o el Zentyal, o si per altres motius desitgen independitzar-se, llavors es donen a la afanyosa tasca de fer-seu propi Controlador de Domini, oa partir de Samba 4 seu propi directori actiu.

Llavors és que comencen els problemes i algunes que altres desil·lusions. Errors de funcionament. No donen amb la localització dels problemes per poder-los solucionar. Intents d'instal·lació en repetides ocasions. Funcionaments parcials dels serveis. I un llarg etcètera de problemes.

La Base de qualsevol Controlador de Domini o Directori Actiu a Linux, basat en OpenLDAP més Samba, passa obligadament pel coneixement bàsic de ¿Què és un servidor LDAP, com s'instal·la, com es configura i administra, etcètera?. Els que han llegit la frondosa documentació de Samba, sabran bé a què ens referim.

Precisament a respondre aquesta pregunta hem escrit tota la sèrie d'articles fins aquest, i continuarem amb els que siguin necessaris. Esperem els siguin d'utilitat.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   vidagnu va dir

    Execelentes teus post Fico, una consulta, amb OpenLDAP ¿es poden crear polítiques de domini? per aplicar-les als usuaris connectats, com ara que el screen saver s'activi després de 5 minuts sense activitat, configurar el wallpaper, que no s'executin certes aplicacions, configurar scripts d'inici, etc.

    Salutacions,
    Oscar

    1.    federico va dir

      Gràcies per comentar !!!. Oscar, recorda que aquestes polítiques, en Linux, s'implementen de forma diferent quan es tracta de clients Linux. GNOME porta una eina per aconseguir-ho que ara no recordo el seu nom. Si es que podem establir polítiques dels comptes d'usuaris directament al OpenLDAP. Molts em fan la mateixa pregunta i sempre responc més o menys semblant. 🙂 Aquestes polítiques de seguretat només s'apliquen a clients Microsoft, NO a clients Linux. Són dues filosofies diferents. Un Active Directory és una aplicació propietària basada en OpenLDAP, 4 Kerberos personal de Microsft i l'Administrador de xarxes, que no sé com li diuen ara. Abans, era en Lan Manager. No podem pensar en emular només amb el LDAP a un Active Directory. Hauríem d'integrar Samba o utilitzar Samba 4 a veure si es pot aconseguir. I amic, a l'Samba XNUMX no li he tirat tot ni un sol cop d'ull. 🙂 Tampoc conec si el Zentyal amb Directori Actiu les pot aplicar ... però aquest programari no és només OpenLDAP. És OpenLDAP + Samba + Kerberos + altres coses que no conec bé. 🙂 En aquesta sèrie només tracte amb el OpenLDAP, i si la segueixes veuràs que en el compendi que estic escrivint de tota la sèrie, més altres serveis imprescindibles, Tot es basa en l'autenticació contra el Directori OpenLDAP.

      Salutacions