Cliente LDAP depende de la RED para iniciar
Publicado: 14 Junio, 2010 - 14:54 Cliente LDAP depende de la RED para iniciar
Saludos a todos los usuarios de Debian, como lo indica mi tema, cuento con un servidor OpenLdap sobre RED HAT y me fuciona correctamente, tanto con Debian como Ubuntu, a excepción de Debian, llevo rato tratando de solucionar un problema, configuro un cliente Openldap, y me autentifica todo perfecto, el unico problema es que este cliente cuenta con un usuario local, y necesito que en caso extremo, ya que se da muy poco, por casualidad el servidor Openldap no levante, y mi cliente pueda iniciar, sin crear dependencia del servidor, mi pregunta es: ¿COMÓ HACER QUE MI CLIENTE OPENLDAP INICIE, SIN DEPENDENCIA DEL SERVIDOR Y PUEDA TRABAJAR CON EL USUARIO LOCAL?, espero entienda y me pueda ayudar.
saludos
- Inicie sesión o regístrese para enviar comentarios
- 765 lecturas


Igual buscando algo sobre "name-service switch dispatcher"
man nsswitch.conf
saludos,
Evita el uso de mayúsculas por favor.
Tus clientes realizan la autenticación mediante pam y nsswitch. Si tu lograste que autenticara mediante ldap invariablemente debiste modificar la configuración de nsswitch y pam. Chequea eso.
Mas ayuda no se te puede ofrecer a menos que postees la configuración que haz hecho
a continuacion te podre la configuracion de mis ficheros:
para /etc/nsswitch:
passwd: files ldap [notfound=continue]
group: files ldap [notfound=continue]
shadow: files ldap [notfound=continue]
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
para /etc/libnss-ldap.conf
host ldap.hab.uci.cu
base dc=hab,dc=uci,dc=cu
uri ldapi://ldap.hab.uci.cu
ldap_version 3
bind_policy soft
para /etc/pam_ldap.conf
host ldap.hab.uci.cu
base dc=hab,dc=uci,dc=cu
uri ldapi://ldap.hab.uci.cu
ldap_version 3
bind_policy soft
pam_password md5
para /etc/pam.d/common-account
account sufficient pam_ldap.so
account required pam_unix.so
para /etc/pam.d/common-auth
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure try_first_pass
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
para /etc/pam.d/common-password
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5
para /etc/pam.d/common-session
session sufficient pam_ldap.so
session required pam_unix.so
ya te digo realizo todas las consultas y logro auteticarme contra el ldap, todo mi problema con Debian, es a la hora de iniciar sin red, un dia puedo no contar con el servidor OpenLdap, y deseo iniciar por mi usuario local, y es lo que aun no he logrado. Para dar mas detalles al iniciar sin red, me iniciar casi todos los procesos pero se queda parado en "Starting system message bus: dbus" y ahi se queda, conecto la red nuevamente, y termina de cargar todo, hasta la pantalla de entrada, y todo funciona normal, "pero con red", "sin red", como dice una frase olvidate del tango y canta bolero, jajajaja. Quisiera agregar que con Ubuntu 9.04, 9.10, solo 10.04 no logra pasar de la pantalla de login pero por lo general funciona hasta sin red, en verdad no puedo creer que Debian se quede atras con respecto a Ubuntu, tengo el mejor concepto de Debian y no pienso cambiar, gracias a un pequeño tutorial que me enviaron para Ubuntu, fue que logre iniciar "sin red", se los pongo a continuación:
Instalar las siguientes librerías
# apt-get install libpam-ldap libnss-ldap nss-updatedb libnss-db libpam-ccreds
Configurar ldap.conf
# nano /etc/ldap.conf
Descomente esta línia #bind_policy hard y cambia hard por soft quedando de esta manera
bind_policy soft
Crear fichero open_ldap para configurar la autenticacion con LDAP
# nano /etc/auth-client-config/profile.d/open_ldap
El fichero tendrá la siguiente informacion
[open_ldap]
nss_passwd=passwd: files ldap
nss_group=group: files ldap
nss_shadow=shadow: files ldap
nss_netgroup=netgroup: nis
pam_auth=auth [success=done default=ignore] pam_unix.so nullok_secure try_first_pass
auth [authinfo_unavail=ignore success=1 default=2] pam_ldap.so use_first_pass
auth [default=done] pam_ccreds.so action=validate use_first_pass
auth [default=done] pam_ccreds.so action=store
auth [default=bad] pam_ccreds.so action=update
pam_account=account sufficient pam_ldap.so
account required pam_unix.so
pam_password=password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5
pam_session=session required pam_unix.so
session required pam_mkhomedir.so silent skel=/etc/skel/ umask=076
session optional pam_foreground.so
session sufficient pam_ldap.so
Configurar nsswith.conf y los archivos de configuracion del PAM
# auth-client-config -a -p open_ldap
# nano /etc/nsswitch.conf
Buscamos las entradas passwd y group y las remplazamos por las que aparecen a continuación, que dando de esta manera:
passwd: files db [NOTFOUND=continue] ldap
group: files db [NOTFOUND=continue] ldap
Crear una caché local
# nss_updatedb ldap
Actualizar la cache locPara mantener actualizada nuestra cache local, es necesario crear un script que lo ejecute periódicamente el sistema, en este caso crearemos uno con nombre nssupdate.sh en esta dirección /etc/cron.hourly/al
# nano /etc/cron.hourly/nssupdate.sh
El contenido para este script es el siguiente
LOCK=/var/run/auth-update.cron
[ "$1" != "0" ] && [ -f $LOCK ] && [ -d /proc/"$(cat $LOCK)" ] && exit 0
echo $$ > $LOCK
RANGE=3600
[ "$1" != "" ] && RANGE=$1
SLEEP=$RANDOM
[ "$RANGE" != "0" ] && let "SLEEP %= $RANGE" || SLEEP=0
sleep $SLEEP
go=true
while $go; do
/usr/sbin/nss_updatedb ldap
[ $? -eq 0 ] && go=false
[ "$go" == "true" ] && sleep 10
done
rm $LOCK
exit 0
Le damos permisos necesarios para su ejecución
# chmod 755 /etc/cron.hourly/nssupdate.sh
Verificar consulta contra ldap
# getent passwd
# getent group
Probar la autenticación
# apt-get install libpam-dotfile
# pamtest passwd usuario
Trying to authenticate for service .
Password: // Introducimos el password de usuario
Authentication successful. // La autentificación ha sido satisfactoria
ya les digo, en Debian con la red todo al kilo, marcha o ok, al quitarle la red, olvidense del tango y canten bolero, es otra historia por completo, y me imagino que tiene solución.
saludos