Inicio > CentOS, How-to, Linux, OpenLDAP, Servidor de Autenticación > Cómo implementar OpenLDAP – Segunda Parte

Cómo implementar OpenLDAP – Segunda Parte

En el documento-howto-guía pasado escribí acerca de cómo utilizar OpenLDAP como un servidor de autenticación.
Ahora voy a escribir en cómo configurar OpenLDAP para:

1. Configurar el cliente de OpenLDAP para que al momento que el usuario se logee, el cliente genere un directorio /home/$usuario
2. Configurar OpenLDAP para permitirle al usuario modificar su contraseña
3. Configurar OpenLDAP para que un usuario solo tenga acceso a hosts/clientes específicos, en ves de tener acceso a todos los hosts que utilizan OpenLDAP como servidode autenticación

1. Configurar el cliente de OpenLDAP para que al momento que el usuario se logee , el cliente genere un directorio /home/$usuario

Cuando un usuario establece una conexión a un sistema que utiliza OpenLDAP como servidor de autenticación, el usuario NO tendrá un directorio /home/$usuario puesto que la cuenta de usuario no fue creada localmente en el sistema.

Al logearme al sistema me aparece esto:

[dan@centos ~]$ ssh usuarioTest@host_usando_openldap_como_auth_server
usuarioTest@centos’s password:
Last login: Thu Jul 31 11:19:17 2008 from otro.host.de_mi_red.com
Could not chdir to home directory /home/usuarioTest: No such file or directory
-bash-3.1$

Esto es porque el usuario no tiene un directorio en /home en este host, la manera de solucionar esto es

* Creándo el /home/usuarioTest a mano
o
* Modificando /etc/pam.d/sshd y agregándo al final una línea como esta:

session required pam_mkhomedir.so skel=/etc/skel/ umask=0022

Trata de logearte de nuevo al sistema, y verás algo cómo esto:

[dan@centos ~]$ ssh usuarioTest@host_usando_openldap_como_auth_server
usuarioTest@centos’s password:
Creating directory ‘/home/usuarioTest’.
Last login: Fri Aug 8 08:38:26 2008 from otro.host.de_mi_red.com
[usuarioTest@centos ~]$

Listo! Ahora configura tus demás hosts para que utilicen OpenLDAP como su servidor de autenticación.

2. Configurar OpenLDAP para permitirle al usuario modificar su contraseña

Esta es una modificación sencilla en la configuración de OpenLDAP, lo único que tienes que hacer es agregar las siguientes líneas a /etc/opendalp/slapd.conf

– snip –
access to attrs=userPassword
by self write
by anonymous auth
by dn.base=”cn=admin,dc=mi_dominio,dc=com” write
by * none

access to *
by self write
by dn.base=”cn=admin,dc=mi_dominio,dc=com” write
by * read
– snip –

Reinicia el servicio de OpenLDAP con un /etc/init.d/ldap restart
Disfruta de los resultados.

3. Configurar OpenLDAP para que un usuario solo tenga acceso a hosts/clientes específicos, en ves de tener acceso a todos los hosts que utilizan OpenLDAP como servidode autenticación

El primer paso a realizar es generar una Organizational Unit (ou) con el nombre de “Hosts”, aquí un ejemplo del ldif:

– snip –
dn: ou=Hosts, dc=mi_dominio,dc=com
ou: Hosts
objectClass: top
objectClass: organizationalUnit
– snip –

Después lo que se tiene que hacer es poblar esta OU co el nombre de cada host, debemos de crear una entrada por cada host que tengamos en nuestra red, aquí un ldif de ejemplo:

– snip –
dn: cn=nombre_del_host, ou=Hosts, dc=mi_dominio,dc=com
ipHostNumber: 2.2.2.2 (aquí la la ip sl host)
objectClass: ipHost
objectClass: device
objectClass: extensibleObject
cn: nombre_del_host.mi_dominio.com (este es el FQDN del host)
cn: clb1
– snip –

El siguiente paso es modificar /etc/ldap.conf en cada host de nuestra red, debe de modificarse de la siguiente manera:

– snip original –
# Group to enforce membership of
#pam_groupdn cn=PAM,ou=Groups,dc=example,dc=com

# Group member attribute
#pam_member_attribute uniquemember
– snip original –

– snip modificado –
# Group to enforce membership of
pam_groupdn cn=nombre_del_host,ou=Hosts,dc=mi_dominio,dc=com

# Group member attribute
pam_member_attribute member
– snip modificado –

Después de hacer esto, viene la “magia”. Hay que agregar un atributo al cn=nobre_del_host con el id del usuario que queremos permitirle acceso a este host, el ldif queda de la siguiente manera:

– snip –
dn: cn=nombre_del_host, ou=Hosts, dc=mi_dominio,dc=com
ipHostNumber: 2.2.2.2
objectClass: ipHost
objectClass: device
objectClass: extensibleObject
cn: nombre_del_host.mi_dominio.com (este es el FQDN del host)
cn: clb1
member: uid=kwame,ou=People,dc=mi_dominio,dc=com
member: uid=otro_usuario,ou=People,dc=mi_dominio,dc=com
member: uid=un_usuario_mas,ou=People,dc=mi_dominio,dc=com
– snip –

Fuente: http://kwame.informatux.net/?p=100

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: