Diferència entre revisions de la pàgina «Servidor LDAP en Ubuntu 16.04»
(Hi ha 26 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 13: | Línia 13: | ||
# dpkg-reconfigure slapd | # dpkg-reconfigure slapd | ||
− | [[Fitxer:ldap2.jpg|600px|thumb|centre|Triem no per configurar-ho manualment]] | + | [[Fitxer:ldap2.jpg|600px|thumb|centre|Triem no per configurar-ho manualment.]] |
<br> <br /> | <br> <br /> | ||
− | [[Fitxer:ldap3.jpg|600px|thumb|centre| | + | [[Fitxer:ldap3.jpg|600px|thumb|centre|Escrivim aquí el nom del nostre domini, dins l’esquema de LDAP el nostre domini serà “dc=naxvanbautista,dc=local”.]] |
<br> <br /> | <br> <br /> | ||
− | [[Fitxer:ldap4.jpg|600px|thumb|centre| | + | [[Fitxer:ldap4.jpg|600px|thumb|centre|Aquí escrivim el nom del domini.]] |
<br> <br /> | <br> <br /> | ||
− | [[Fitxer:ldap5.jpg|600px|thumb|centre| | + | [[Fitxer:ldap5.jpg|600px|thumb|centre|Escrivim i confirmem la password indicada a l'instalació de slapd.]] |
<br> <br /> | <br> <br /> | ||
− | [[Fitxer:ldap6.jpg|600px|thumb|centre| | + | [[Fitxer:ldap6.jpg|600px|thumb|centre|Triem HDB per si decidim canviar el nom dels subarbres que podríem crear al nostre LDAP.]] |
<br> <br /> | <br> <br /> | ||
− | [[Fitxer:ldap7.jpg|600px|thumb|centre| | + | [[Fitxer:ldap7.jpg|600px|thumb|centre|Purguem els arxius ldap que ja venien instal·lats per defecte.]] |
<br> <br /> | <br> <br /> | ||
− | [[Fitxer:ldap8.jpg|600px|thumb|centre| | + | [[Fitxer:ldap8.jpg|600px|thumb|centre|Movem els arxius antics a un lloc on no molestin a la actual configuració.]] |
<br> <br /> | <br> <br /> | ||
− | [[Fitxer:ldap9.jpg|600px|thumb|centre| | + | [[Fitxer:ldap9.jpg|600px|thumb|centre|Deneguem el l'obsolet protocol LDAPv2.]] |
<br> <br /> | <br> <br /> | ||
+ | |||
+ | 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: | ||
+ | [[Fitxer: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: | ||
+ | [[Fitxer: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: | ||
+ | |||
+ | [[Fitxer: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 | ||
+ | [[Fitxer:ldap14.jpg]] | ||
+ | |||
+ | #Mostra el nom de totes les ou dins de naxvanbautista.local | ||
+ | [[Fitxer:ldap15.jpg]] | ||
+ | |||
+ | #Mostra tot el que hi ha dins de la ou usuaris: | ||
+ | [[Fitxer: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 | ||
+ | |||
+ | |||
+ | [[Fitxer:phpldapadmin1.jpg|thumb|esquerra|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. | ||
+ | [[Fitxer: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. | ||
+ | |||
+ | [[Fitxer:Anonymous1.JPG]] | ||
+ | |||
+ | |||
+ | == Documentació i referències == |
Revisió de 18:08, 27 maig 2017
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
Un cop instal·lats haurem de configurar el domini de LDAP amb la següent comanda:
# dpkg-reconfigure slapd
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:
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:
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:
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 #Mostra el nom de totes les ou dins de naxvanbautista.local
#Mostra tot el que hi ha dins de la ou usuaris:
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
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.
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.