Llega la etapa donde la autenticación basada en roles(RBAC) en la empresa debe llegar a Linux y te guste o no Active Directory es un mal necesario. (Ya hablaremos en algún otro momento de OpenLDAP o similares).
Tenés un montón de servidores Linux y ahora necesitas permisos centralizados.
Vamos a crear en Active Directory un grupo de usuarios con permisos limitados(linux-user) y uno con permisos «sudo»(linux-root). Los usuarios de ambos accederán por ssh a los servidores linux de la empresa. En este caso, los servidores linux serán Debian 12 y el DC (Controlador de Dominio) un Windows Server 2019.

Hoy voy a los bifes!.
Configuramos el DC midominio.com.ar
Voy a pasar rápido los pasos para agregar un equipo al dominio ya que no es el foco de este lab pero es necesario para realizarlo. Muy sencillo, el viejo y efectivo DCPromo pero con la hermosa GUI de Windows Server 2019.




Siguiente>Siguiente>…>Install y reiniciar.

Configuramos los grupos
Vamos a configurar los grupos de usuarios contra los que validaremos en Linux

user1 será miembro de linux-root y user2 será miembro de linux-user.
Los usuarios de linux-root podrán conectarse por ssh y hacer sudo mientras que los miembros de linux-user solo tendrán acceso ssh sin privilegios

Configuramos Linux (debian)
Vamos a instalar todo lo que necesitamos
sudo apt update
sudo apt install -y sudo realmd sssd sssd-tools libnss-sss libpam-sss adcli oddjob oddjob-mkhomedir samba-common-bin krb5-user packagekit
Cuando te pregunte, completá con:
Dominio Kerberos: MIDOMINIO.COM.AR

Servidor: lo podés dejar vacío si DNS apunta al controlador de dominio.(O directamente no te preguntará nada.)

Si pregunta por el server, ponemos la ip.

Igual acá. También corregimos los dns sino lo hicimos antes:

Unir al dominio
sudo realm join -U administrator@MIDOMINIO.COM.AR MIDOMINIO.COM.AR
Usá una cuenta de AD con permisos para unir equipos al dominio.
Editar /etc/sssd/sssd.conf
sudo nano /etc/sssd/sssd.conf
Debe quedar así.
[sssd]
domains = MIDOMINIO.COM.AR
config_file_version = 2
services = nss, pam, ssh, sudo
[domain/MIDOMINIO.COM.AR]
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = MIDOMINIO.COM.AR
realmd_tags = manages-system joined-with-adcli
id_provider = ad
fallback_homedir = /home/%u@%d
ad_domain = MIDOMINIO.COM.AR
use_fully_qualified_names = False
default_domain_suffix = MIDOMINIO.COM.AR
ldap_id_mapping = True
access_provider = simple
simple_allow_groups = linux-user, linux-root
[pam]
pam_mkhomedir = True
Asegurate de que los nombres de grupo estén bien escritos y existan en AD.
Dale permisos correctos:
sudo chmod 600 /etc/sssd/sssd.conf
Reiniciar SSSD
sudo systemctl restart sssd
Verificar usuarios y grupos
Comprobá que los grupos estén disponibles:
getent group linux-user
getent group linux-root

Y que tu usuario esté en alguno de esos grupos:
id user1

Habilitar creación de home automáticamente
Esto ya está activado con pam_mkhomedir = True, pero confirmalo en:
sudo grep pam_mkhomedir.so /etc/pam.d/common-session
Debe contener:
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077

Si no, agregalo manualmente.
SSH: permitir acceso
Asegurate de que el demonio SSH permite login de cualquier usuario válido:
sudo nano /etc/ssh/sshd_config
Estas opciones deben estar así:
UsePAM yes
PermitRootLogin no
PasswordAuthentication yes
No uses AllowUsers salvo que lo necesites. Reiniciá SSH:
sudo systemctl restart ssh
Sudo solo para linux-root
Editá sudoers usando visudo:
sudo visudo
Agregá al final:
%linux-root ALL=(ALL) ALL

El momento de la verdad!!!!
Iniciá sesión SSH con un usuario del grupo linux-user o linux-root:
ssh user1@192.168.0.254
Comprobá que se crea /home/user1.
Si el usuario pertenece a linux-root, probá:
sudo whoami


Si está fuera de ambos grupos, el acceso SSH fallará con:
pam_sss(sshd:account): Access denied for user…
El acceso es rechazado en la fase account de PAM si no pertenece a los grupos permitidos.
El acceso local frente al equipo puede funcionar aunque SSH lo niegue. Recordá que PAM valida usuarios siempre contra AD. (Ahora que lo configuramos así)
Si agregás un nuevo grupo en AD para habilitar acceso, recordá reiniciar sssd.
Y si necesitas una mano no dudes en escribir