Autenticación de clientes GNU/Linux en dominio Windows con perfil fijo

Buenos dias | tardes | noches, en esta entrega realizaremos la tarea de integrar máquinas GNU/Linux, en este caso Debian Jessie, para su autenticación mediante usuarios creados en Directorios Activos en Windows 2012 con perfil fijo y montaje de su home al vuelo.

Escenario montado:

  • Windows 2012:
    • hostname: Burns
    • dominio: SPOTYPE.COM
    • Roles ya instalados:
      • Active Directory
      • DNS
    • Dirección ip: 10.0.0.10
  • Cliente Windows:
    • hostname: cliente-windows
    • Cliente sin configurar.
    • Dirección ip: 10.0.0.11

Partimos del punto en el que tenemos ya instalado y configurado AD y DNS en Burns y un cliente con el sistema recién instalado.

1.- Configuración de Burns

En dicha máquina, necesitaremos habilitar la característica llamada Administración de identidades para Unix.

Para habilitar dicha característica en Windows 2012, deberemos ejecutar las siguientes instrucciones en Powershell:

dism.exe /online /enable-feature /featurename:adminui /all
dism.exe /online /enable-feature /featurename:nis /all
dism.exe /online /enable-feature /featurename:psync /all

i

Después de terminar de habilitar las características, nos preguntará si queremos reiniciar el equipo, decimos Y en la última característica que habilitamos.

Una vez hayamos reiniciado el servidor, procedemos a realizar la configuración del DNS.

1.1.- Configuración del DNS

Necesitaremos agregar dos registros, uno en la zona de resolución directa y otro en la inversa.

Para ello, nos vamos al Administrador del Servidor > Herramientas > DNS > Navegamos hasta SPOTYPE.com:i1

Añadimos un nuevo registro en la zona de resolución directa con el host del cliente y su ip y marcamos la opción Create associated pointer (PRT) record que será para añadir un registro en la zona de resolución inversa asociado a nuestro cliente.

i2

Nos aparecerá de la siguiente forma:

i3

Si vemos la zona de resolución inversa (deberemos actualizar la vista):

i4

1.2.- Configuración del usuario y grupo

Nos vamos al Administrador del servidor > Herramientas > Usuarios y equipos de Active Directory.

i5

Desplegamos spotype.com y nos creamos un nuevo usuario llamado usuariodebian haciendo click derecho sobre Users > New > User:

i6

Le establecemos una contraseña con las politicas que tiene Windows y finalizamos la creación.

Ahora creamos el grupo haciendo click derecho sobre la carpeta Users > New > Group:

i7

Una vez creado, verificamos que se han creado bien:

i8

En cada uno de ellos, pulsamos click derecho > propiedades > elegimos la pestaña llamada Unix Attributes y seleccionamos nuestro dominio:

-Grupodebian

i10

-Usuariodebian

i9

2.- Configuración del cliente

2.1.- Instalación y configuración de libnss-ldapd

En el cliente linux, instalamos el paquete libnss-ldapd:

apt update && apt upgrade -y
apt install libnss-ldapd

Durante la instalación nos pedirá configurar ciertos parámetros, los dejamos por defecto ya que después lo configuraremos manualmente.

Editamos el fichero /etc/nslcd.conf verificando las siguientes lineas:

uri ldap://10.0.0.10
base dc=spotype,dc=com
binddn cn=administrator,cn=Users,dc=spotype,dc=com
bindpw Administrador1

Ahora agregamos el mapeo de los siguientes atributos al fichero:

filter passwd (objectClass=User)
filter group (objectClass=Group)
map passwd homeDirectory unixHomeDirectory
map passwd gecos name
map group memberUid member

Guardamos y procedemos a editar el fichero /etc/ldap/ldap.conf descomentanto y definiendo las lineas correspondientes a la URI y BASE:

BASE dc=spotype,dc=com
URI ldap://10.0.0.10/

Guardamos y por último, verificamos el fichero /etc/nsswitch.conf confirmando la configuración ldap correspondiente a passwd y group:

passwd: compat ldap
group: compat ldap

Editamos el fichero /etc/resolv.conf y hacemos servidor DNS principal a Burns:

domain spotype.com
nameserver 10.0.0.10

2.2.- Instalación y configuración de Kerberos

Instalamos los paquetes necesarios:

apt update && apt upgrade -y
apt install krb5-config krb5-user

Durante la instalación nos preguntará por el Realm por defecto para Kerberos 5, especificamos el dominio de burns (SPOTYPE.COM)

Editamos el fichero /etc/krb5.conf, verificando la sección libdefaults y editando la sección realms:

[libdefaults]
        default_realm = SPOTYPE.COM
...
[realms]
        SPOTYPE.COM = {
                 kdc = burns.spotype.com
                 admin_server = burns.spotype.com
        }

Probamos la autenticación del directorio activo con Kerberos:

root@cliente-windows:/home/debian# kinit usuariodebian
Password for usuariodebian@SPOTYPE.COM:
root@cliente-windows:/home/debian#

2.3.- Configuración de PAM Kerberos

Instalamos libpam-krb5 para que el sistema utilice Kerberos del AD para la autenticación de usuarios:

apt update && apt upgrade -y
apt install libpam-krb5

Editamos el fichero /etc/pam.d/common-session y añadimos la siguiente linea para crear el directorio home al vuelo:

session optional pam_mkhomedir.so

3.- Pruebas de funcionamiento

Probamos a hacer un login:

root@cliente-windows:/home/debian# login
cliente-windows login: usuariodebian
Password:
Last login: Tue Mar 7 16:51:20 UTC 2017 on pts/0
Linux cliente-windows 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
Creating directory '/home/usuariodebian'.
$

Podemos realizar una búsqueda en Ldap, pero para ello deberemos de instalar los dos siguientes paquetes:

apt install ldap-utils libsasl2-modules-gssapi-mit -y

Procedemos a realizar una búsqueda:

root@cliente-windows:/home/debian# ldapsearch "uid=usuariodebian"
SASL/GSSAPI authentication started
SASL username: usuariodebian@SPOTYPE.COM
SASL SSF: 56
SASL data security layer installed.
# extended LDIF
#
# LDAPv3
# base <dc=spotype,dc=com> (default) with scope subtree
# filter: uid=usuariodebian
# requesting: ALL
#
# usuariodebian, Users, spotype.com
dn: CN=usuariodebian,CN=Users,DC=spotype,DC=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: usuariodebian
givenName: usuariodebian
distinguishedName: CN=usuariodebian,CN=Users,DC=spotype,DC=com
instanceType: 4
whenCreated: 20170307160125.0Z
whenChanged: 20170307164045.0Z
displayName: usuariodebian
uSNCreated: 16660
uSNChanged: 16678
name: usuariodebian
objectGUID:: xIqPg+unAEeGytk3+L3Gpw==
userAccountControl: 512
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime: 0
lastLogoff: 0
lastLogon: 131333792753960516
pwdLastSet: 131333760858960939
primaryGroupID: 513
objectSid:: AQUAAAAAAAUVAAAA3pAZDl2LjX30QeivVAQAAA==
accountExpires: 9223372036854775807
logonCount: 14
sAMAccountName: usuariodebian
sAMAccountType: 805306368
userPrincipalName: usuariodebian@spotype.com
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=spotype,DC=com
dSCorePropagationData: 16010101000000.0Z
lastLogonTimestamp: 131333784455368047
uid: usuariodebian
msSFU30Name: usuariodebian
msSFU30NisDomain: spotype
uidNumber: 10000
uidNumber: 10000
unixHomeDirectory: /home/usuariodebian
loginShell: /bin/sh
# search reference
ref: ldap://ForestDnsZones.spotype.com/DC=ForestDnsZones,DC=spotype,DC=com
# search reference
ref: ldap://DomainDnsZones.spotype.com/DC=DomainDnsZones,DC=spotype,DC=com
# search reference
ref: ldap://spotype.com/CN=Configuration,DC=spotype,DC=com
# search result
search: 5
result: 0 Success
# numResponses: 5
# numEntries: 1
# numReferences: 3

Anuncios

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 )

Google photo

Estás comentando usando tu cuenta de Google. 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 )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.