GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo conectarse con Samba a Linux Active Directory

Si es un administrador de sistemas y se pregunta cómo agregar un escritorio y un servidor Linux a su Active Directory (AD) de Linux actual, ha venido al lugar correcto. Agregar nuevos clientes a AD simplifica la administración de usuarios entre varias máquinas cliente, especialmente cuando administra cientos de computadoras en su entorno.

En este tutorial, aprenderá cómo agregar sistemas Linux (Ubuntu 20.04, Linux Mint y Ubuntu Server) a un directorio activo Linux Samba. Al hacerlo, los usuarios de Samba Active Directory pueden iniciar sesión en una máquina cliente Linux con su propio directorio de inicio, shell predeterminado y privilegios de sudo root (si es necesario).

¿Listo? ¡Salta directamente!

Requisitos

Este tutorial será una demostración práctica. Si desea seguirnos, asegúrese de cumplir con los siguientes requisitos:

  • Máquina de escritorio Linux:este tutorial usa el escritorio Ubuntu 20.04, pero puede usar otras distribuciones como Linux Mint y Ubuntu Server.
  • Un usuario no root con sudo privilegios.
  • Un Active Directory (AD) de Samba totalmente funcional.

Configuración de un solucionador de DNS permanente

Antes de que pueda agregar clientes Linux a Samba Active Directory, debe asegurarse de que el nombre de dominio de Samba Active Directory sea accesible desde la máquina cliente. ¿Cómo? Estableciendo la dirección IP de Samba AD como el solucionador de DNS predeterminado para cada máquina cliente en el /etc/resolv.conf archivo de configuración.

1. Abre tu terminal y ejecuta el systemctl Comando a continuación para deshabilitar y detener el systemd-resolved Servicio. Al hacerlo, se asegura de que el cliente de Linux utilice el sistema de resolución de DNS estático y permanente.

El administrador define esta resolución de DNS permanente y no se reemplaza por ningún tercer servicio como systemd-resolved .

# disable and stop systemd-resolved service
sudo systemctl disable --now systemd-resolved

2. A continuación, ejecute el unlink comando a continuación para eliminar el archivo de enlace simbólico (/etc/resolv.conf ). Reemplazará este archivo en el siguiente paso. # remove symlink file /etc/resolv.conf sudo unlink /etc/resolv.conf

# remove symlink file /etc/resolv.conf
sudo unlink /etc/resolv.conf

3. Ahora, crea un nuevo archivo llamado /etc/resolv.conf usando su editor preferido y complete el archivo con la siguiente configuración.

La siguiente configuración establece los resolutores de DNS principales y alternativos.

# Samba AD as main DNS resolver
nameserver 172.16.1.10

# fall-back DNS resolver using Cloudflare
nameserver 1.1.1.1

# hostname lookup for domain example.lan
search example.lan

4. Ejecute el chattr Comandos a continuación para crear el archivo /etc/resolv.conf inmutable para garantizar que las máquinas cliente siempre usen Samba AD como el solucionador de DNS predeterminado. Estos comandos también evitan las sobrescrituras de otros servicios como NetworkManager.

# making the file `/etc/resolv.conf` immutable
sudo chattr +i /etc/resolv.conf

# remove immutable attribute
sudo chattr -i /etc/resolv.conf

5. Finalmente, ejecuta el ping Comandos a continuación para verificar la conexión a los nombres de dominio de Samba AD dc1.example.lanexample.lan .

# ping to AD server dc1.example.an and example.lan
ping -c3 dc1.example.lan
ping -c3 example.lan

Si su conexión es exitosa, recibirá un mensaje de respuesta del servidor AD y el dominio dc1.example.lanexample.lan se resolverá en la dirección IP de Samba AD.

Configuración de Chrony como cliente NTP

Una vez que haya configurado la resolución de DNS, ahora configurará Chrony para sincronizar la hora entre la máquina cliente y el servidor Samba AD. Si hay una diferencia de tiempo (cinco minutos como máximo) entre la máquina cliente y el servidor AD, el cliente no puede acceder a todos los recursos en el servidor AD.

1. Ejecute el siguiente comando para instalar chrony a sus clientes Linux.

# install chrony
sudo apt install chrony -y

2. Ahora, edite la configuración predeterminada de Chrony (/etc/chrony/chrony.conf ) en su editor preferido y agregue la siguiente configuración.

El bindcmdaddress El valor debe ser la dirección IP del cliente. El servicio Chrony se ejecutará en esta dirección IP. Mientras que el server La opción es donde agrega su nombre de dominio Samba AD como el servidor NTP.

# run Chrony as NTP client on the IP address
bindcmdaddress 172.16.1.85

# time synchronize to the Samba AD dc1.example.lan
server dc1.example.lan iburst

3. A continuación, ejecute el systemctl Comandos a continuación para reiniciar el chronyd servicio y verifique que el estado del servicio sea active (running) . # restart chronyd service sudo systemctl restart chronyd # verify status chronyd service sudo systemctl status chronyd

# restart chronyd service
sudo systemctl restart chronyd

# verify status chronyd service
sudo systemctl status chronyd

Como puede ver a continuación, el chronyd el servicio es active (running)enabled . El cliente Chrony NTP ahora se iniciará automáticamente al iniciar el sistema.

4. Finalmente, ejecute el siguiente comando para verificar que el servicio Chrony en la máquina cliente esté conectado al servidor Samba AD NTP. chronyc tracking

chronyc tracking

Como puede ver a continuación, el servicio Chrony en el cliente Linux está conectado al servidor Samba AD NTP con la dirección IP 172.16.1.10 .

Unir clientes Linux a Samba Active Directory

Ya configuró Chrony en el cliente de Linux. Pero, ¿cómo agrega esta máquina cliente a Samba Active Directory? Comience instalando y configurando el realmdsssd services para agregar clientes Linux al servidor Samba AD.

1. Ejecute el apt Comando a continuación para actualizar el índice de su paquete. Este comando asegura que está instalando la última versión de los paquetes del repositorio.

sudo apt update

A continuación, ejecute el siguiente comando para instalar realmdsssd servicios con todos los paquetes adicionales necesarios. El realmd El servicio se usa con servicios Linux subyacentes, como sssd , para unirse a Samba Active Directory.

sudo apt install -y realmd sssd sssd-tools samba-common krb5-user packagekit samba-common-bin samba-libs adcli

Ingrese el dominio predeterminado (en mayúsculas) para Samba Active Directory, como se muestra a continuación. Utilizará este dominio predeterminado para la autenticación de Kerberos.

En este ejemplo, el dominio de dominio predeterminado para Samba AD es EXAMPLE.LAN .

3. Crea un nuevo archivo /etc/realmd.conf usando su editor preferido y agregue la siguiente configuración. La siguiente configuración realiza lo siguiente:

  • Maneja los comportamientos del dominio y los usuarios de Samba AD
  • Especifica la conexión del cliente al servidor AD
  • Determina si se utiliza o no la instalación automática de servicios adicionales.
  • Configuración específica para el example.lan dominio AD.
[users]
# define Samba AD users behavior
# define default home directory and shell for Samba AD users
default-home = /home/%U
default-shell = /bin/bash

[active-directory]
# define realmd connection to the Samba AD
# you can use `sssd` or `winbind` for realmd to join Samba AD
# os-name can used as an identifier for client
default-client = sssd
os-name = Linux Ubuntu and Mint Desktop

[service]
# disable automati install for additional realmd service
automatic-install = no

[example.lan]
# define behavior of Samba AD `example.lan`
# disable fully-qualified-names so you can use a username to identify Samba users
# automatic-id-mapping to yes will automatically generate UID and GID numbers
# user-principal to yes will automatically create UserPrincipalName for the client machine
# manage-system to yes to enabled realmd to manage client machine
fully-qualified-names = no
automatic-id-mapping = yes
user-principal = yes
manage-system = yes

Ejecute el kinit comando a continuación para autenticar la conexión del dominio (EXAMPLE.LAN ) al servicio Kerberos usando el usuario predeterminado (administrator ).

Ingrese la contraseña para el administrator usuario de Samba AD cuando se le solicite, como se muestra a continuación.

La adición de nuevos clientes a Samba AD requiere el uso de administrator usuario.

# authenticate to Kerberos server on EXAMPLE.LAN using administrator
sudo kinit [email protected]

# verify authentication and print detailed Kerberos tickets for administrator user
sudo klist

5. Ahora, ejecuta el realm join comando a continuación para agregar clientes Linux a Samba AD (example.lan ). Reemplazar UbuntuMintDesktop con un nombre principal de usuario único (UPN). Cada cliente/máquina debe tener un UPN diferente.

# joining/adding Linux Ubuntu/Mint to Samba AD example.lan
# --verbose to get full logs from the process
# --user-principal will automatically set the UserPrincipalName for this machine
# --unattended will run the realm command without prompting for a password prompt,
# because you've already authenticated through the Kerberos ticket
sudo realm join --verbose example.lan --user-principal=UbuntuMintDesktop/[email protected] --unattended

Obtendrá la Máquina inscrita con éxito en el reino mensaje cuando se completa el proceso. En este punto, ha agregado con éxito su cliente Linux a Samba Active Directory.

6. A continuación, abra el /etc/sssd/sssd.conf archivo de configuración en su editor preferido.

Agregue la siguiente línea, que cambia el control de acceso del objeto de política de grupo (GPO) predeterminado a permissive y establezca el valor de access_providerad . El ad el valor indica la autenticación predeterminada para sssd el servicio es un Active Directory.

Durante este escrito, tanto Ubuntu 20.04 Desktop como Server no permitirán que los usuarios de AD inicien sesión cuando ad_gpo_access_control está establecido en enforcing (el valor predeterminado). Entonces cambias el  ad_gpo_access_control valor a permissive .

Pero en Linux Mint, aún puede iniciar sesión con usuarios de AD, incluso cuando ad_gpo_access_control está en el enforcing modo.

# change default GPO access control to permissive
ad_gpo_access_control = permissive

7. Ejecute el pam-auth-update comando a continuación para modificar la configuración de PAM. Este comando habilita el módulo PAM (pam_mkhomedir.so ). Habilitar el módulo PAM crea automáticamente un directorio de inicio para los usuarios de Samba AD (solo cuando el directorio de inicio no está disponible).

# modify PAM configuration
pam-auth-update

Seleccione Crear un directorio de inicio en el inicio de sesión opción en la pantalla del terminal y seleccione Aceptar para confirmar.

Presiona la tecla ESPACIO para habilitar una opción y presiona la tecla TAB para mover el menú del cursor.

8. Ejecute el realm list Comando a continuación para verificar su conexión a Samba Active Directory.

# Checking connected AD
realm list

Si su conexión es exitosa, recibirá una conexión AD detallada, como se muestra a continuación.

A continuación, puede ver que la máquina de escritorio Ubuntu/Mint está conectada a Samba Active Directory (example.lan ) como (kerberos-member ).

9. Ahora, ejecuta el id Comando a continuación para verificar el usuario de Samba AD.

# checking Samba AD user `alice`
id alice

Si su instalación se realiza correctamente, recibirá uid al azar y gid para el usuario de Samba alice . En este ejemplo, puede ver al usuario alice se crea y está disponible en Samba AD.

10. Además, ejecute los siguientes comandos para configurar su editor de texto predeterminado y abrir (visudo ) el /etc/sudoers archivo en su editor predeterminado. Siempre puede cambiar su editor de texto preferido, pero el editor predeterminado es nano para esta demostración.

# Sets default editor to nano
export EDITOR=nano
# Opens the /etc/sudoers file in the default editor
visudo

Agregue su usuario de Samba AD al sudoers archivo usando el siguiente formato, guarde los cambios y cierre el editor. Si lo hace, le permite habilitar sudo privilegios para el usuario de Samba (si necesita que el usuario ejecute sudo).

# add Samba user `alice` to sudoers
alice ALL=(ALL:ALL) ALL

11. Finalmente, ejecute el siguiente comando en el escritorio de Ubuntu para reboot el sistema para aplicar las nuevas configuraciones.

Pero para Linux Mint y un servidor Ubuntu, aún deberá agregar alguna configuración adicional, que se trata en la siguiente sección.

sudo reboot

Configuración de LightDM para Samba Active Directory

La configuración predeterminada LightDM para el proceso de inicio de sesión manual con nombre de usuario y contraseña está deshabilitada en el escritorio de Linux Mint. Cambiará la configuración LightDM para habilitar el proceso de inicio de sesión manual para que los usuarios de Samba AD puedan iniciar sesión en la máquina Mint Desktop.

Abra LightDM (/etc/lightdm/lightdm.conf ) archivo de configuración en su editor preferido y complete la siguiente configuración bajo el [Seat:*] sección.

El greeter-show-manual-login=true opción a continuación habilita el proceso de inicio de sesión manual en LightDM, mientras que allow-guest=false La opción deshabilita el inicio de sesión para el usuario invitado.

# enable manual login
greeter-show-manual-login=true

# disable guest login
allow-guest=false

Ahora, ejecute el siguiente comando para reiniciar su escritorio Linux Mint para aplicar nuevas configuraciones.

sudo reboot

Configuración de la autenticación Kerberos para el servicio SSH

Debe habilitar la autenticación Kerberos en el servicio SSH en el entorno del servidor. Al hacerlo, el usuario de AD puede iniciar sesión en el servidor. ¿Cómo? Editando el archivo de configuración de SSH.

Abra el SSH (/etc/ssh/sshd_config ) archivo de configuración en su editor preferido.

Descomente las siguientes opciones y establezca sus valores en yes :

  • KerberosAuthentication – Habilita la autenticación Kerberos.
  • KerberosTicketCleanup – Destruye automáticamente los tickets de Kerberos al cerrar la sesión

Ahora, ejecute el siguiente comando para reiniciar su servidor y aplicar nuevas configuraciones.

sudo reboot

Iniciar sesión en máquinas Linux usando usuarios de Samba AD

Ahora ha completado y agregado clientes Linux a Samba AD. Pero, ¿cómo puede verificar que los usuarios de Samba AD puedan iniciar sesión en esos clientes de Linux? Puede especificar el usuario y la contraseña en la pantalla de inicio de sesión de Display Manager en los clientes de Linux Desktop. Mientras que para el servidor Ubuntu, puede conectarse a través del protocolo SSH seguro.

Iniciar sesión en el servidor Ubuntu, Mint y Ubuntu se ve diferente entre sí. Pero no se preocupe, verá cómo iniciar sesión en cada sistema operativo con usuarios de Samba AD en esta demostración.

Iniciar sesión en Linux Ubuntu Desktop

Con Linux Ubuntu Desktop, iniciar sesión con los usuarios de Samba AD es igual a como inicia sesión normalmente en una cuenta de usuario.

1. Inicie su cliente de escritorio de Ubuntu, haga clic en ¿No está en la lista? opción en la pantalla de inicio de sesión de Ubuntu GDM para iniciar sesión con un usuario diferente.

2. Luego, ingrese su usuario de Samba AD en el [email protected] formato. Este ejemplo utiliza el usuario de Samba AD alice(example.lan) , Como se muestra abajo.

3. Ingrese la contraseña de su usuario de Samba AD (alice) y presione ENTER para iniciar sesión.

Después de iniciar sesión, verá el escritorio de Ubuntu predeterminado como se muestra en la siguiente captura de pantalla, donde el usuario de Samba AD alice ha iniciado sesión correctamente.

Puede ver a continuación que el módulo PAM (pam_mkhomedir.so. ) creó automáticamente el directorio de inicio del usuario. Mientras que los privilegios de sudo root se configuran a través del archivo sudoers .

Iniciar sesión en Linux Mint Desktop

Para el escritorio de Linux Mint, el inicio de sesión se ve un poco diferente a cómo inicia sesión en un escritorio de Ubuntu,

Haga clic en el botón Iniciar sesión, ingrese su usuario y contraseña, como se muestra a continuación, luego presione ENTER para iniciar sesión.

Ahora verá el Linux Mint Desktop para su usuario de Samba AD como el que se muestra a continuación.

Iniciar sesión en el servidor Ubuntu

A diferencia de los dos primeros sistemas operativos, iniciará sesión en un servidor Ubuntu a través del entorno de línea de comandos utilizando el ssh comando.

Ejecute el ssh comando a continuación desde otra máquina para conectarse al servidor usando el usuario Samba AD siguiendo el [email protected]_ip formato, como se muestra a continuación.

# connect to SSH using AD user
ssh [email protected]

Escribe yes para agregar la identidad de la huella digital del servidor e ingrese la contraseña para su usuario de Samba AD en el servidor de Ubuntu.

Como puede ver a continuación, el directorio de inicio del usuario se crea automáticamente y el shell predeterminado para los usuarios de Samba AD es Bash.

Conclusión

A lo largo de este tutorial, aprendió cómo agregar clientes Linux (escritorio y servidor) a Samba Active Directory (AD) utilizando el servicio SSSD y Realm. Además, aprendió a habilitar la autenticación Kerberos en el servicio SSH para un servidor Linux.

Ahora, ¿cómo aprovecharía la funcionalidad de Samba Active Directory? ¿Quizás intente agregar otro servidor como controlador de dominio (DC) para unirse al Samba AD actual? Esta configuración proporciona soporte de replicación, redundancia y equilibrio de carga en su AD. Como resultado, puede agregar otro grupo de clientes a Samba AD.


Linux
  1. Cómo cifrar el directorio con EncFS en Debian 9 Stretch Linux

  2. Cómo crear un usuario con un directorio de inicio personalizado en Linux

  3. Cómo cambiar el nombre de un directorio en Linux

  4. Linux:¿cómo combinar el árbol con el tamaño del directorio?

  5. Cómo gzip un directorio en Linux

Cómo conectar Kindle Fire HD con Ubuntu Linux

Cómo leer un archivo con espacios en Linux

Cómo unir un sistema Linux a un dominio de Active Directory

Cómo asegurar servidores Linux con SE Linux

Cómo copiar un directorio en Linux

Cómo realizar una instalación de Samba Active Directory en Linux