Diferencia entre revisiones de «Autenticación Linux en Active Directory»
(→Algunas ideas) |
|||
Línea 131: | Línea 131: | ||
'''NOTA! Al perder la conectividad contra el DC del domino PRISACOMLAB, y después recuperarla, no podía consultar datos de los usuarios del dominio PRISACOMLAB. He esperado unos dos minutos y no había manera. Solo ha vuelto a funcionar reiniciando el servicio winbind. Aunque los usuarios sobre los que ya había realizado alguna consulta si que respondían, porque hay un cache el servicio WINBIND.''' | '''NOTA! Al perder la conectividad contra el DC del domino PRISACOMLAB, y después recuperarla, no podía consultar datos de los usuarios del dominio PRISACOMLAB. He esperado unos dos minutos y no había manera. Solo ha vuelto a funcionar reiniciando el servicio winbind. Aunque los usuarios sobre los que ya había realizado alguna consulta si que respondían, porque hay un cache el servicio WINBIND.''' | ||
+ | |||
+ | |||
+ | = Pruebas con SLAPD Proxy = | ||
+ | |||
+ | == Pasos iniciales == | ||
+ | Antes de nada hay que informarse bien de que es SLAPD, en esta [http://www.umich.edu/~dirsvcs/ldap/doc/guides/slapd/1.html pagina] explican bastante bien. |
Revisión de 10:42 21 jul 2012
Introducción
Se busca un sistema en el que las máquinas linux se validen con usurios gestionados en Active Directory de Microsoft. Además es un ambiente en el que habrá varios dominios, y en ambos dominios habrá usuarios que necesiten validarse en estas máquinas. (Administración de servidores compartida por dos dominios)
Que se necesita
- Sistema único de validación de usuarios en ssh
- Validación de aplicaciones web
- Multidominio
Algunas ideas
- Winbind
- LDAP proxy
- producto de novel:https://www.netiq.com/documentation/ldapproxy/
- posibiliad con slapd: http://linux.die.net/man/5/slapd-ldap
- Wikipedia sobre ldap: http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol#Extended_operations
Pruebas con winbind
Para hacer estas pruebas he cogido un CENTOS 5.7. Este servidor esta en una red en la que existen dos dominios de windows:
- prisacomlab.lab
- intlab.prisadigital.lab
Estos dos dominios son una simulación de migración de usuarios de un dominio a otro. Para nuestra prueba es perfecto puesto que ya existe una relación de confianza entre ambos dominios.
La idea es ligar la máquina SDS02.intlab.prisadigital.lab (la máquina linux) contra el dominio intlab.prisadigital.lab, y ver si podemos validarnos con winbind y además usar usuarios del otro dominio con el que tenemos relación de confianza.
Instalación de paquetes inicial
Para empezar hemos instalado los siguientes paquetes:
- yum install samba-common
- yum install pam_krb5
- yum install sudo
- yum install authconfig
Hemos configurado el winbind para que arranque automáticamente:
- chkconfig winbind on
Y hemos comprobado que con hostname -f nos devuelve el fqdn completo del dominio en el que queremos validar la máqiuna:
# hostname -f sds02.intlab.prisadigital.lab
Configuración de autenticación
Para hacer la configuración de los diferentes ficheros de configuración para la validación se puede usar el ejecutable authconf
# authconfig --disablecache --enablewinbind --enablewinbindauth --smbsecurity=ads --smbworkgroup=WORKGROUP --smbrealm=intlab.prisadigital.lab --enablewinbindusedefaultdomain --winbindtemplatehomedir=/home/EXAMPLE/%u --winbindtemplateshell=/bin/bash --enablekrb5 --enablekrb5kdcdns --enablekrb5realmdns --enablelocauthorize --enablemkhomedir --enablepamaccess --updateall
Este comando, tras su ejecución, debería reiniciar el servicio winbind. Si no es así lo lanzamos a mano:
# service winbind restart
Se habrán modificado varios ficheros con el authconf, entre los que se encuentran:
- /etc/nsswitch.conf
- /etc/krb5.conf
- /etc/samba/smb.conf
- /etc/pam.d/system-auth
- (...) seguro que alguno más
Metiendo linux en dominio
Ahora podemos poner el linux en dominio, para ello tendremos que usar el comando de samba net
# net ads join -U <usuario>
Ponemos la contraseña del usuario con privilegios de domain admin del dominino y automáticamente la máquina se añadirá. Nos sugiere que cambiemos el workgroup del fichero de configuración /etc/samba/smb.conf para que coincida con el de nuestro dominio. (en mi caso el doiminio es intlab.prisadigial.lab y el dominio es INTLABPDIGITAL
Fichero de configuración de samba
Mi fichero de configuración de Samba ha quedado como sigue a continuación:
workgroup = INTLABPDIGITAL realm = INTLAB.PRISADIGITAL.LAB security = ads idmap domains = INTLABPDIGITAL PRISACOMLAB idmap config INTLABPDIGITAL:backend = rid idmap config INTLABPDIGITAL:default = yes idmap config INTLABPDIGITAL:range = 500 - 50000 idmap config PRISACOMLAB:backend = rid idmap config PRISACOMLAB:default = no idmap config PRISACOMLAB:range = 50001 - 100000 # idmap uid = 16777216-33554431 # idmap gid = 16777216-33554431 template homedir = /home/EXAMPLE/%u template shell = /bin/bash # winbind use default domain = true winbind offline logon = false winbind trusted domains = yes winbind trusted domains only = false
Mapeo de usuarios para el ID
Para cada uno de los dominios que hemos configurado le hemos dado un rango en el que se van a encontrar sus objetos, tanto usuarios como grupos.
Sospecho que al poner en el parámetro backend el valor RID lo que hace es coger el valor del ObjectSid único de cada objeto. En concreto coge el último de los valores.
Si hemos puesto un rango, por ejemplo de 50001 a 100000 lo que va a hacer es sumar el rango inferior (50000) a la ultima cifra del objectSid
Ejemplo. Mi usuario en el dominio PRISACOMLAB tiene el objectid:
S-1-5-21-2900016387-2670582172-2881881166-1970
y como en el dominio le hemos puesto el rango 50001, pues el ID de mi usuario PRISACOMLAB\pmblanco será el 51971
Añadiendo dominios de confianza
Si lanzamos el comando # wbinfo -u nos devuelve una lista de los usuarios que del dominio, y además de cualquier otro dominio con el que haya relación de confianza. Pero si queremos que esos usuarios sean tenidos en cuenta vamos a tener que especificarlo en el fichero smb.conf. Exactamente con el parámetro idmap domains, y además tendremos que añadir algunas entradas idmap config para especificar el rango en el que se van a mover los id's de los objetos del dominio, si es el dominio por defecto, etc.
Comunicaciones
Despues de analizar el tráfico que hay en la máquina cliente para poder recoger todos los datos de cada usuario del dominio PRISACOMLAB, me encuentro que las consultas no se hacen a través del controlador del dominio INTLABPDIGITAL (en el que está metido el samba de esta máquina) sinó que para consultar los datos de un usuario del dominio de confianza tiene que tener conectividad con el controlador de dominio de confianza...
Para probar que de verdad es así he filtrado el acceso a los controladores de dominio PRISACOMLAB con:
iptables -A OUTPUT -d 10.90.3.111 -j DROP iptables -A OUTPUT -d 10.90.3.112 -j DROP
y efectivamente he dejado de poder consultar los usuarios del dominio PRISACOMLAB. De hecho con el comando wbinfo -u ya solo aparecen los usuarios del dominio INTLABPDIGITAL.
NOTA! Al perder la conectividad contra el DC del domino PRISACOMLAB, y después recuperarla, no podía consultar datos de los usuarios del dominio PRISACOMLAB. He esperado unos dos minutos y no había manera. Solo ha vuelto a funcionar reiniciando el servicio winbind. Aunque los usuarios sobre los que ya había realizado alguna consulta si que respondían, porque hay un cache el servicio WINBIND.
Pruebas con SLAPD Proxy
Pasos iniciales
Antes de nada hay que informarse bien de que es SLAPD, en esta pagina explican bastante bien.