# aptitude install slapd ldap-utils
Al ejecutar este domando nos pedirá la contraseña del administrador de ldap, luego corremos este comando:
# dpkg-reconfigure slapd
Aquí debemos contestar una serie de preguntas como:
1- Omitir la configuración de OpenLDAP: No \ 2- Nombre de dominio: tu.dominio.cu \ 3- Nombre de organización: tu.organizacion.cu \ 4- Contraseña del admin: passoword \ 5- Confirme la contraseña del admin: password \ 6- Motor de base de datos a utilizar: BDB \ 7- Borrar la base de datos al purgar slapd: No \ 8- Mover la base de datos antigua: Si \ 9- Permitir LDAP v2: Si \
Ahora, para probar que el servicio de slapd está arriba y funcionando utilizamos el comando:
# ldapsearch -x -b "dc=tu,dc=dominio,dc=cu" # extended LDIF # # LDAPv3 # base <dc=pri,dc=org,dc=cu> with scope subtree # filter: (objectclass=*) # requesting: ALL # # pri.org.cu dn: dc=pri,dc=org,dc=cu objectClass: top objectClass: dcObject objectClass: organization o: pri.org.cu dc: pri # admin, pri.org.cu dn: cn=admin,dc=pri,dc=org,dc=cu objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2
# aptitude install apache2 apache2-doc
# aptitude install mysql-server-5.0 mysql-client-5.0 libmysqlclient15-dev
# aptitude install php5 libapache2-mod-php5 php5-gd php5-cli php5-imap php5-ldap php5-mhash %%\%% php5-mysql php5-imagick imagemagick graphicsmagick-imagemagick-compat php5-recode %%\%% wwwconfig-common smarty-gettext libcrypt-smbhash-perl php-pear php-db php5-snmp fping smarty
Nota: El caracter \ al final indica que las 3 líneas son una sola, es decir todo es una misma línea.
# aptitude install phpldapadmin
Para acceder a la Web de phpldapadmin, usamos alguna de las URL siguientes:
http://192.168.0.2/phpldapadmin
Para acceder en la web usamos:
login: cn=admin,dc=pri,dc=org,dc=cu Clave: ******
# aptitude install gosa gosa-schema
Una vez instalado gosa, podemos acceder a su interfaz Web para su configuración por:
Pero antes de continuar, debemos asegurarnos que en el fichero de configuración de ldap tenemos especificados todos estos esquemas y en este mismo orden, por lo tanto, vamos a editar dicho fichero:
# nano /etc/ldap/slapd.conf # Schema and objectClass definitions include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/openldap.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/misc.schema include /etc/ldap/schema/samba3.schema include /etc/ldap/schema/gosystem.schema include /etc/ldap/schema/gofon.schema include /etc/ldap/schema/goto.schema include /etc/ldap/schema/gofax.schema include /etc/ldap/schema/goserver.schema include /etc/ldap/schema/gosa+samba3.schema include /etc/ldap/schema/goto-mime.schema include /etc/ldap/schema/samba.schema include /etc/ldap/schema/pureftpd.schema include /etc/ldap/schema/nagios.schema include /etc/ldap/schema/trust.schema include /etc/ldap/schema/rfc2739.schema include /etc/ldap/schema/kolab2.schema include /etc/ldap/schema/phpgwaccount.schema include /etc/ldap/schema/dhcp.schema include /etc/ldap/schema/dnszone.schema include /etc/ldap/schema/dns.schema
Aclaro que para incluir todos estos esquemas a nuestro servidor ldap, deben existir dichos esquemas en el directorio /etc/ldap/schema por lo que debemos buscarlos en internet, copiarlos para este directorio y asegurarnos que queden con los mismos permisos que tienen los esquemas que ya aparecen ahí ok!
Para asegurarnos que los esquemas queden con los permisos correctos usamos estos 2 comandos:
# cd /etc/ldap/schema # find . -type d -exec chown root.openldap {} \; # find . -type f -exec chown root.openldap {} \; # find . -type d -exec chmod 750 {} \; # find . -type f -exec chmod 640 {} \;
# nano /etc/ldap/slapd.conf # Habilitar el chequeo de esquemas. # schemacheck on loglevel -1 # Indexing options for database #1 index default sub index uid,mail eq index gosaMailAlternateAddress,gosaMailForwardingAddress eq index cn,sn,givenName,ou pres,eq,sub index objectClass pres,eq index uidNumber,gidNumber,memberuid eq index gosaSubtreeACL,gosaObject,gosaUser pres,eq # Indexing for Samba 3 index sambaSID eq index sambaPrimaryGroupSID eq index sambaDomainName eq # Indexing for DHCP index dhcpHWAddress eq index dhcpClassData eq # Indexing for DNS index zoneName eq index relativeDomainName eq
Salvamos el ficheros y salimos.
# /etc/init.d/slapd restart
Luego vamos a la web de gosa y procedemos a su configuración. Como nos indica en el 1er paso, debemos crear este fichero:
# echo -n 4ab0c6aa1b931d18808487151dcc824e > /tmp/gosa.auth
Nota: No copie este comando del tutorial, tómelo de la Web de gosa ya que la numeración no es siempre la misma.
Luego pulsamos el botón siguiente. La próxima página debemos escoger el idioma, seleccionamos español y seguimos.
En el próximo paso, gosa comprobará algunos paquetes y parámetros necesarios para trabajar, en el caso de
Debian Etch había que modificar algunos valores en el php.ini pero en Debian Lenny esto no es necesario, así que nos saltamos este paso.
# invoke-rc.d apache2 restart
Le damos actualizar a la Web de gosa y ya no debe darnos el error. Damos siguiente y viene la licencia la cual debemos aceptar desde luego para poder continuar.
NOTA!!!! PENDIENTE DE FORMATEO
Conexión LDAP Nombre de la localización: MyServerGOsa Conectar a la URL: ldap://localhost:389 Conexión TLS: No Base: dc=tu,dc=dominio,dc=cu DN del administrador: cn=admin,dc=tu,dc=dominio,dc=cu Contraseña de administrador: ***** La opción que dice: Añadir automáticamente la base LDAP al DN administrador la dejamos sin marcar. Usar grupos conformes a rfc2307bis: No Pulsamos siguiente. En la otra página nos aparecerá: Parámetros específicos del esquema Activar validación de esquema cuando se registre: Si Pulsamos continuar. En el próximo paso, solo cambio estas opciones, (las demás las dejo como están) Atributo 'dn' de los usuarios: uid Algoritmo de codificación de contraseña: md5 Damos siguiente y en el próximo paso, solo cambio estas opciones: Zona horaria: America/Havana (DST) Método de correo: cyrus (uid) Usa estilo Cyrus UNIX: Si Pulsamos Siguiente. En la próxima página lo dejo todo como esta. Pulsamos Siguiente. En esta página debemos crear el usuario administrador para gosa, el cual lo llamaremos admin, igual que el administrador de ldap, pero uno no tiene nada que ver con el otro, incluso pueden tener claves distintas siqueremos y si quieres puedes escoger otro nombre de usuario para el administrador de gosa OK! Pulsamos el botón: Crear que aparece en la opción: Comprobando súper administrador: Especificamos el nombre de usuario y una clave, en mi caso: Nombre: System administrator Identificador (ID) de usuario: admin Contraseña: ***** Contraseña (de nuevo): ***** Y pulsamos el botón aplicar. Ahora ya podemos seguir adelante. Pulsamos continuar. En la siguiente página: Avisos y sugerencias son cosas opcionales, de modo que no haré nada de eso, desmarco todas las opciones seleccionadas con palomas y marco No donde me permita escoger y voy a la siguiente página. Pulso continuar. La siguiente página ya es el paso final, aquí debemos descargar el fichero de configuración de gosa que se va a generar con todas las opciones que hemos ido seleccionando paso a paso, para ello pulsamos el botón: Descargar configuración. Bien, una vez descargado el fichero gosa.conf debemos copiarlo para nuestro servidor para: /etc/gosa luego para asegurarnos que quede con los permisos correctos corremos los siguientes comandos:
# chown root.www-data /etc/gosa/gosa.conf # chmod 640 /etc/gosa/gosa.conf
Una vez hecho esto ya podemos finalizar pulsamos por última vez el botón: Continuar y ya está lista la interfaz Web de gosa que será lo que usaremos para gestionar las cuentas de usuarios de nuestro servidor de correo.
Despues montamos un VirtualHost para la web gosa
<VirtualHost 192.168.0.2:80> ServerName gosa-admin.pri.org.cu ServerAdmin admin@pri.org.cu DocumentRoot "/usr/share/gosa/html" <Directory /usr/share/gosa/html/> Options +FollowSymLinks AllowOverride None order allow,deny allow from 192.168.0.0/24 <IfModule mod_php4.c> AddType application/x-httpd-php .php php_flag magic_quotes_gpc Off php_flag short_open_tag On php_flag register_globals Off php_flag register_argc_argv On php_flag track_vars On # Estas opciones son necesarias para algunas locales php_value mbstring.func_overload 0 php_value include_path . DirectoryIndex index.php </IfModule> </Directory> RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] # Reescribimos todas las peticiones a este sitio a una conexión segura es decir usando SSl RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTP_HOST} gosa-admin.pri.org.cu RewriteRule (.*) https://gosa-admin.pri.org.cu$1 [R=301,L] ErrorLog /var/log/apache2/gosa-admin-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/gosa-admin-access.log combined ServerSignature On </VirtualHost>
Hemos agregado un VirtualHost para gosa, pero ahora debemos añadir otro con soporte SSL, dejamos un espacio y ponemos a continuación el otro VirtualHost.
# VirtualHost con soporte SSL <VirtualHost 192.168.0.2:443> ServerName gosa-admin.pri.org.cu ServerAdmin admin@pri.org.cu DocumentRoot "/usr/share/gosa/html/" <Directory /usr/share/gosa/html> Options +FollowSymLinks AllowOverride None order allow,deny allow from 192.168.0.0/16 <IfModule mod_php4.c> AddType application/x-httpd-php .php php_flag magic_quotes_gpc Off php_flag short_open_tag On php_flag register_globals Off php_flag register_argc_argv On php_flag track_vars On # Estas opciones son necesarias para algunas locales php_value mbstring.func_overload 0 php_value include_path . DirectoryIndex index.php </IfModule> </Directory> RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] SSLEngine on SSLCertificateFile /etc/apache2/ssl/gosa-admin.pem ErrorLog /var/log/apache2/gosa-admin-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/gosa-admin-access.log combined ServerSignature On </VirtualHost>
Salvamos y salimos.
Ahora vamos a crear el certificado para dicho sitio:
# mkdir /etc/apache2/ssl
Generamos el certificado y le ponemos los permisos.
# openssl req -newkey rsa:1024 -x509 -nodes -out /etc/apache2/ssl/gosa-admin.pem -keyout /etc/apache2/ssl/gosa-admin.pem -days 3650 # chown root:www-data /etc/apache2/ssl/gosa-admin.pem # chmod 640 /etc/apache2/ssl/gosa-admin.pem # rm /etc/apache2/conf.d/gosa.conf
Ahora debemos activar SSL en apache.
# a2ensite default-ssl
Reiniciamos apache2
# /etc/init.d/apache2 restart
Y ya podemos acceder a la Web de gosa mediante la URL:
Debe redireccionar automáticamente dicha petición http hacia https.