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

Por Jeremías Palazzesi

Solucionador de Problemas Senior!. No podés con algo?, probá conmigo!

Deja una respuesta