{"id":30972,"date":"2021-05-17T21:52:34","date_gmt":"2021-05-17T19:52:34","guid":{"rendered":"https:\/\/eltallerdelbit.com\/?p=30972"},"modified":"2024-04-03T12:59:42","modified_gmt":"2024-04-03T10:59:42","slug":"unir-linux-a-active-directory","status":"publish","type":"post","link":"https:\/\/eltallerdelbit.com\/unir-linux-a-active-directory\/","title":{"rendered":"C\u00f3mo unir Linux a Active Directory (Dominios de Windows)"},"content":{"rendered":"
<\/p>\n
Realmd<\/em> permite unir Linux a Active Directory, es decir que permite a clientes linux realizar la integraci\u00f3n con un dominio de Active Directory<\/em><\/a> y utilizar ciertos recursos de Active Directory<\/em> como la autenticaci\u00f3n de usuarios, identidades y DNS. Adem\u00e1s de servicios de sudo que veremos m\u00e1s adelante. <\/p>\n \n<\/ul>\n \n<\/li>\n <\/p>\n <\/p>\n <\/p>\n realm une un cliente linux a un servidor Active Directory, as\u00ed que primero tenemos que crear su nombre netbios<\/em> del equipo con el FQDN<\/em> del dominio de AD (Active Directory<\/a>);<\/p>\n Editamos el fichero \/etc\/hostname<\/em> y \/etc\/hosts<\/em><\/a><\/p>\n <\/p>\n Primero a\u00f1adimos el dominio FQDN de Active Directory al nombre de host:<\/p>\n<\/li>\n<\/ul>\n <\/p>\n <\/p>\n <\/p>\n Despu\u00e9s tenemos que establecer el dominio de busqueda y los servidores DNS<\/a> que deber\u00e1n de apuntar al dominio de Active Directory<\/a><\/strong>.<\/p>\n Para ello utilizaremos la herramienta nmtui (Network manager TIU), al iniciarlo lo primero que nos encontraremos es una lista con las opciones que nos permite realizar el programa, en este caso vamos a modificar una interfaz, por lo que seleccionaremos la primera opci\u00f3n<\/p>\n<\/li>\n<\/ul>\n <\/p>\n En la siguiente pantalla nos aparecer\u00e1 una lista con todas las interfaces que podemos modificar<\/a>, en este caso solo tenemos una:<\/p>\n <\/p>\n <\/p>\n <\/p>\n Nos moveremos con el tabulador hasta seleccionar la opci\u00f3n “Editar<\/em>” :<\/p>\n <\/p>\n <\/p>\n <\/p>\n Ahora volveremos a movernos hasta el apartado de servidores DNS donde estableceremos nuestro servidor de Active Directory, y nos volveremos a dirigir al apartado de “Busqueda de dominios<\/em>” en el que pulsaremos el bot\u00f3n “A\u00f1adir<\/em>” para que nos genere el campo en el que a\u00f1adiremos nuestro dominio, en este caso lagunica.local :<\/p>\n <\/p>\n <\/p>\n <\/p>\n Una vez aplicados los cambios comprobaremos que el fichero “\/etc\/resolv.conf<\/em>” se ha actualizado con la nueva informaci\u00f3n<\/p>\n <\/p>\n <\/p>\n Una vez hecho los primeros pasos para unir el equipo linux a dominio Windows<\/strong>, procederemos a reiniciar el cliente Linux para aplicar los cambios del nombre de equipo<\/p>\n Reiniciamos el cliente Linux<\/p>\n<\/li>\n<\/ul>\n Una vez hecho tenemos que instalar samba<\/em><\/a> y realm<\/em>, el programa que nos facilitar\u00e1 mucho el trabajo<\/p>\n<\/li>\n<\/ul>\n <\/p>\n <\/p>\n <\/p>\n Una vez hecho esto vamos a inspeccionar el dominio al que vamos a unirnos.<\/li>\n<\/ul>\n En ocasiones el nombre completo de dominio no funciona y tenemos que utilizar nombre de NETBIOS o viceversa. En este caso vemos que funciona con el nombre completo del dominio, y no con el nombre NETBIOS:<\/p>\n <\/p>\n <\/p>\n Si no funciona mediante resoluci\u00f3n de nombre DNS<\/a> (el paso previo) , siempre se puede probar a resolver por el nombre de netbios.<\/p>\n En este caso ser\u00eda:<\/p>\n <\/p>\n <\/p>\n Una vez comprobado que tenemos comunicaci\u00f3n con el mismo y que el programa lo reconoce correctamente procedemos a unirlo con realm<\/em><\/p>\n Ahora vamos a proceder a a\u00f1adir el equipo al dominio de Active Directory con realm :<\/p>\n<\/li>\n<\/ul>\n el comando join<\/em> de realm<\/em> permite unir el equipo al dominio<\/strong> indicado.<\/p>\n -U Especifica el usuario a utilizar para unir el dominio<\/p>\n Podemos revisar la lista de comandos de realm<\/em><\/a> desde la documentaci\u00f3n oficial de Red Hat. <\/p>\n Comprobamos que estamos en el dominio :<\/p>\n<\/li>\n<\/ul>\n Si nos dirigimos al dominio veremos tambi\u00e9n en la lista:<\/p>\n <\/p>\n Reiniciamos el servicio del agente de inicio de sesi\u00f3n ssssd<\/p>\n<\/li>\n<\/ul>\n <\/p>\n <\/p>\n Habilitamos el agente de inicio de sesi\u00f3n:<\/p>\n<\/li>\n<\/ul>\n <\/p>\n <\/p>\n Para que ssd pueda generar los directorios home del usuario AD, habilitaremos la funci\u00f3n mkhomedir<\/em> en sssd<\/p>\n<\/li>\n<\/ul>\n <\/p>\n <\/p>\n Nos aseguraremos que el agente SSSD inicia durante el arranque<\/p>\n<\/li>\n<\/ul>\n Nos aseguramos que la funci\u00f3n arranca el modulo oddjobd.service<\/em>, para que funcione mkdirhome<\/em>:<\/p>\n<\/li>\n<\/ul>\n <\/p>\n <\/p>\n En este caso tenemos que a\u00f1adir la funci\u00f3n mkdirome<\/em> al pam.auth<\/em><\/p>\n Para poder iniciar sesi\u00f3n deberemos de utilizar el nombre de dominio FQDN<\/em> para iniciar sesi\u00f3n de la siguiente forma:<\/p>\n –> Iniciar sesi\u00f3n usando el nombre de dominio:<\/p>\n <\/p>\n –> Iniciar sesi\u00f3n usando el nombre NETBIOS:<\/p>\n <\/p>\n <\/p>\n Desde el fichero “\/etc\/sssd\/sssd.conf<\/em>” podemos cambiar ciertos comportamientos de la integraci\u00f3n como si hace falta usar FQDN, como se generan los directorios home,etc\u2026<\/li>\n<\/p>\n<\/ul>\n <\/p>\n Vamos a cambiar la obligatoriedad del uso de FQDN ,<\/em> para ello cambiaremos el booleano por false<\/em>:<\/p>\n<\/li>\n<\/ul>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Vamos a permitir que solo paco acceda a la maquina (Paco<\/em> pertenece al “grupo6<\/em>“):<\/p>\n <\/p>\n Mostramos c\u00f3mo ha quedado la configuraci\u00f3n del fichero sssd.conf<\/em>:<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n –> C\u00f3mo permitir grupos al sudoers<\/span><\/p>\n <\/p>\n <\/p>\n –> Cambiar el shell de los usuarios de AD<\/span><\/p>\n Para ello modificaremos el fichero “\/etc\/sssd\/sss.conf” y cambiaremos la siguiente linea<\/p>\n Recordad que despu\u00e9s de cada cambio hay que reiniciar el servicio sssd<\/p>\n <\/p>\n Y ya est\u00e1, acabamos de ver c\u00f3mo unir linux a active directory<\/strong>; por medio de realmd<\/em> podremos realizar la uni\u00f3n de linux con un dominio Windows<\/strong>, trabajando tambi\u00e9n con el agente sssd y diversas opciones <\/p>\n <\/p>\n
\n
\nEn este caso vamos a trabajar con Red Ha<\/em>t \/CentOS<\/em>;
\n
\n
\nEn este art\u00edculo (Autor: Daniel Grasa<\/a>):
\n <\/p>\n\n
\n
\n
\n
\n
\n
\n
\n
\n
[root@MeesekCentOS8 ~]# cat \/etc\/hostname\r\nCentOS8AD.lagunica.local\r\n\r\n\r\n[root@MeesekCentOS8 ~]# cat \/etc\/hosts\r\n127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 CentOS8AD.lagunica.local\r\n::1 localhost localhost.localdomain localhost6 localhost6.localdomain6\r\n\r\n<\/pre>\n
\n
\n <\/p>\n[root@CentOS8AD ~]# cat \/etc\/resolv.conf\r\n# Generated by NetworkManager\r\nsearch lagunica.local\r\nnameserver 192.168.0.210\r\nnameserver 8.8.8.8\r\nnameserver 192.168.0.253\r\n<\/pre>\n
\n
\n<\/p>\n\n
dnf install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation authselect-compat\r\n<\/pre>\n
[root@CentOS8AD ~]# dnf install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation authselect-compat\r\n\u00daltima comprobaci\u00f3n de caducidad de metadatos hecha hace 0:16:02, el lun 22 mar 2021 16:36:43 EDT.\r\nEl paquete realmd-0.16.3-19.el8.x86_64 ya est\u00e1 instalado.\r\nEl paquete sssd-2.3.0-9.el8.x86_64 ya est\u00e1 instalado.\r\nEl paquete oddjob-0.34.5-3.el8.x86_64 ya est\u00e1 instalado.\r\nEl paquete oddjob-mkhomedir-0.34.5-3.el8.x86_64 ya est\u00e1 instalado.\r\nEl paquete adcli-0.8.2-7.el8.x86_64 ya est\u00e1 instalado.\r\nEl paquete samba-common-4.12.3-12.el8.3.noarch ya est\u00e1 instalado.\r\nEl paquete authselect-compat-1.2.1-2.el8.x86_64 ya est\u00e1 instalado.\r\nDependencias resueltas.\r\n=================================================================================================================================================================================================================\r\nPaquete Arquitectura Versi\u00f3n Repositorio Tam.\r\n=================================================================================================================================================================================================================\r\nInstalando:\r\nkrb5-workstation x86_64 1.18.2-5.el8 baseos 955 k\r\nsamba-common-tools x86_64 4.12.3-12.el8.3 baseos 484 k\r\nInstalando dependencias:\r\nlibkadm5 x86_64 1.18.2-5.el8 baseos 185 k\r\nsamba-libs x86_64 4.12.3-12.el8.3 baseos 188 k\r\n\r\nResumen de la transacci\u00f3n\r\n=================================================================================================================================================================================================================\r\nInstalar 4 Paquetes\r\n\r\nTama\u00f1o total de la descarga: 1.8 M\r\nTama\u00f1o instalado: 5.0 M\r\n\u00bfEst\u00e1 de acuerdo [s\/N]?:\r\n<\/pre>\n
\n
[root@CentOS8AD ~]# realm discover lagunica.local\r\nlagunica.local\r\ntype: kerberos\r\nrealm-name: LAGUNICA.LOCAL\r\ndomain-name: lagunica.local\r\nconfigured: no\r\nserver-software: active-directory\r\nclient-software: sssd\r\nrequired-package: oddjob\r\nrequired-package: oddjob-mkhomedir\r\nrequired-package: sssd\r\nrequired-package: adcli\r\nrequired-package: samba-common-tools\r\n\r\n<\/pre>\n
[root@CentOS8AD ~]# realm discover LAGUNICA\r\n<\/pre>\n
\n
[root@CentOS8AD ~]# realm join -U Administrador lagunica.local\r\nContrase\u00f1a para Administrador:\r\n[root@CentOS8AD ~]#\r\n<\/pre>\n
\n <\/p>\n\n
[root@CentOS8AD ~]# realm list\r\nlagunica.local\r\ntype: kerberos\r\nrealm-name: LAGUNICA.LOCAL\r\ndomain-name: lagunica.local\r\nconfigured: kerberos-member\r\nserver-software: active-directory\r\nclient-software: sssd\r\nrequired-package: oddjob\r\nrequired-package: oddjob-mkhomedir\r\nrequired-package: sssd\r\nrequired-package: adcli\r\nrequired-package: samba-common-tools\r\nlogin-formats: %U@lagunica.local\r\nlogin-policy: allow-realm-logins\r\n\r\n<\/pre>\n
\n
\n <\/p>\n
\n <\/p>\n\n
[root@CentOS8AD ~]# systemctl restart sssd\r\n\r\n[root@CentOS8AD ~]# systemctl status sssd\r\n\u25cf sssd.service - System Security Services Daemon\r\nLoaded: loaded (\/usr\/lib\/systemd\/system\/sssd.service; enabled; vendor preset: enabled)\r\nActive: active (running) (thawing) since Mon 2021-03-22 17:09:43 EDT; 5s ago\r\nMain PID: 25552 (sssd)\r\nTasks: 5 (limit: 23663)\r\nMemory: 41.0M\r\nCGroup: \/system.slice\/sssd.service\r\n\u251c\u250025552 \/usr\/sbin\/sssd -i --logger=files\r\n\u251c\u250025554 \/usr\/libexec\/sssd\/sssd_be --domain implicit_files --uid 0 --gid 0 --logger=files\r\n\u251c\u250025555 \/usr\/libexec\/sssd\/sssd_be --domain lagunica.local --uid 0 --gid 0 --logger=files\r\n\u251c\u250025556 \/usr\/libexec\/sssd\/sssd_nss --uid 0 --gid 0 --logger=files\r\n\u2514\u250025557 \/usr\/libexec\/sssd\/sssd_pam --uid 0 --gid 0 --logger=files\r\n\r\nmar 22 17:09:42 CentOS8AD.lagunica.local systemd[1]: sssd.service: Succeeded.\r\nmar 22 17:09:42 CentOS8AD.lagunica.local systemd[1]: Stopped System Security Services Daemon.\r\nmar 22 17:09:42 CentOS8AD.lagunica.local systemd[1]: Starting System Security Services Daemon...\r\nmar 22 17:09:42 CentOS8AD.lagunica.local sssd[25552]: Starting up\r\nmar 22 17:09:42 CentOS8AD.lagunica.local be[lagunica.local][25555]: Starting up\r\nmar 22 17:09:42 CentOS8AD.lagunica.local be[implicit_files][25554]: Starting up\r\nmar 22 17:09:43 CentOS8AD.lagunica.local pam[25557]: Starting up\r\nmar 22 17:09:43 CentOS8AD.lagunica.local nss[25556]: Starting up\r\nmar 22 17:09:43 CentOS8AD.lagunica.local systemd[1]: Started System Security Services Daemon.\r\n[root@CentOS8AD ~]#\r\n<\/pre>\n
\n
[root@CentOS8AD ~]# sudo authselect select sssd with-mkhomedir\r\nPerfil \"sssd\" fue seleccionado.\r\nLos siguientes mapas nsswitch est\u00e1n sobrescritos por el perfil:\r\n- passwd\r\n- group\r\n- netgroup\r\n- automount\r\n- services\r\n\r\nMake sure that SSSD service is configured and enabled. See SSSD documentation for more information.\r\n<\/pre>\n
\n
[root@CentOS8AD ~]# sudo authselect select sssd with-mkhomedir\r\nPerfil \"sssd\" fue seleccionado.\r\nLos siguientes mapas nsswitch est\u00e1n sobrescritos por el perfil:\r\n- passwd\r\n- group\r\n- netgroup\r\n- automount\r\n- services\r\n<\/pre>\n
\n
[ylittner@CentOS8AD ~]$ systemctl status sssd\r\n\u25cf sssd.service - System Security Services Daemon\r\n Loaded: loaded (\/usr\/lib\/systemd\/system\/sssd.service; enabled; vendor preset: enabled)\r\n Active: active (running) since Mon 2021-03-22 18:08:53 EDT; 7min ago\r\n Main PID: 733 (sssd)\r\n Tasks: 5 (limit: 23663)\r\n Memory: 66.6M\r\n CGroup: \/system.slice\/sssd.service\r\n \u251c\u2500733 \/usr\/sbin\/sssd -i --logger=files\r\n \u251c\u2500753 \/usr\/libexec\/sssd\/sssd_be --domain implicit_files --uid 0 --gid 0 --logger=files\r\n \u251c\u2500754 \/usr\/libexec\/sssd\/sssd_be --domain lagunica.local --uid 0 --gid 0 --logger=files\r\n \u251c\u2500759 \/usr\/libexec\/sssd\/sssd_nss --uid 0 --gid 0 --logger=files\r\n \u2514\u2500760 \/usr\/libexec\/sssd\/sssd_pam --uid 0 --gid 0 --logger=files\r\n\r\nmar 22 18:08:52 CentOS8AD.lagunica.local be[lagunica.local][754]: Starting up\r\nmar 22 18:08:53 CentOS8AD.lagunica.local nss[759]: Starting up\r\nmar 22 18:08:53 CentOS8AD.lagunica.local pam[760]: Starting up\r\nmar 22 18:08:53 CentOS8AD.lagunica.local systemd[1]: Started System Security Services Daemon.\r\nmar 22 18:08:57 CentOS8AD.lagunica.local be[lagunica.local][754]: Backend is online\r\nmar 22 18:08:58 CentOS8AD.lagunica.local adcli[1137]: GSSAPI client step \r\n[ylittner@CentOS8AD ~]$\r\nMake sure that SSSD service is configured and enabled. See SSSD documentation for more information.\r\n\r\n- with-mkhomedir is selected, make sure pam_oddjob_mkhomedir module\r\n is present and oddjobd service is enabled and active\r\n - systemctl enable --now oddjobd.service\r\n\r\nMake sure that SSSD service is configured and enabled. See SSSD documentation for more information.\r\n<\/pre>\n
\n
\n <\/p>\n\n
[root@CentOS8AD ~]# systemctl enable --now oddjobd.service\r\n[ylittner@CentOS8AD ~]$ systemctl status oddjobd.service\r\n\u25cf oddjobd.service - privileged operations for unprivileged applications\r\nLoaded: loaded (\/usr\/lib\/systemd\/system\/oddjobd.service; enabled; vendor preset: disabled)\r\nActive: active (running) since Mon 2021-03-22 18:08:54 EDT; 8min ago\r\nMain PID: 777 (oddjobd)\r\nTasks: 1 (limit: 23663)\r\nMemory: 1.4M\r\nCGroup: \/system.slice\/oddjobd.service\r\n\u2514\u2500777 \/usr\/sbin\/oddjobd -n -p \/var\/run\/oddjobd.pid -t 300\r\n\r\nmar 22 18:08:54 CentOS8AD.lagunica.local systemd[1]: Started privileged operations for unprivileged applications.\r\n[ylittner@CentOS8AD ~]$\r\n<\/pre>\n
\n
PS C:\\Users\\daniwxp11> ssh lagunica.local\\daniel@192.168.0.42\r\nlagunica.local\\daniel@192.168.0.42's password:\r\nActivate the web console with: systemctl enable --now cockpit.socket\r\n\r\nLast login: Mon Mar 22 19:38:38 2021 from 192.168.0.26\r\n<\/pre>\n
PS C:\\Users\\daniwxp11> ssh lagunica.local\\daniel@192.168.0.42\r\nlagunica.local\\daniel@192.168.0.42's password:\r\nActivate the web console with: systemctl enable --now cockpit.socket\r\n\r\nLast login: Mon Mar 22 19:38:38 2021 from 192.168.0.26\r\n\r\n<\/pre>\n
\n
[root@CentOS8AD ~]# cat \/etc\/sssd\/sssd.conf\r\n\r\n[sssd]\r\ndomains = lagunica.local\r\nconfig_file_version = 2\r\nservices = nss, pam\r\n\r\n[domain\/lagunica.local]\r\nad_domain = lagunica.local\r\nkrb5_realm = LAGUNICA.LOCAL\r\nrealmd_tags = manages-system joined-with-adcli\r\ncache_credentials = True\r\nid_provider = ad\r\nkrb5_store_password_if_offline = True\r\ndefault_shell = \/bin\/bash\r\nldap_id_mapping = True\r\nuse_fully_qualified_names = True\r\nfallback_homedir = \/home\/%u@%d\r\naccess_provider = ad\r\n<\/pre>\n
\n
use_fully_qualified_names = False\r\n<\/pre>\n
\n
\n
[root@CentOS8AD ~]# realm permit paco@lagunica.local\r\n\r\n[root@CentOS8AD ~]# realm permit -g grupo6\r\n<\/pre>\n
[root@CentOS8AD ~]# cat \/etc\/sssd\/sssd.conf\r\n\r\n[sssd]\r\ndomains = lagunica.local\r\nconfig_file_version = 2\r\nservices = nss, pam\r\n\r\n[domain\/lagunica.local]\r\nad_domain = lagunica.local\r\nkrb5_realm = LAGUNICA.LOCAL\r\nrealmd_tags = manages-system joined-with-adcli\r\ncache_credentials = True\r\nid_provider = ad\r\nkrb5_store_password_if_offline = True\r\ndefault_shell = \/bin\/bash\r\nldap_id_mapping = True\r\nuse_fully_qualified_names = True\r\nfallback_homedir = \/home\/%u@%d\r\naccess_provider = simple\r\nsimple_allow_users = paco\r\nsimple_allow_groups = grupo6\r\n<\/pre>\n
\n
Otras modificaciones interesantes en la directiva de sssd.conf<\/span><\/h3>\n
\npara ello tenemos que poner<\/p>\nGrupos\r\n%grupo6@lagunica.local\r\nUsuarios\r\npaco.laguna.local\r\n<\/pre>\n
default_shell = \/bin\/sh\r\n<\/pre>\n
\n
\n <\/p>\nAUTOR\u00cdA DEL ART\u00cdCULO<\/span><\/h4>\n