Para admitir True SSO en escritorios Ubuntu, integre la máquina virtual base con un dominio de Active Directory (AD) mediante las soluciones Samba y Winbind.
Utilice el siguiente procedimiento para integrar una máquina virtual Ubuntu con un dominio de AD.
Algunos ejemplos incluidos en el procedimiento utilizan valores de marcador de posición para representar entidades en su configuración de red, como el nombre de host de su escritorio Ubuntu. Reemplace los valores de marcador de posición con información específica de su configuración, tal y como se describe en la siguiente tabla.
Valor del marcador de posición |
Descripción |
DIRECCIÓN_IP_dns |
Dirección IP del servidor de nombres DNS |
midominio.com |
Nombre DNS de su dominio de AD |
MIDOMINIO.COM |
Nombre DNS de su dominio de AD, en mayúsculas |
mihost |
Nombre del host de su máquina virtual Ubuntu |
MIDOMINIO |
Nombre DNS del grupo de trabajo o el dominio NT que incluye su servidor Samba, en mayúsculas |
nombredehost-ads |
Nombre de host del servidor de AD |
usuario-admin |
Nombre de usuario del administrador del dominio de AD |
Requisitos previos
Compruebe que:
- El DNS puede resolver el servidor de AD en la máquina virtual Ubuntu.
- El protocolo de tiempo de redes (NTP) está configurado en la máquina virtual Ubuntu.
Procedimiento
- En la máquina virtual Ubuntu, instale los paquetes samba y winbind.
sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
- Configure la configuración de autenticación de Kerberos.
- Si la ventana de la configuración de autenticación de Kerberos no aparece en el sistema, ejecute el siguiente comando para mostrarla.
dpkg-reconfigure krb5-config
- En Reino predeterminado de la versión 5 de Kerberos, introduzca el nombre de DNS de su dominio de AD en mayúsculas.
Por ejemplo, si el nombre del dominio de AD es
midominio.com, introduzca
MIDOMINIO.COM.
- En Servidores de Kerberos para su reino, introduzca el nombre de host de su servidor AD (representado como nombrehost_ads en los ejemplos de este procedimiento).
- En Servidor administrativo para su reino de Kerberos, introduzca de nuevo el nombre de host de su servidor AD.
- Actualice la configuración PAM.
- Abra la página de configuración de PAM.
- Seleccione Crear el directorio del usuario (home) al iniciar sesión y, a continuación, seleccione Aceptar.
- Edite el archivo de configuración /etc/nsswitch.conf, tal como se muestra en el ejemplo siguiente.
passwd: compat winbind
group: compat winbind
shadow: compat
gshadow: files
- (opcional) Si el sistema detecta automáticamente el servidor DNS correcto, omita este paso y continúe con el siguiente paso. Si el sistema no detecta el servidor DNS correcto, complete este paso para establecer el servidor DNS manualmente.
Para asegurarse de que el archivo generado automáticamente
resolv.conf hace referencia a su dominio de AD como un dominio de búsqueda, edite la opción NetworkManager con la conexión de su sistema. Los siguientes subpasos proporcionan las instrucciones de ejemplo para un sistema Ubuntu 20.04.
- Abra el panel de control de NetworkManager y desplácese a Ajustes de IPv4 de la conexión de su sistema. En Método, seleccione Solo direcciones automáticas (DHCP). En Servidores DNS, introduzca la dirección IP de su servidor DNS (representado como DIRECCIÓN_IP_dns en los ejemplos de este procedimiento). A continuación, haga clic en Guardar.
- Edite el archivo /etc/dhcp/dhclient.conf, tal y como se muestra en el siguiente ejemplo.
supersede domain-name "mydomain.com";
prepend domain-name-servers dns_IP_ADDRESS;
- Edite el archivo /etc/systemd/resolved.conf, tal y como se muestra en el siguiente ejemplo.
DNS=dns_IP_ADDRESS
Domains="mydomain.com"
Nota: Cuando se crea un nuevo escritorio virtual de clones instantáneos, se añade un nuevo adaptador de red virtual. Cualquier ajuste del adaptador de red (por ejemplo, el servidor DNS) que aparezca en la plantilla del escritorio virtual, se perderá cuando se añade el nuevo adaptador de red al escritorio virtual de clones instantáneos. Para evitar que se pierda la configuración del servidor DNS al añadir el nuevo adaptador de red a un escritorio virtual clonado, deberá especificar un servidor DNS en su máquina virtual Ubuntu.
- Especifique el servidor DNS editando el archivo de configuración /etc/resolv.conf, tal y como se muestra en el ejemplo siguiente.
nameserver dns_IP_ADDRESS
search mydomain.com
- Reinicie la máquina virtual y vuelva a iniciar sesión.
- Edite el archivo de configuración /etc/hosts, tal y como se muestra en el ejemplo siguiente.
127.0.0.1 localhost
127.0.1.1 myhost.mydomain.com myhost
- Edite el archivo de configuración /etc/samba/smb.conf, tal y como se muestra en el siguiente ejemplo.
[global]
security = ads
realm = MYDOMAIN.COM
workgroup = MYDOMAIN
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
kerberos method = secrets and keytab
winbind refresh tickets = true
- Reinicie el servicio smbd.
sudo systemctl restart smbd.service
- Edite el archivo de configuración /etc/krb5.conf de manera que tenga un contenido similar al del ejemplo siguiente.
[libdefaults]
default_realm = MYDOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc = true
[realms]
MYDOMAIN.COM = {
kdc = ads-hostname
admin_server = ads-hostname
}
[domain_realm]
.mydomain.com = MYDOMAIN.COM
mydomain.com = MYDOMAIN.COM
- Una la máquina virtual Ubuntu al dominio de AD.
- Inicie un ticket de Kerberos.
sudo kinit admin-user
Cuando se le solicite, introduzca su contraseña de administrador.
- Compruebe que el ticket se ha creado correctamente.
sudo klist
Este comando le permitirá consultar información sobre el ticket, incluida la fecha de inicio válida y la fecha de expiración.
- Cree un archivo keytab de Kerberos.
sudo net ads keytab create -U admin-user
- Únase al dominio de AD.
sudo net ads join -U admin-user
- Reinicie y verifique el servicio Winbind.
- Reinicie el servicio Winbind.
sudo systemctl restart winbind.service
- Para verificar el servicio Winbind, ejecute los siguientes comandos y compruebe que devuelven el resultado correcto.
- wbinfo -u
- wbinfo -g
- getend passwd
- getend group
- Reinicie la máquina virtual y vuelva a iniciar sesión.