viernes, 25 de septiembre de 2009

Instalando Mandriva MDS 2.3.2 en Centos 5.x

Vamos a instalar el mandriva MDS para administrar nuestro servidor PDC con Linux y teniendo a LDAP sirviendo como base de datos del dominio.

Antes de seguir este manual, ya debemos tener el dominio funcionando, samba+ldap sin problemas, junto con smbldap-tools. Aquí no les proporciono con hacer lo anterior, eso queda en otra ocasión.

Mandriva nos proporciona las fuentes de los siguientes paquetes

mmc-agent-2.3.2.tar.gz
mmc-web-base-2.3.2.tar.gz
mmc-web-mail-2.3.2.tar.gz
mmc-web-network-2.3.2.tar.gz
mmc-web-proxy-2.3.2.tar.gz
mmc-web-samba-2.3.2.tar.gz

Yo solo necesito estos:

mmc-agent-2.3.2.tar.gz
mmc-web-base-2.3.2.tar.gz
mmc-web-samba-2.3.2.tar.gz

Por el momento, así que son los que bajo, siguiendo el manual nos habla de ciertos paquetes que debemos instalar, pero no todos, aquí les proporciono todos.

Les recuerdo que el apache debe estar operando "ya" junto con php para empezar, ya que los tengan funcionando, entonces si continúan con este manual.

Otra cosa que deseo aclarar, esto les debe funcionar con php 5.x, ya que en estos momentos me vi en la necesidad de instalar php 5.3 lo cual me llevo a instalar cada uno de los módulos de php en la misma versión, pero la instalación anterior use la distro que viene por defecto en Centos 5.3 que es php-5.1. Así que les debe funcionar con esta versión sin problemas.

Vamos empezando la instalación de cada uno, así los fui instalando yo.

redhat-lsb
python-twisted
python-ldap
python-libacl
python-psycopg
postgresql-python
mx
python-twisted-web
PyXML
python-fpconst
python-soap
php-xml
php-xmlrpc

Ya que terminen reinician el apache para que cargue de nuevo todos estos módulos de php.

Bien vamos a seguir, como ya bajamos el código fuente, vamos empezando por descomprimir y compilar según el manual:

# tar xzf mmc-agent-x.y.z.tar.gz
# cd mmc-agent-x.y.z
# make install

¿No marco error, correcto?

Como al momento de compilar Centos no agrega el servicio a su lista de arranque ahí
que hacerlo:

chkconfig --add mmc-agent

Ahora le toca a el mmc-web-base:

# tar xzf mmc-web-base-x.y.z.tar.gz
# cd mmc-web-base-x.y.z
# make install HTTPDUSER=apache

Ahora le toca a el mmc-web-samba:

# tar xzf mmc-web-samba-x.y.z.tar.gz
# cd mmc-web-samba-x.y.z
# make install

NOTA: Sí les marco error, debe corregirlo o pedir ayuda, hasta la fecha nunca he tenido problemas a la hora de compilar estos paquetes, por ello desconozco que tipo de errores les pueden suceder.

Agregar el schema de mds a ldap, este se localiza en donde descomprimieron las fuentes de mmc-agent, aquí:

mmc-agent-2.3.2/contrib/ldap/mmc.schema

Y lo debemos copear donde ldap guarda los demás schemas /etc/openldap/schema/
Y ahora debemos editar el archivo de configuración de ldap (slapd.conf) para incluir este schema, según el manual debe estar después del inetorgperson.schema, algo así:

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/mmc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schemama

Ahora si reiniciar el servicio de ldap y no debe arrojar ningún error:

[root@mi-server plugins]# service ldap restart
Stopping slapd: [ OK ]
Checking configuration files for slapd: config file testing succeeded
[ OK ]
Starting slapd: [ OK ]

MDS cuando lo compilamos coloca todos sus archivos de configuración en "/etc/mmc/".

Si desean darle un vistazo a el archivo de configuración del mmc-agent, este se localiza en /etc/mmc/agent/config.ini, a este no hay mucho que hacerle al menos que quieran jugar con él, no hay problema si saben cómo regresarlo a su estado original (cp...:-)).

Editar el archivo de configuración "/etc/mmc/plugins/base.ini" y modificarlo de acuerdo a su dominio, en mi caso mi dominio es "basura", así que sería algo así:

[ldap]
# LDAP we are connected to
host = 127.0.0.1
# LDAP base DN
baseDN = dc=basura
# Users location in the LDAP
baseUsersDN = ou=Users, %(basedn)s
# Groups location in the LDAP
baseGroupsDN = ou=Groups, %(basedn)s
# LDAP manager
rootName = cn=Manager, %(basedn)s
password = mi-ldap-password
# If enabled, the MMC will create/move/delete the home of the users
# Else will do nothing, but only write user informations into LDAP
userHomeAction = 1
# Skeleton directory to populate a new home directory
skelDir = /etc/skel
# If set, all new users will belong to this group when created
defaultUserGroup = Domain Users
# Default home directory for users
defaultHomeDir = /home
# user uid number start
uidStart = 10000
# group gid number start
gidStart = 10000
# LDAP log file path
logfile = /var/log/ldap.log
# FDS log file path
# logfile = /opt/fedora-ds/slapd-hostname/logs/access

# you can specify here where you can authorized creation of your homedir
# default is your defaultHomeDir
# example:
# authorizedHomeDir = /home, /home2, /mnt/depot/newhome

# LDAP user password scheme to use
# Possible values are "ssha" and "crypt"
passwordscheme = ssha

[userdefault]
shadowExpire = DELETE

[backup-tools]
# Path of the backup tools
path = /usr/local/lib/mmc/backup-tools
# Where are put the archives
destpath = /home/archives

Son en realidad pocos los parametros que deben cambiar, principalmente el nombre
de su dominio, el password del servidor ldap, el usuario administrador, casi todo lo demas queda igual.

En la parte de "[backup-tools]" es importante crear el directorio que ahí marca "/home/archives/", así que deben hacerlo de lo contrario mmc no arrancara o al menos si desean moverlo de lugar deben indicarlo.

El archivo tiene mas parámetros abajo, pero esos no me interesan.

Tenemos más plugins como:

mail.ini
network.ini
proxy.ini

Estos los encontraran en /etc/mmc/plugins, como no voy a utilizarlos, los deshabilito abriendo cada uno de los archivos y cambiando el parámetro "disable" de 0 a 1, así:

[main]
disable = 1

Guardamos y listo, con esto le digo a mmc que no los ejecute.

Yo solo voy a usar el base.ini y samba.ini, el archivo de configuración para el plugin de samba, no está hecho específicamente para Centos, así que tenemos que hacerle unos cambios, el mío lo deje así

[main]
disable = 0
# Computers Locations
baseComputersDN = ou=Computers, dc=basura
sambaConfFile = /etc/samba/smb.conf
sambaInitScript = /etc/init.d/smb
sambaClamavSo = /usr/lib/samba/vfs/vscan-clamav.so
# Default SAMBA shares location
defaultSharesPath = /opt
# You can specify authorized paths for share creation
# Default value is the defaultSharesPath value
# authorizedSharePaths = /shares, /opt, /srv

# Default value when adding samba attributes to an user
# DELETE means the attibute is removed from the user LDAP entry
[userdefault]
sambaPwdMustChange = DELETE

El principal cambio es este párametro:

sambaInitScript = /etc/init.d/smb

Ya que originalmente tiene el nombre samba, pero Centos le llama smb, guardan y salen.

Ahora sí, vamos a arrancar el servicio de mmc-agent:

service mmc-agent start
Starting Mandriva Management Console : mmc-agent : done.

Que bien, no marco ningún error como podrán ver, si ustedes desean verificar si tiene el puerto está escuchando:

netstat --inet -al | grep 7080

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost.localdomain:7080 *:* LISTEN

Ahi lo tienen, escuchando en el puerto 7080.

Seguimos con el apache, para que el apache pueda desplegar este paquete, debemos agregar ciertos parámetros a el archivo de configuración de apache, para ello MDS ya hizo esto, cuando descomprimieron el archivo mmc-web-base, dentro localizaran el archivo: "mmc.conf" aquí:

mmc-web-base-2.3.2/confs/apache

Este lo debemos copean en:

root# cp mmc.conf /etc/httpd/conf.d/

Debemos reiniciar el apache para que actualice su configuración y agregue este archivo a su arranque.

service httpd restart
Stopping httpd: [ OK ]
Starting httpd: Syntax error on line 9 of /etc/httpd/conf.d/mmc.conf:
Invalid command 'php_flag', perhaps misspelled or defined by a module not included in the server configuration
[FAILED]

Les puede marcar este error, asi que tebemos que abrir el archivo que le dimos a el apache para buscar esa linea que marca error, si abrimos ese archivo tenemos esto:

### Add an alias /mmc on www server root
Alias /mmc /usr/local/share/mmc

### Allow access to lmc web directory to everyone

AllowOverride None
Order allow,deny
allow from all
php_flag short_open_tag on <<<<<<<<

Ese parametro "php_flag short_open_tag on" es un parametro de php y lo pueden localizar en el archivo de configuracion general del php llamado php.ini y esta en /etc, y como yo ya lo tengo configurado no tiene caso aqui volverlo a declarar, asi que solo lo comento y listo.

service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

Bien, ahora si apunten su navegar a la dirección de su nuevo servidor mds:

http://W.X.Y.Z/mmc

Deben ver una imagen parecida a esta:


Ahora, mi usuario administrador se llama "Manager", pero MDS quiere que sea root, así que no hay problema, tecleo root y le pongo el password del administrador de mi dominio y listo, acceso a la interfaz del MDS, verán algo parecido a esto:




Le dan un click en "User list" y les mostrara los usuarios de su dominio:



Esto nos indica que MDS está listo para administrar todos los usuarios de su dominio con Samba+LDAP, ya no necesitan ingresar a la consola para agregar, modificar y eliminar usuarios, cambiar passwords, eliminar computadoras, todo lo podrán hacer desde aquí.

Aun falta la parte del correo, pero aun no le tengo listo así que pronto vamos a actualizarlo, con esto podrán hacer lo mismo pero con el correo.

Si encuentran algún error de cualquier tipo de favor háganmelo saber para corregirlo.

Saludos y hasta pronto!!!

martes, 8 de septiembre de 2009

Cambiar Password del Administrador de LDAP.

Necesito cambiar el password del administrador del LDAP, yo no le llamo por defecto "root", yo uso "Manager".

1; Sacar via slappwd el hash del nuevo password:

root# slappasswd
New password:
Re-enter new password:
{SSHA}gvnVHR/BnKw+4oCi7TJNFy4Ezm43IIho

Cada hash es de acuerdo a su password.

2; Agregar nuevo hash a el archivo slapd.conf

rootpw {SSHA}gvnVHR/BnKw+4oCi7TJNFy4Ezm43IIho

3; Reiniciar el ldap server:

root# service ldap restart
Stopping slapd: [ OK ]
Checking configuration files for slapd: config file testing succeeded
[ OK ]
Starting slapd: [ OK ]

4; Darle el nuevo password del administrador de LDAP a samba:

root# smbpasswd -W Manager
Setting stored password for "cn=Manager,dc=rmai,dc=local" in secrets.tdb
New SMB password:
Retype new SMB password:

5; Reiniciar samba.

6; Darle el nuevo password a smbldap-tools, editando el archivo smbldap_bind.conf

slaveDN="cn=Manager,dc=rmai,dc=local"
slavePw="nuevopwd"
masterDN="cn=Manager,dc=rmai,dc=local"
masterPw="nuevopwd"

7; Le cambiamos el password a el administrador atraves de smbldap-password tambien:

smbldap-passwd Manager
Changing UNIX and samba passwords for Manager
New password:
Retype new password:

8; Como tenemos a pure-ftpd via LDAP tambien ahi que darle el nuevo password editando el archivo pureftp-ldap.conf:

LDAPBindPW nuevopwd

9; Reiniciamos pure-ftpd.

service pure-ftpd restart
Stopping pure-ftpd: [ OK ]
Starting pure-ftpd: [ OK ]

10; Hacer esto con todos las aplicaciones que se autentifiquen con LDAP.

11; Probar el nuevo password:

ldapsearch -x -b "dc=rmai, dc=local" -D "cn=Manager, dc=rmai, dc=local" -W
Enter LDAP Password:

Sale un listado de todo lo encontrado, aqui solo pongo lo ultimo:

# search result
search: 2
result: 0 Success

# numResponses: 25
# numEntries: 24

Ahora, probamos con samba:


smbclient -L //rmaipdc -U Manager
Password:
Domain=[RMAI] OS=[Unix] Server=[Samba 3.0.33-3.7.el5_3.1]

Sharename Type Comment
--------- ---- -------
netlogon Disk Default Share
IPC$ IPC IPC Service (RMAI Domain Server)
Manager Disk Home Directories
Domain=[RMAI] OS=[Unix] Server=[Samba 3.0.33-3.7.el5_3.1]

Server Comment
--------- -------
RMAIPDC RMAI Domain Server

Workgroup Master
--------- -------
RMAI RMAIPDC


Todo funcionando de nuevo, animo!!!