Habilitar la autenticación contra Active Directory en CentOS 5

Las siguientes instrucciones son para habilitar el login de usuarios de Active Directory en CentOS 5 x86_64.

Lo primero que necesitamos es instalar en el controlador de dominio (en mi caso Windows 2008 R2) el servicio de “Microsoft Identity Management for UNIX” y crear un dominio NIS.

He creado en AD un grupo global ad_unix_users para que sea el grupo principal de los usuarios en Linux, para esto en las propiedades del grupo, vamos a la pestaña UNIX attributes y lo asignamos al dominio NIS. Le tendría que dar automáticamente un GID.

En los usuarios que queramos que puedan loguearse vamos de nuevo a la pestaña UNIX attributes y los añadimos al dominio NIS. Ponemos nuestra shell preferida, directorio home, y el grupo principal que hemos creado antes. Voy a suponer que todos los usuarios están dentro de la OU: “ou=Users,dc=example,dc=com”.

Hace falta crear también un usuario para la conexión LDAP. En este ejemplo se llama unixauth, ponerle una contraseña compleja.

Hay ciertos puntos que hay que revisar:

  • El DNS tiene que estar bien configurado: tiene que funcionar bien la resolucion del nombre de host y la resolución inversa y la máquina Linux tiene que resolver usando los DNS de Windows.
  • Me he encontrado un conflicto en CentOS 5 de 64 bits por culpa del paquete pam_krb5.i386 que no debería estar instalado. Incluyo un comando para quitar todos los paquetes de 32 bits
  • Hace falta el certificado de la CA del dominio, podemos obtenerlo accediendo a la máquina donde esten instalados los servicios de certificados en la URL adcs.example.com/certsrv/


# yum list installed | egrep ".i686|.i386" | awk {'print $1'} | xargs yum remove -y
# cp <Windows CA>.crt /etc/openldap/cacerts/
# yum install -y openldap-clients.x86_64 pam_krb5.x86_64 authconfig.x86_64 nss_ldap.x86_64
# authconfig --enableldap --enableldaptls --ldapserver adds01.example.com,adds02.example.com --ldapbasedn "ou=Users,dc=example,dc=com" --enablekrb5 --krb5realm EXAMPLE.COM --enablekrb5kdcdns --disablekrb5realmdns --enablemkhomedir --enablelocauthorize --update

– Editar /etc/ldap.conf y añadir:

binddn unixauth
bindpw <unixauth password>
nss_map_objectclass posixAccount user
nss_map_objectclass shadowAccount user
nss_map_attribute uid sAMAccountName
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute shadowLastChange pwdLastSet
nss_map_objectclass posixGroup group
nss_map_attribute uniqueMember member
pam_login_attribute sAMAccountName
pam_filter objectclass=User
pam_password ad

Espero que os sirva.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s