Máquina Linux en un dominio de Windows AD usando sssd y krb5

Era necesario ingresar una máquina Ubuntu en un dominio de Windows. Para estos fines, generalmente se usan Samba y Winbind. Pero una alternativa es posible con sssd, una breve guía a continuación.

Por ejemplo, usaremos:

Dominio = contoso.com
Controlador de dominio = dc.contoso.com

Inicie el terminal de Ubuntu:

1. Cambiar a root

sudo -i 

2. Instale los paquetes necesarios

 apt install sssd heimdal-clients msktutil 

3. Editamos /etc/krb5.conf, las pestañas se usan como sangrías

 [libdefaults] default_realm = CONTOSO.COM [realms] CONTOSO.COM = { kdc = DC admin_server = dc.contoso.com default_domain = contoso.com } [login] krb4_convert = true krb4_get_tickets = false [domain_realm] .contoso.com = CONTOSO.COM contoso.com = CONTOSO.COM 

4. Edite el archivo / etc / hosts, especifique el FQDN para este host:

 127.0.0.1 localhost 127.0.1.1 <hostname>.contoso.com <hostname> 

5. Intentamos obtener un ticket Kerberos en nombre del administrador del dominio:

 root@ubuntu:~# kinit YourDomainAdmin YourDomainAdmin@CONTOSO.COM's Password: 

Comprobamos:

 root@ubuntu:~# klist Credentials cache: FILE:/tmp/krb5cc_0 Principal: YourDomainAdmin@CONTOSO.COM Issued Expires Principal Dec 1 15:08:27 2018 Dec 2 01:08:22 2018 krbtgt/CONTOSO.COM@CONTOSO.COM 

Si el ticket se recibe con éxito, ahora se pueden generar los principales Kerberos para este host, el registro es importante:

 msktutil -c -b 'CN=YourComputersOU' -s HOST/HOSTNAME.contoso.com -k /etc/sssd/HOSTNAME.keytab --computer-name HOSTNAME --upn HOSTNAME$ --server dc.contoso.com —user-creds-only msktutil -c -b 'CN=YourComputersOU' -s HOST/HOSTNAME -k /etc/sssd/HOSTNAME.keytab --computer-name HOSTNAME --upn HOSTNAME$ --server dc.contoso.com --user-creds-only 

Ahora nuestro host debería aparecer en la lista de computadoras en el directorio. Si es así, elimine el ticket Kerberos recibido:

 kdestroy 

6. Cree el archivo /etc/sssd/sssd.conf con los siguientes contenidos:

 [sssd] services = nss, pam config_file_version = 2 domains = contoso.com [nss] entry_negative_timeout = 0 debug_level = 3 [pam] debug_level = 3 [domain/contoso.com] debug_level = 3 ad_domain = contoso.com ad_server = dc.contoso.com enumerate = false id_provider = ad auth_provider = ad chpass_provider = ad access_provider = simple simple_allow_groups = users #   ,  .   —       . ldap_schema = ad ldap_id_mapping = true fallback_homedir = /home/%u default_shell = /bin/bash ldap_sasl_mech = gssapi ldap_sasl_authid = <HOSTNAME>$ ldap_krb5_init_creds = true krb5_keytab = /etc/sssd/<HOSTNAME>.keytab 

La descripción de los parámetros del archivo de configuración sssd se puede encontrar aquí

Establezca permisos para el archivo sssd.conf:

 chmod 600 /etc/sssd/sssd.conf 

Reiniciar el servicio SSSD

 service sssd restart 

7. Edición de la configuración de PAM

Mala solución:

edite el archivo /etc/pam.d/common-session, después de la línea

 session required pam_unix.so 

agregar línea

 session required pam_mkhomedir.so skel=/etc/skel umask=0022 

Buena solución:

anular los parámetros a través de la configuración del sistema PAM, llamar

 pam-auth-update 

y verifique los elementos sss auth y makehomdir . Esto agregará automáticamente
la línea anterior en la sesión común y no se sobrescribirá al actualizar el sistema.

Ahora podemos iniciar sesión en la máquina para los usuarios del dominio que pueden iniciar sesión.

PD: puede otorgar el derecho de usar grupos de dominio sudo. Con visudo, edite el archivo / etc / sudoers, o mejor, como recomiendan maxzhurkin e iluvar , cree un nuevo archivo en /etc/sudoers.d/ y edítelo

 visudo -f /etc/sudoers.d/_ 

agregue el grupo requerido, por ejemplo, Administradores de dominio (si hay espacios en el nombre del grupo, se deben escapar):

 %Domain\ Admins ALL=(ALL) ALL 


PSS: Gracias a Gotch por la información sobre realmd. Es muy conveniente: si no se necesitan configuraciones específicas, ingresar una máquina en un dominio requiere, de hecho, tres comandos:
1. Instale los paquetes necesarios:
 sudo apt install realmd samba-common-bin samba-libs sssd-tools krb5-user adcli 

2. Verifique que nuestro dominio sea visible en la red:
 realm discover contoso.com 

3. Ingrese la máquina en el dominio:
 sudo realm --verbose join contoso.com -U YourDomainAdmin --install=/ 

4. Edición de la configuración de PAM
 sudo pam-auth-update 

Una ventaja adicional de esta opción es la autorización de extremo a extremo en los recursos de archivo del dominio.

Para no especificar un dominio además del inicio de sesión, puede agregar un sufijo predeterminado. En el archivo /etc/sssd/sssd.conf, en el bloque [sssd], agregue la línea:
 default_domain_suffix = contoso.com 

Source: https://habr.com/ru/post/437546/


All Articles