Como configurar una GUI para un Dominio Samba openLDAP en Centos

Dominio Samba con OpenLDAP (Parte 2: GUI con LAM y LAMdaemon)
PARA CENTOS 5

Autor: Jaime M. Tan Nozawa
Correo electrónico: jtnozawa@gmail.com
Procedencia del autor: Lima-Perú

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.

© 2008 Jaime M.Tan Nozawa. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción.

LDAP Account Manager(LAM) es una interfaz Web para administrar varios tipos de cuentas en un directorio LDAP. Está escrito en PHP. En contraste con la herramienta PhpLDAPadmin, se focaliza en las cuentas y brinda al usuario una vista más abstracta del su directorio. Está licenciada bajo GNU General Public License.

LAM está diseñado especialmente para la administración del esquema samba de openLDAP, motivo por el cual, se decidió utilizar esta herramienta.

Requisitos previos

Es necesario haber realizado una instalación satisfactoria de Samba + openLDAP.  Aquí el tutorial http://www.alcancelibre.org/staticpages/index.php/SAMBALDAP-CENTOS5

Instalación de requisitos.

yum -y install php-ldap php-mhash httpd php-pear php-devel gcc perl-Net-SSH-Perl perl-Quota openssl-devel


Procedimientos:

1. INSTALACIÓN DE LAM

Descargamos el rpm y lo instalamos, si por alguna razon no te gusta instalar el rpm puedes descargarte el tarball y descomprimirlo en la carpeta de apache:

wget -c 
ftp://fr2.rpmfind.net/linux/sourceforge/l/la/lam/
ldap-account-manager-2.4.0-0.fedora.1.noarch.rpm
rpm -Uvh ldap-account-manager-2.4.0-0.fedora.1.noarch.rpm

Requerimos previamente realizar algunos cambios en los archivo de configuración:

cd /var/www/html/lam/config/
cp config.cfg_sample config.cfg

cp lam.conf_sample lam.conf
chown apache.apache lam.conf
chown apache.apache config.cfg

Modificamos el /etc/php.ini y editamos la siguiente linea:

memory_limit = 64M

Reiniciamos apache :

service httpd restart
2. CONFIGURACIÓN DEL LAM
Ingresar desde el navegador Web:

http://localhost/lam/

Ingresar al enlace en la parte superior derecha: LAM configuration  -->  http://localhost/lam/templates/config/index.php

Se dispone de dos opciones:
general settings Edit general settings Configura configuracion general del LAM. Se aplica a todos los perfiles de tu Aplicación. Se define las polìticas del dominio por defecto; los niveles y destino de los logs de la aplicación; y los host por el cual podrá accederse el LAM.
server settings Edit server profiles En un perfil defines las opciones detalladas: el dominio LDAP, OU's, esquemas que manejarás, las cuentas que podrán loguearse, LAMdaemon,etc. El perfil por defecto es: default. Pero puedes crear diferentes perfiles con configuraciones diferentes.
Si desea puede realizar los cambios de configuración general para optimizarlo.

Clic en: Edit server profiles password por defecto :  "lam"    (por motivos de seguridad es necesario cambiar ese password)
Cambiamos el sufijo del arbol a la de tu dominio :
Preferencias del servidor
Dirección del servidor *: Ayuda
 
Sufijo del arbol: Ayuda
 
Tiempo máximo de espera de la caché:: Ayuda

Modificamos los UID máximo y mínimo, tanto para los cuentas de usuario y host. Es importante configurar estos números correctamente, si no coinciden con el de tu archivo smb.conf  ni el de smbldaptools.conf  tendrás problemas al crear tus cuentas.
tux.png Unix
Usuarios:  UID mínimo*: UID máximo*: Ayuda
Hosts:  UID mínimo*: UID máximo*: Ayuda
Tipo de hash para la contraseña:   Ayuda
Set primary group as memberUid: Ayuda
Configuración de idioma
Idioma por defecto: Ayuda

Configuramos correctamente el LAMdaemon. Lo requeriremos posteriormente para la última etapa de este tutorial
Prefencias de script
Server list: Ayuda
Path a script externo: Ayuda
Rights for the home directory:
Read Write Execute
Owner
Group
Other
Ayuda

Definimos la cuenta LDAP con el cual podremos loguearnos:
Preferencias de seguridad
Lista de usuarios validos. *: Ayuda
 
New password: Ayuda
Reenter password:

 


Clic en el botón "Edit accout types":

Active account types
user Usuarios: User accounts (e.g. Unix, Samba and Kolab)
Sufijo LDAP Ayuda
Mostrar atributos Ayuda
 
group Grupos: Group accounts (e.g. Unix and Samba)
Sufijo LDAP Ayuda
Mostrar atributos Ayuda
 
host Hosts: Host accounts (e.g. Samba)
Sufijo LDAP Ayuda
Mostrar atributos Ayuda
 
smbDomain Samba domains: Samba 3 domain entries
Sufijo LDAP Ayuda
Mostrar atributos Ayuda
 

Por ahora utilizaremos los módulos que vienen por defecto.
Clic en OK.
Ahora es momento de loguearnos al LAM.
NOTA:
Es importante que cuando autentiques al LAM,  NO te apareza un mensaje que mencione que no pudo encontrar el árbol de directorio y te lo creará  por tí. Si te aparece ese mensaje significa que te haz equivocado en la configuración de los "Account Type" y haz ingresado una entrada inexistente. Recuerda que ya habiamos creado la estructura con smbldap-poppulate

3. INSTALACIÓN Y CONFIGURACIÓN DEL LAMdaemon

El LAMdaemon te permite crear y borrar las carpetas HOME, cuando se realiza el mantenimiento de los usuarios LDAP. También permite configurar desde la interfaz gráfica las cuotas de disco por usuario y por grupo.

 Para activar LAMdaemon se deben realizar los siguientes cambios:


La instalación del LAMdaemon puede resultar algo accidentado e inclusive frustrante. El principal problema radica en que el módulo ssh2 de PHP tiene problemas con el LAMdaemon. Puede aparecerte caracteres y símbolos extraños al cargar tu página. Veamos como se puede solucionar esto.

Primero creamos un nuevo usuario que será el nuevo administrador (también puede hacerse desde el mismo LAM) :
smbldap-useradd -a -m -F "" jtnozawa
smbldap-passwd jtnozawa
Editamos  en /etc/openldap/slapd.conf :
rootdn "uid=jtnozawa,ou=People,dc=su-red-local,dc=com"
# Este password obtenido previamente al digitar slappasswd
rootpw {SSHA}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Editamos en /etc/samba/smb.conf :
# La cuenta administrador openLDAP
ldap admin dn = uid=jtnozawa,ou=People,dc=
su-red-local,dc=com
Cambiamos el password que usa samba para acceder al directorio LDAP:
smbpasswd -w password_del_usuario_jtnozawa
Modificamos el acceso smbldap-tools a la BD de openLDAP  en  /etc/smbldap-tools/smbldap_bind.conf  :
# password es el password sin cifrar del Administrador openLDAP
slaveDN="cn=
uid=jtnozawa,ou=People,dc=su-red-local,dc=com"
slavePw="
password_del_usuario_jtnozawa"
masterDN=
"uid=jtnozawa,ou=People,dc=su-red-local,dc=com"
masterPw="
password_del_usuario_jtnozawa"

Editamos en LAM Configuration / Edit Server Profiles :
Preferencias de seguridad
Lista de usuarios validos. *: Ayuda


Clic en el botón "Editar módulos" (dentro de  Edit Server Profiles): 

Agregar el módulo Quota(quota)  tanto a los Tipos de cuenta : "Usuario" y "Grupos"

Módulos de seleccionados


Le damos los acceso por sudo y comentamos la opción que requiere una terminal tty  en  /etc/sudoers :

#Defaults    requiretty
jtnozawa ALL=NOPASSWD: /var/www/html/lam/lib/lamdaemon.pl


Activamos las cuotas de disco en las particiones que requiere (en mi caso la raiz / )  /etc/fstab :

LABEL=/1      /          ext3    defaults,usrquota,grpquota        1 1


Activamos las cuotas de disco:

mount -o remount /
cd /
quotacheck  -avugm
quotaon /


Para más información de como activar cuotas, puedes ir aqui: http://www.alcancelibre.org/staticpages/index.php/04-disk-quota

Último paso: instalar el php ssh2  y  libssh2:

Aquí radica el problema,  php-pecl-ssh2 y el libssh2 que encontraremos en los diferentes repositorios como el DAG, no funcionan con el LAMdaemon en CentOS 5. (Si estás en CentOS 4 puede que te funcione o inclusive en Windows)
La única versión que pude hacerlo correr sin ningún error fue con la librería libssh2  versión 0.13 y el php-pecl-ssh2 versión 0.10. Otras versiones y combinaciones que pude probar daban error o simplemente no levantaban.

Con la última versión actualizada del Centos 5 creé estos RPMS : rpmsLibSSH2.

# unzip JTlibssh2PHPrpms.zip
# rpm -Uvh libssh2*.rpm
# rpm -Uvh php-pecl-ssh2-0.10-1.i386.rpm


Prueba primero si te funcionan, si no es así procede a crearlos a mano como prosigue (requiere php-devel gcc openssl-devel php-mhash):

# wget -c
http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/l/li/libssh2/libssh2-0.13.tar.gz
# wget -c http://pecl.php.net/get/ssh2-0.10.tgz
# cp ssh2-0.10.tgz libssh2-0.13.tar.gz   /usr/src/redhat/SOURCES
# rpmbuild -bb  libssh2.spec
# rpmbuild -bb  php-pecl-ssh2.spec
# rpm -Uvh /usr/src/redhat/RPMS/i386/*.rpm


Los archivos spec estan en el zip con los rpms. Para más infomormación de como crear paquetería a rpms de forma segura aqui: http://www.alcancelibre.org/staticpages/index.php/como-rpmbuild

Reiniciamos apache :

service httpd restart

Verificamos con un phpinfo.php:  

echo  "<?php phpinfo(); ?>"   >   /var/www/html/phpinfo.php


En el navegador:
http://localhost/phpinfo.php


http://es.geocities.com/jtnozawa/images/libssh2_phpinfo.jpg

Comprobaciones:

Veamos si LamDaemon funciona correctamente.

Autentícate al LAM, e ingresa al siguiente link esquina superior izquierda:

Herramientas / test / Lamdaemon test

http://es.geocities.com/jtnozawa/images/LamDaemonTest.jpg
Si aparece la siguiente ventana ya puedes administrar cuotas de disco de forma gráfica y además puedes crear o borrar las carpetas HOME por usuario.

Resultado final:


http://es.geocities.com/jtnozawa/images/LAMcap.jpg

http://es.geocities.com/jtnozawa/images/LAMcap2.jpg


Tutorial creado en Lima-Peru por :
Jaime M. Tan Nozawa.
Cuaquier consulta a mi correo