IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

OpenFPnet/Hacklabs/Serveis de xarxa (DNS i DHCP) amb Ldap i Gosa

Instal·lació i configuració LDAP

(password LDAP i GOSA: insebre)

  • Avís: Totes les comandes utilitzades a continuació, s'haurien d'executar amb la comanda Sudo al davant en el cas de no ser administradors.
  • Per instal·lar-lo executarem la següent comanda, en el procés et diu que introdueixis el password d'administrador que s'utilitzarà:
$ apt-get install slapd ldap-utils
  • Avís: Depenent de la versió d'ubuntu que utilitzem alguns d'aquests passos no s'han de fer, jo he utilitzat la 11.10. La raó per la qual no s'han de fer és perquè amb la comanda...
$ dpkg-reconfigure slapd 

   ...ja et crea moltes de les coses que es fan a continuació, a més en l'openldap que utilitza aquesta versió del sistema operatiu també té molts esquemes carregats per defecte.

   De totes maneres en alguns cassos indicaré com es pot comprovar si la informació ja està introduïda dins la BD del LDAP.

  • Abans de tot i després d'instal·lar el LDAP, s'ha d'executar la comanda dpkg-reconfigure que he indicat anteriorment, el procés consta de diferents passos on potser el més significatiu és aquell on li indiquem el distinguised name i la organització, en el nostre cas insebre.com i insebre respectivament.
  • Seguidament afegirem els següents esquemes al nostre servidor LDAP (no segons versió de SO):
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
  • El pas anterior no fa falta fer-lo, ja que aquests esquemes ja els tenim introduïts ho podem comprovar amb la comanda següent:
$ ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn
  • El resultat d'aquesta comanda serà el següent, on podem comprovar el que he dit:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=config
dn: cn=module{0},cn=config
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: olcBackend={0}bdb,cn=config
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}bdb,cn=config
  • Tot seguit, crearem la base de dades del nostre repositori LDAP (no segons versió de SO):
$ nano db.ldif
###########################################################
# DATABASE SETUP
###########################################################  
# Load modules for database type
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
# Create directory database
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=insebre,dc=com
olcRootDN: cn=admin,dc=insebre,dc=com
olcRootPW: Contrasenya encriptada amb MD5{MD5}k6OLkd7rjj/AOilHA5kXmg==
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn,mail pres,eq,approx,sub
olcDbIndex: objectClass eq
  • És possible que tinguem que fica una línia de separació entre olcModuleLoad: {0}back_hdb i # Create directory database.
  • També tindrem de xifrar la constrasenya amb MD5:
$ slappasswd -h {MD5}
New password: 
Re-enter new password: 
{MD5}k6OLkd7rjj/AOilHA5kXmg==
  • Una vegada configurat el fitxer, el guardem i el carreguem.
$ ldapadd -Y EXTERNAL -H ldapi:/// -f db.ldif
  • La creació de la BD no fa falta fer-la, ja que la tenim creada. Ho podem comprovar amb la comanda següent:
$ ldapsearch -x -s base '(objectclass=*)' namingContexts
  • El resultat d'aquesta comanda serà el següent, on podem comprovar el que he dit:
# extended LDIF
#
# LDAPv3
# base <> (default) with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts 
#
dn:
namingContexts: dc=insebre,dc=com 
# search result
search: 2
result: 0 Success 
# numResponses: 2
# numEntries: 1
  • Després creem un altre fitxer anomenat base.ldif, aquest conté la base que sostindrà tota l'estructura d'usuaris i grups (no segons versió de SO):
$ nano base.ldif
dn: dc=insebre,dc=com
objectClass: dcObject
objectclass: organization
o: insebre
dc: insebre
description: Arrel LDAP
dn: cn=admin,dc=insebre,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
userPassword: {MD5}k6OLkd7rjj/AOilHA5kXmg==
  • També el carreguem:
$ ldapadd -Y EXTERNAL -H ldapi:/// -f base.ldif
  • El fet en el pas anterior no fa falta, ja que la base que sosté tota l'estructura d'usuaris i grups ja està creada. Ho podem comprovar amb la comanda següent:
$ ldapsearch -x -b 'dc=insebre,dc=com' '(objectclass=*)'
  • El resultat d'aquesta comanda serà el següent, on podem comprovar el que he dit:
# extended LDIF
#
# LDAPv3
# base <dc=insebre,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# insebre.com
dn: dc=insebre,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: insebre
dc: insebre
# admin, insebre.com
dn: cn=admin,dc=insebre,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
  • Ara, modificarem les regles ACL del LDAP (no segons versió de SO).
$ nano config.ldif
  • I posem aquest contingut: Important, posar la separació que mostra aquí a l'exemple
dn: olcDatabase={-1}frontend,cn=config
changetype: modify
delete: olcAccess
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootDN
olcRootDN: cn=admin,cn=config
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {MD5}OPw56q9E0n2SgiQt7IXqgA=
dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcAccess
  • El tornem a carregar i veiem que el problema ja ha estat solucionat:
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f config.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={-1}frontend,cn=config"
modifying entry "olcDatabase={0}config,cn=config"
modifying entry "olcDatabase={0}config,cn=config"
modifying entry "olcDatabase={0}config,cn=config"
  • Seguidament definirem amb al fitxer acl.ldif, qui podrà fer consultes i qui no:
$ nano acl.ldif 
dn: olcDatabase={1}hdb,cn=config
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=insebre,dc=com" write by anonymous auth by self write by *  none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=insebre,dc=com" write by * read
  • El carreguem:
$ ldapmodify -x -D cn=admin,cn=config -W -f acl.ldif
Enter LDAP Password: 
modifying entry "olcDatabase={1}hdb,cn=config"
  • El pas anterior no fa falta fer-lo, ja que els permisos ja estan establerts al fitxer /etc/ldap/slapd.d/cn=config/olcDatabase={1}bdb.ldif, l'únic que s'hauria de fer és modificar el password de l'administrador pel que s'ha obtingut anteriorment amb la comanda slappasswd -h {MD5}.
GOSA+DNS+DHCP-imatge4(jvaras).png
  • Finalment reiniciem el servei SLAPD
$ /etc/init.d/slapd restart
Stopping OpenLDAP: slapd.
Starting OpenLDAP: slapd.
  • Nota: En el cas de necessitar esborrar completament el servei LDAP, ho podem fer amb les següents comandes:
$ apt-get remove --puge slapd
$ rm -rf /var/lib/ldap
$ rm -rf /etc/ldap/slapd.d