lunes, 9 de junio de 2008

Debian+Ldap+GoSA

Luego de darme algunos golpes con GoSA y LDAP decidí colocar esta receta para ayudar a otros que posiblemente tengan algunos problemitas.

Lo primero es acotar que he usado PHP5 en lugar de usar PHP4 que es el que instala por defecto GoSA.

Los primeros pasos como en todo debian es asegurarse de tener la lista de paquetes actualizada, como esto lo he hecho sobre una máquina virtual en xen y _solo_ tiene el sistema base instalado debo instalar algunos paquetes necesarios y otros que me gusta usar, como rsync y screen por ejemplo ;).

# aptitude update
# aptitude dist-upgrade
# aptitude install rsync, perl, screen

Ahora los paquetes para el ldap

#aptitude install slapd ldap-utils db4.4-util

Luego debemos reconfigurar ldap para asegurarnos de que nuestro dominio esté configurado como queremos.

# dpkg-reconfigure slapd

# aptitude install apache2 php5 php5-imagick php5-imap php5-pgsql
# aptitude install php5-ldap php5-mysql libapache-mod-php5 php5-common
# aptitude install php5-tidy php5-xmlrpc php5-xls php5-snmp

# aptitude install gosa gosa-schema

Iniciamos ldap y todo debería de funcionar bien

# /etc/init.d/slapd start

Editamos /etc/php5/apache2/php.ini

# nano /etc/php5/apache2/php.ini

Cambiamos memory_limit = 16M por memory_limit = 64M

Luego copiamos los esquemas que usaremos para gosa

# cp /usr/share/doc/gosa/contrib/openldap/samba3.schema.gz /etc/ldap/schema/
# cp /usr/share/doc/gosa/contrib/openldap/trust.schema /etc/ldap/schema/

# cd /etc/ldap/schema/
# gunzip samba3.schema.gz

# nano /etc/ldap/slapd.conf

Agregar lo siguiente: (los 4 primeros include ya los tendrán, son colocados como referencia para que sepan el orden en que van)

==================================================
# Schema and objectClass definitions
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema

#Esquemas de GoSA
include /etc/ldap/schema/samba3.schema
include /etc/ldap/schema/trust.schema
include /etc/ldap/schema/gosystem.schema
include /etc/ldap/schema/gofon.schema
include /etc/ldap/schema/goto.schema
include /etc/ldap/schema/gosa+samba3.schema
include /etc/ldap/schema/gofax.schema
include /etc/ldap/schema/goserver.schema
include /etc/ldap/schema/goto-mime.schema

schemacheck on
password-hash {MD5}

=================================================

Ahora nos falta agregar los ldiff que necesitará GoSA, podemos usar ldapadd

# /etc/init.d/slapd stop

pueden crear los archivos ldiff como siguen:

=============== groups.ldif ================
dn: ou=groups,dc=midominio,dc=com,dc=ve
objectClass: organizationalUnit
ou: groups
#FIN

=============== people.ldif ================
dn: ou=people,dc=midominio,dc=com,dc=ve
objectClass: organizationalUnit
ou: people
#FIN

============= machines.ldif =================
dn: ou=machines,dc=midominio,dc=com,dc=ve
objectClass: organizationalUnit
ou: machines
#FIN

nótese que en el dn de cada ldif los dc pertenecen al dominio que configuramos al hacer
dpkg-recongfigure slapd, en este ejemplo el dominio es: midominio.com.ve, podemos probar el nombre del dominio con:

# slapcat

Agregamos los ldiff ue acabamos de crear con "vi" o "nano"

# slapadd -l people.ldif
# slapadd -l machines.ldif
# slapadd -l groups.ldif

# /etc/init.d/slapd start

Si deciden hacerlo con phpldapadmin:

#aptitude install phpldapadmin

luego desde el firefox/iceweasel

http://ip_del_server/phpldapadmin

la versión que instalé no se si tenga o no un error, pero cuando accedía a mi cuenta de ldap me aparecía dc=nodomain estándo autenticado con mi cn y dc respectivos, entonces comenté una línea que me corrigó el error en el archivo config.php del phpldapadmin.

# nano /etc/phpldapadmin/config.php

$ldapservers->SetValue($i,'server','base',array('dc=nodomain'));

la cambié por:

//$ldapservers->SetValue($i,'server','base',array('dc=nodomain'));

y volví a ingresar al phpldapadmin desde el browser y todo funcionó bien. Ya luego ahí cree los OU respectivos que va usar GoSA, que son "groups" y "people".

Una vez que ya hayamos creado los OU de cualquiera de las dos maneras explicadas, pasamos a configurar GoSA.

desde el Browser:

http://ip_server/gosa/setup.php

Relativamente esto es sencillo, solo hay que hacer unos ajustes simples y todo debe funcionar.
Las dos primeras pantallas son para verificar si nos falta algún módulo que querramos tener, luego en las siguientes solo hay que agregar lo siguiente:

1.- cambiar [Example] por el Nombre de su Empresa por ejemplo: RO Corp.
2.- luego nos pide el dn y la clave del usuario ldap, que según este ejemplo sería así:
DN: cn=admin, dc=midominio, dc=com, dc=ve
--- "admin" es el nombre que usé para el login del usuarios administrador del LDAP
Passwd: 123456
--- "123456" es la clave que usé para el login del usuarios administrador del LDAP
Este login y clave es el que configuraron cuando reconfiguraron slapd

3.- Base: dc=midominio, dc=com, dc=ve

teóricamente no deben modificar más nada, deben tener en cuenta que al darle check el único error que debe arrojar es que aun no se ha creado un usuario y clave para el administrador de GoSA, así que omitir el error y crear el usuario y clave del admin gosa en la pantalla que corresponde.

Luego les aparecerá una pantalla para generar el gosa.conf, generen este archivo y creen un archivo en el servidor y copien todo de este, o sencillamente copien el archivo en el server gosa en la ruta siguiente:

/etc/gosa/gosa.conf

luego debemos cambiarle los permisos:

# chown root.www-data /etc/gosa/gosa.conf
# chmod 640 /etc/gosa/gosa.conf

Esto es todo, aunque hay algunos tunnig que faltan, pero con esto ya podrán trabajar ;)

Saludos.

No hay comentarios.: