Servidor LDAP en Ubuntu 16.04

De Wiket
La revisió el 18:08, 27 maig 2017 per Ismael.bautista (discussió | contribucions)
(dif.) ← Versió més antiga | Versió actual (dif.) | Versió més nova → (dif.)
Salta a la navegació Salta a la cerca

Instal·larem un Servidor LDAP afegint unitats organitzatives, grups i usuaris via desde el terminal i comprovarem els canvis amb phpldapadmin.

Instal·lació

Actualitzem els paquets i seguidament instal·lem els paquets slapd i ldap-utils,el primer ens demanarà la password d'administrador de LDAP i el segon ens afegirà diverses funcionalitats, com poder fer consultes al servidor des d'altres aplicacions.

# apt-get update
# apt-get install slapd ldap-utils
Afegim la password d'administrador de LDAP

Un cop instal·lats haurem de configurar el domini de LDAP amb la següent comanda:

# dpkg-reconfigure slapd
Triem no per configurar-ho manualment.



Escrivim aquí el nom del nostre domini, dins l’esquema de LDAP el nostre domini serà “dc=naxvanbautista,dc=local”.



Aquí escrivim el nom del domini.



Escrivim i confirmem la password indicada a l'instalació de slapd.



Triem HDB per si decidim canviar el nom dels subarbres que podríem crear al nostre LDAP.



Purguem els arxius ldap que ja venien instal·lats per defecte.



Movem els arxius antics a un lloc on no molestin a la actual configuració.



Deneguem el l'obsolet protocol LDAPv2.



Si tot ha anat bé, veurem les següents línies al finalitzar:

 Moving old database directory to /var/backups:
 - directory unknown... done.
 Creating initial configuration... done.
 Creating LDAP directory... done.


Omplint el nostre servidor

Afegir organizational units

Creem un arxiu amb el nom que vulguem i amb l'extensió .ldif al qual afegirem el següent contingut:

dn: ou=usuaris,dc=naxvanbautista,dc=local
objectClass: organizationalUnit
ou: usuaris
dn: ou=grups,dc=naxvanbautista,dc=local
objectClass: organizationalUnit
ou: grups


Nosaltres l'hem anomenat organizational_units.ldif; ara l'afegim amb la comanda:

ldapadd -x -W -D "cn=admin,dc=naxvanbautista,dc=local" -f organizational_units.ldif

Si ho hem fet hauriem de veure aquest resultat per pantalla:

Ldap11.jpg

Afegir grups

Creem un altre arxiu amb el nom que vulguem i amb l'extensió .ldif al qual afegirem el següent contingut:

dn: cn=clients,ou=grups,dc=naxvanbautista,dc=local
objectClass: top
objectClass: posixGroup
gidNumber: 678

L'hem anonomenat grups.ldif i l'afegirem amb la comanda que hem utilitzat abans:

ldapadd -x -W -D "cn=admin,dc=naxvanbautista,dc=local" -f grups.ldif

Si ho hem fet bé aconseguirem aquest resultat per pantalla:

Ldap12.jpg

Afegir usuaris

Un cop ja tenim les unitats organitzatives i els grups creats ha arribat el moment de crear un usuari, aquests tenen més característiques que els objectes que hem creat fins ara però com en els casos anteriors, creem un arxiu amb extensió .ldif i afegim les següents dades:

dn: uid=paquito,ou=usuaris,dc=naxvanbautista,dc=local #Aquesta línea serà la que utilitzarem per identificar l'usuari.
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount # Els atributs objectClass indiquen els paràmetres que LDAP els hi dóna per defecte des de'ls seus esquemes.
cn: paquito # common name
uid: paquito #login d'usuari
uidNumber: 16859 #identificador d'usuari
gidNumber: 678 #aquest es l'identificador del grup al que pertany
homeDirectory: /home/paquito
loginShell: /bin/bash
gecos: paquito # Aquest es un camp delimitat per comes on podem afegir més dades d'usuari.
userPassword: paquito123
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

Aconseguirem, com amb els objectes anteriors, un resultat positiu per pantalla:

Ldap13.jpg

Buscar objectes dins de ldap per comandes

Aquestes comandes funcionan si tens desactivat l'anonymous bind, en cas de tenir-ho activat haurem d'utilitzar els següents paràmetres:

  • -D Distingushed Name de l'usuari. Per exemple: cn=admin,dc=naxvanbautista,dc=local
  • -w password_de_l'usuari
#ldapsearch -x -LLL -b dc=naxvanbautista,dc=local  <- Mostra tots els objectes creats a naxvanbautista.local

Rere aquesta comanda, podem afegir els diferents atributs que volem buscar i filtrar dins d'aquests:

#Mostra tots els atributs objectClass de l'usuari paquito
Ldap14.jpg

#Mostra el nom de totes les ou dins de naxvanbautista.local
Ldap15.jpg
#Mostra tot el que hi ha dins de la ou usuaris:
Ldap16.jpg

Phpldapadmin

Instalació

#apt-get install phpldapadmin

Configuració

A l'arxiu:

/etc/phpldapadmin/config.php

Configurem les següents línies:

$servers->setValue('server','host','127.0.0.1'); <-- Posem la i.p del servidor.
$servers->setValue('server','base',array('dc=example,dc=com')); <- Canviem example.com pel nostre domini
$servers->setValue('login','bind_id','cn=admin,dc=naxvanbautista,dc=local'); <- Aquesta línea es l'usuari per fer login a phpldapadmin
Descomentem la següent línea i canviem el valor com true.
// $config->custom->appearance['hide_template_warning'] = false;
$config->custom->appearance['hide_template_warning'] = true;

GUI

Accedirem a phpldapadmin des de:

#ip_ldapserver/phpldapadmin


Si hem configurat l'arxiu de configuració nomès haurem de ficar la password

Com podem veure, tenim davant l'esquema que hem creat per comandes. Ara podem continuar la feina des d'aqui si ho volem fer tot més senzill. Phpldapadmin2.jpg


Seguretat LDAP

Desactivar anonymous bind

Per defecte LDAP permet accedir com usuari ànonim i rebuscar pel nostre esquema, encara que no pugui alterar aquest.

Per començar, creem dos arxius, un que es dirà desactivar_anonim_backend.ldif i un altre anomenat desactivar_anonim_frontend.ldif

El contingut d'aquests es el següent:

#nano desactivar_anonim_backend.ldif
dn: olcDatabase={-1}frontend,cn=config
add: olcRequires
olcRequires: authc
#nano desactivar_anonim_frontend.ldif
dn: olcDatabase={1}hdb,cn=config
add: olcRequires
olcRequires: authc

Afegim els arxius amb la comanda

sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f arxiu.ldif

Si intentem fer una consulta sense autenticarnos ens prohibirà l'accès.

Anonymous1.JPG


Documentació i referències