Autenticación Centralizada RHEL/OracleLinux/CentOS 7
En esta oportunidad vamos a configurar una maquina con sistema operativo Linux (RHEL 7) para que pueda autenticar sesiones SSH obteniendo usuarios y credenciales del directorio activo (WINDOWS 2016)
El escenario utilizado es el siguiente:
- Server Linux (linuxhost.danielcastillo.tech, 192.168.1.2)
- AD Server Windows (adwin.danielcastillo.tech,192.168.1.100)
Pre-requisitos.
1. Un usuario en el AD con permisos para agregar estaciones de trabajo lo llamaremos “unixproxy”,
Más informacion sobre como hacerlo en el siguiente link:
https://www.prajwaldesai.com/allow-domain-user-to-add-computer-to-domain/
1.1. Una unidad organizacional en el directorio activo de windows lo llamaremos “ad_win_security_group” a ella perteneceran los usuarios que queremos permitir ingresar.
1.2. Un usuario que pertenezca a la OU anterior a este lo llamaremos “aduser”
2. El sistema esta sincronzando con un servidor NTP confiable: (el server NTP debe ser el AD server)
[root@linuxhost ~]# chronyd -q
2018-06-13T19:29:20Z chronyd version 3.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SECHASH +SIGND +ASYNCDNS +IPV6 +DEBUG)
2018-06-13T19:29:20Z Initial frequency -32.310 ppm
2018-06-13T19:29:25Z System clock wrong by 0.000000 seconds (step)
2018-06-13T19:29:25Z chronyd exitin
3. Revisar que uno de los DNS sea el server ad:
[root@linuxhost ~]# cat /etc/resolv.conf
nameserver 192.168.1.100
4. Revisar que el “hostname” esta correctamente configurado:
[root@linuxhost ~]# hostname
linuxhost.danielcastillo.tech
5. Instalar los paquetes necesarios:
[root@linuxhost ~]# yum install realmd oddjob oddjob-mkhomedir sssd adcli
krb5-workstation samba-common-tools samba-common
6. Al momento de escribir este artículo existia un bug, razón por la cual es recomendable reiniciar el host Linux para evitar el error:
! Insufficient permissions to join the domain
realm: Couldn't join realm: Insufficient permissions to join the domain
Configuración.
7. Ejecuta un “realm discover” para buscar el ad:
[root@linuxhost ~]# realm discover adwin.danielcastillo.tech
EXAMPLE.COM
type: kerberos
realm-name: DANIELCASTILLO.TECH
domain-name: DANIELCASTILLO.TECH
configured: no
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common-tools
8. Lanzamos el requerimiento para ser parte del dominio ejecutando:
[root@linuxhost ~]# realm join -U unixproxy adwin.danielcastillo.tech
unixproxy pasword:
9. Editar archivo de configuración “/etc/sssd/sssd.conf” y cambia/añade las siguientes lineas:
use_fully_qualified_names=False
fallback_homedir=/home/%u
10. Para aplicar los cambios anteriores, reiniciar el servicio sssd:
[root@linuxhost ~]# systemctl restart sssd
11. Si todo va bien, en este punto ya podemos consultar si la maquina Linux “trae” usuarios desde el AD: (para el ejemplo el usuario “aduser” pertenece a la OU “ad_winsecurity_group”)
[root@linuxhost ~]# getent aduser
12. Lo siguiente es editar el archivo “/etc/sshd/sshd_config” para permitir que los usuarios del OU “ad_win_security_group” se puedan loguear por SSH, cambia/añade las siguientes lineas:
AllowGroups <ad_win_security_group>
13. Reinicia el servicio SSH:
[root@linuxhost ~]# systemctl restart sshd
14. (Opcional) Puedes permitir que estos usuarios usen “sudo” y ejecuten tareas como root.
Ejecuta:
[root@linuxhost ~]# visudo
Añade la linea:
%<ad_win_security_group> ALL=ALL ALL
15. En este punto puedes probar logueandote por ssh con el usuario y contraseña del AD
Consideraciones finales.
16. Este procedimiento se puede implementar com parte de una estrategia de centralización de la administracion de los usuarios.
