Unas de las tareas de un sysadmin es controlar el acceso a los
equipos de nuestra red, cuando la suma de estos es grande se deben crear
politicas, y una de esas politicas debe ser la centralizacion de
usuarios, a continuacion les mostrare como se puede realizar esto con un
ejemplo del servidor y los clientes.
Una vez instalado los paquetes necesarios editamos slapd.conf dentro de /etc/ldap
Una vez realizada la configuracion de slapd.conf, se debe editar /etc/nsswitch.conf
Debemos editar ademas el archivo pam_ldap.conf dentro de /etc
Ahora reiniciamos el servidor slapd
Ahora editamos el archivo ldap.conf de los clientes este puede estar en /etc/ldap.conf
A continuacion editamos /etc/nsswitch.conf
Ahora editamos el archivo para la conexion del cliente /etc/openldap/ldap.conf
Esta configuracion es para cualquier cliente este archivo puede ser un archivo unico o separados.
# Esta definicion permite al root entrar sin pasar por servidor LDAP, en el caso si el servidor de autenticacion esta down.
Ahora solo nos falta cargar los ldif para armar nuestro directorio LDAP. 2 Ejemplo de host y usuarios.
Se crean 3 hosts en el directorio LDAP y un usuario con solo acceso a mail y dns, si se requiere que el usuario test entre ademas a web, bastaria con modificar la linea host: mail,dns,web
apt-get install slapd libnss-ldap libpam-ldap
Una vez instalado los paquetes necesarios editamos slapd.conf dentro de /etc/ldap
# Schema y ObjectClass
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
# Definicion Basica
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel 0
modulepath /usr/lib/ldap
moduleload back_bdb
sizelimit 500
tool-threads 1
backend bdb
checkpoint 512 30
database bdb
# Definicion del Directorio
suffix “dc=dominio,dc=cl”
# DB
directory “/var/lib/ldap”
# Definicion de dbconfig
dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
index objectClass eq
lastmod on
# Definicion de acceso a la DB
access to attrs=userPassword,shadowLastChange
by dn=”cn=admin,dc=dominio,dc=cl” write
by anonymous auth
by self write
by * none
access to dn.base=”" by * read
access to *
by dn=”cn=admin,dc=dominio,dc=cl” write
by * read
Una vez realizada la configuracion de slapd.conf, se debe editar /etc/nsswitch.conf
passwd: compat ldap
group: compat ldap
shadow: compat ldap
Debemos editar ademas el archivo pam_ldap.conf dentro de /etc
host 127.0.0.1
base dc=dominio,dc=cl
ldap_version 3
rootbinddn cn=admin,dc=dominio,dc=cl
pam_check_host_attr yes
Ahora reiniciamos el servidor slapd
invoke-rc.d slapd restart
Ahora editamos el archivo ldap.conf de los clientes este puede estar en /etc/ldap.conf
# Por defecto
host 200.0.0.1 # server ldap
base dc=dominio,dc=cl
ldap_version 3
rootbinddn cn=admin,dc=dominio,dc=cl
timelimit 120
bind_timelimit 120
idle_timelimit 3600
# Control de acceso por host
pam_check_host_attr yes
pam_filter &(objectClass=posixAccount)(host=mail)
A continuacion editamos /etc/nsswitch.conf
passwd: files ldap
shadow: files ldap
group: files ldap
Ahora editamos el archivo para la conexion del cliente /etc/openldap/ldap.conf
BASE dc=dominio,dc=cl
URI ldap://200.0.0.1/ # server ldap
Esta configuracion es para cualquier cliente este archivo puede ser un archivo unico o separados.
# Esta definicion permite al root entrar sin pasar por servidor LDAP, en el caso si el servidor de autenticacion esta down.
auth [success=1 default=ignore] pam_unix.so
auth required pam_ldap.so use_first_pass
auth required pam_permit.so
account [success=1 default=ignore] pam_unix.so
account [success=ok new_authtok_reqd=ok ignore=ignore default=bad perm_denied=bad] pam_ldap.so
account required pam_permit.so
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5
session required pam_unix.so
session optional pam_ldap.so
session required pam_mkhomedir.so umask=0066 skel=/etc/skel
Ahora solo nos falta cargar los ldif para armar nuestro directorio LDAP. 2 Ejemplo de host y usuarios.
ldapadd -x -D “cn=admin,dc=dominio,dc=cl” -W -f hosts.ldif
dn: cn=mail,ou=hosts,ou=ssh,ou=service,dc=dominio,dc=cl
objectClass: ipHost
objectClass: device
objectClass: extensibleObject
ipHostNumber: 200.0.0.3
cn: mail.dominio.cl
cn: mail
dn: cn=dns,ou=hosts,ou=ssh,ou=service,dc=dominio,dc=cl
objectClass: ipHost
objectClass: device
objectClass: extensibleObject
ipHostNumber: 200.0.0.4
cn: dns.dominio.cl
cn: dns
dn: cn=web,ou=hosts,ou=ssh,ou=service,dc=dominio,dc=cl
objectClass: ipHost
objectClass: device
objectClass: extensibleObject
ipHostNumber: 200.0.0.5
cn: web.dominio.cl
cn: web
ldapadd -x -D “cn=admin,dc=dominio,dc=cl” -W -f usuario.ldif
dn: uid=operador,ou=users,ou=ssh,ou=service,dc=dominio,dc=cl
uid: test
cn: Test
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash
uidNumber: 786
gidNumber: 100
homeDirectory: /home/test
userPassword: {crypt}GoYLwzMD6cuZE
host: mail,dns
Se crean 3 hosts en el directorio LDAP y un usuario con solo acceso a mail y dns, si se requiere que el usuario test entre ademas a web, bastaria con modificar la linea host: mail,dns,web
No hay comentarios:
Publicar un comentario