GNU/Linux >> Tutoriales Linux >  >> Linux

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

¿Necesita una administración de dominio centralizada para sus redes pero no está interesado en usar un servidor de Windows y pagar el costo adicional de la licencia? Samba Active Directory es una de las mejores alternativas gratuitas que puede probar en Linux.

Samba es una solución de código abierto conocida principalmente por su servidor de archivos de red y servicios de impresión. Pero desde la versión 4.0, Samba también le permite aprovisionar la función del servidor de Active Directory.

Este tutorial le enseñará cómo instalar y configurar Samba Active Directory en Ubuntu 20.04. ¡Prepárate y lánzate de inmediato!

Requisitos

Esta publicación es una demostración práctica. Si desea seguir adelante, necesitará los siguientes requisitos.

  • Un servidor Ubuntu 20.04. A lo largo de este tutorial, el nombre del servidor será dc1 , el dominio será example.com y la dirección IP es 172.16.1.10 .
  • Una cuenta de usuario con privilegios sudo.
  • Una computadora con Windows 10 en la misma red que el servidor Ubuntu.

Configurando el nombre de host del servidor

El primer paso es configurar la identidad del servidor en la red. Para hacerlo, deberá asignar el nombre de host del servidor y el nombre de dominio completo (FQDN) siguiendo los pasos a continuación.

1. Primero, inicie sesión en su servidor Ubuntu y abra la sesión de terminal.

2. A continuación, ejecute el hostnamectl Comando a continuación para cambiar el nombre de host de su servidor. El siguiente comando cambia el nombre de host a dc1 .

# set up the hostname
hostnamectl set-hostname dc1

3. Ahora, abre el /etc/hosts archivo para editar con su editor preferido, como nano . Dentro del archivo, agregue una entrada que especifique la dirección IP del servidor. , FQDN y nombre de host en este formato:server-IP hostname.domain.com hostname .

Para este ejemplo, la entrada del archivo de hosts es:# setup FQDN dc1.example.lan 172.16.1.10 dc1.example.lan dc1

# setup FQDN dc1.example.lan
172.16.1.10 dc1.example.lan dc1

Después de agregar la nueva entrada, guarde y salga del archivo.

4. Finalmente, ejecute el siguiente comando para verificar el FQDN del servidor Samba. # verify FQDN hostname -f # verify FQDN is resolved to the Samba IP address ping -c3 dc1.example.lan

# verify FQDN
hostname -f

# verify FQDN is resolved to the Samba IP address
ping -c3 dc1.example.lan

Como puede ver a continuación, el FQDN del servidor Samba es dc1.example.lan , que se resuelve en 172.16.1.10 .

Deshabilitar el solucionador de DNS

El systemd-resolved El servicio controla la configuración de DNS en el servidor Ubuntu, que no es compatible con Samba Active Directory. Para configurar Samba Active Directory, primero deberá deshabilitar el systemd-resolved servicio y reemplace el /etc/resolv.conf archivo de configuración.

  1. Ejecute los siguientes comandos para desactivar y detener el systemd-resolved servicio a la vez y elimine el enlace simbólico al archivo /etc/resolv.conf , en orden.
# stop and disable systemd-resolved service
sudo systemctl disable --now systemd-resolved

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

2. A continuación, cree un nuevo /etc/resolv.conf archivo.

# create a new /etc/resolv.conf file
touch /etc/resolv.conf

3. Abra el /etc/resolv.conf usando su editor preferido y defina la resolución de DNS usando la configuración a continuación. Asegúrese de poner la dirección IP del servidor Samba en la parte superior de la línea. Guarde el archivo y salga después de editarlo.

# Samba server IP address
nameserver 172.16.1.10

# fallback resolver
nameserver 1.1.1.1

# main domain for Samba
search example.lan

4. Por último, ejecute el siguiente comando para crear el archivo /etc/resolv.conf archivo inmutable. Este paso garantiza que la resolución no cambie sin saberlo por ningún motivo.

# add attribute immutable to the file /etc/resolv.conf
sudo chattr +i /etc/resolv.conf

Instalando Samba

Después de configurar el FQDN y configurar la resolución de nombres, instalará Samba en su sistema y habilitará el servicio Samba Active Directory. Al momento de escribir este artículo, el repositorio oficial de Ubuntu ofrece Samba v4.13.

1. Ejecute el apt Comando a continuación para actualizar el índice de paquetes de su servidor Ubuntu.

sudo apt update

2. Ahora, ejecute el siguiente comando para instalar Samba con todos los paquetes y dependencias.

sudo apt install -y acl attr samba samba-dsdb-modules samba-vfs-modules smbclient winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user dnsutils chrony net-tools

3. Escriba el nombre de dominio del reino predeterminado en mayúsculas. En este ejemplo, el FQDN es dc1.example.lan , por lo que el nombre de dominio predeterminado del reino debería ser EXAMPLE.LAN . Resalte Aceptar y presione Entrar.

4. En el siguiente mensaje, escriba el FQDN del servidor. Este paso define el servidor Kerberos predeterminado. Resalte Aceptar y presione Entrar.

5. A continuación, escriba de nuevo el FQDN del servidor para especificar el servidor administrativo de Kerberos. Resalte Vale, y presione Entrar para completar la configuración inicial de Samba.

6. Después de la instalación de Samba, ejecute el siguiente comando para detener y deshabilitar los servicios que el servidor de Active Directory de Samba no requiere smbdnmbdwinbind . El servidor solo necesita el samba-ac-dc para servir como Active Directory y controlador de dominio.

# stop and disable samba services - smbd, nmbd, and winbind
sudo systemctl disable --now smbd nmbd winbind

7. Por último, ejecute los siguientes comandos para activar y habilitar el samba-ad-dc Servicio.

# activate samba-ad-dc service
sudo systemctl unmask samba-ad-dc

# enable samba-ad-dc service
sudo systemctl enable samba-ad-dc

Configurando el directorio activo de Samba

Ahora ha instalado Samba en su sistema. Hay varios pasos más para configurar Samba Active Directory. La instalación de Samba vino con una herramienta de línea de comandos llamada samba-tool para aprovisionar el directorio activo de Samba.

1. Primero, cree una copia de seguridad del /etc/samba/smb.conf archivo por si acaso. El proceso de aprovisionamiento reemplazará este archivo.

# backup default Samba configuration file
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig

2. Ahora, ejecuta el samba-tool Comando a continuación para comenzar a aprovisionar Samba Active Directory.

# provisioning Samba Active Directory
sudo samba-tool domain provision

3. En el Reino mensaje, acepte el valor predeterminado y presione Entrar.

4. En el Dominio indicador, presione Entrar nuevamente para aceptar el valor predeterminado.

5. En el rol del servidor mensaje, deje el valor predeterminado y presione Entrar.

6. En el backend de DNS solicitud, deje el valor por defecto (SAMBA_INTERNAL ) y presione Entrar.

7. A continuación, escriba la dirección IP del reenviador de DNS adicional. . Este ejemplo agregará el DNS de Cloudflare 1.1.1.1 como el reenviador de DNS. Esta opción solo está disponible cuando usas SAMBA_INTERNAL Servidor DNS.

8. Escriba su contraseña de administrador de Active Directory de Samba y presione Entrar.

El aprovisionamiento crea automáticamente el nuevo archivo de configuración de Samba (/etc/samba/smb.conf ) y la configuración de Kerberos (/var/lib/samba/private/krb5.conf ) expediente.

Después del aprovisionamiento de Samba Active Directory, recibirá un resultado similar al de la siguiente captura de pantalla.

9. Ahora, ejecute los siguientes comandos para hacer una copia de seguridad de la configuración predeterminada de Kerberos y reemplácela con el archivo /var/lib/samba/private/krb5.conf .

# rename default Kerberos configuration to krb5.conf.orig
sudo mv /etc/krb5.conf /etc/krb5.conf.orig

# copy the Kerberos configuration generated by the samba-tool
sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

10. Finalmente, ejecuta el systemctl Comandos a continuación para iniciar el servicio Samba Active Directory samba-ad-dc y verifica que el estado del servicio sea active (running) .

# start samba-ad-dc service
sudo systemctl start samba-ad-dc

# verify samba-ad-dc service
sudo systemctl status samba-ad-dc

El samba-ad-dc el servicio es active (running) y enabled , como puede ver abajo. El demonio Samba AD ahora se iniciará automáticamente al iniciar el sistema.

Configuración de la sincronización horaria

Samba Active Directory depende del protocolo Kerberos, y el protocolo Kerberos requiere que los tiempos del servidor AD y de la estación de trabajo estén sincronizados. Para garantizar una sincronización horaria adecuada, deberá configurar un Network Time Protocol (NTP). servidor en Samba, también.

Los beneficios de la sincronización de tiempo de AD incluyen ataque de repetición prevención y resolución de conflictos de replicación de AD.

1. Ejecute los siguientes comandos para cambiar el permiso y la propiedad predeterminados del directorio /var/lib/samba/ntp_signd/ntp_signed . El usuario/grupo _chrony debe tener permiso de lectura para el ntp_signed directorio.

# allow group _chrony to read the directory ntp_signd
sudo chown root:_chrony /var/lib/samba/ntp_signd/

# change the permission of the directory ntp_signd
sudo chmod 750 /var/lib/samba/ntp_signd/

2. Ahora, abra el archivo de configuración /etc/chrony/chrony.conf en un editor de texto y agregue la siguiente configuración al final del archivo. Esta configuración habilita el servidor chrony NTP y apunta la ubicación del conector NTP a /var/lib/samba/ntp_signd . Guarde el archivo de configuración y salga del editor.

# bind the chrony service to IP address of the Samba AD
bindcmdaddress 172.16.1.10

# allow clients on the network to connect to the Chrony NTP server
allow 172.16.1.0/24

# specify the ntpsigndsocket directory for the Samba AD
ntpsigndsocket /var/lib/samba/ntp_signd

3. A continuación, ejecute los siguientes comandos para reiniciar y verificar chronyd servicio en el servidor Samba AD.

# restart chronyd service
sudo systemctl restart chronyd

# verify chronyd service status
sudo systemctl status chronyd

Como puede ver a continuación, el chronyd el servicio es enabledactive (running) . En la parte inferior del chronyd mensaje de registro, verá el mensaje MS-SNTP authentication is enabled , lo que confirma que la extensión de autenticación NTP es funcional.

Verificando el directorio activo de Samba

Después de la instalación, debe verificar la configuración de Samba para asegurarse de que lo que ha hecho hasta ahora funciona. Puede hacerlo verificando la configuración DNS de Samba, la carpeta compartida predeterminada (servidor de archivos) y probando la autenticación Kerberos.

1. Ejecute el host Comandos a continuación para verificar el nombre de dominio de AD example.landc1.example.lan .

# verify domain example.lan
host -t A example.lan

# verify domain dc1.example.lan
host -t A dc1.example.lan

Y el resultado debería confirmar que ambos registros de host apuntan a la dirección IP del servidor Samba 172.16.1.10 .

2. A continuación, verifica que _kerberos y _ldap El registro de servicio apunta al FQDN de su servidor Samba Active Directory.

# verify SRV record for _kerberos
host -t SRV _kerberos._udp.example.lan

# verify SRV record for _ldap
host -t SRV _ldap._tcp.example.lan

En este ejemplo, el siguiente resultado confirma que tanto SRV los registros se resuelven en dc1.example.lan .

3. A continuación, ejecute el smbclient Comando a continuación para verificar los recursos predeterminados disponibles en Samba Active Directory.

# checking available resources on Samba AD
smbclient -L example.lan -N

Debería ver que la carpeta compartida predeterminada en Samba Active Directory es sysvolnetlogon y el servicio predeterminado disponible es IPC$ .

4. Por último, ejecute el siguiente kinit comandos para autenticarse en el servidor Kerberos usando el usuario Administrator y verifique los tickets de Kerberos almacenados en caché en su sistema.

Nota:la parte del dominio debe estar en mayúsculas e.

# authenticate to Kerberos using administrator
kinit [email protected]

# verify list cached Kerberos tickets
klist

Recibirá un resultado similar a la captura de pantalla a continuación. El ticket de administrador de Kerberos se almacena en el archivo /tmp/krb5cc_0 y caducará en 41 días.

Creando un Nuevo Usuario de Directorio Activo de Samba

En este punto, ha terminado de configurar Samba Active Directory. Pero como saben, todavía no hay usuarios. Ahora es el momento de crear su primera cuenta de usuario de Samba AD usando el samba-tool comando.

1. Ejecute el siguiente comando para crear un nuevo usuario llamado alice , cuya contraseña es alice_password88 .

# create a new user in Samba
sudo samba-tool user create alice alice_password88

2. A continuación, ejecute el samba-tool Comando a continuación para verificar los usuarios disponibles en Samba.

# checking users on Samba
sudo samba-tool user list

Como puede ver a continuación, el nuevo usuario alice está disponible en el directorio Samba Active.

Unirse e iniciar sesión en el dominio de Active Directory de Samba

Ahora que ha creado un nuevo usuario, lo que queda es unir una estación de trabajo al dominio de Active Directory. Luego, puede iniciar sesión en la estación de trabajo con las credenciales de usuario de Samba AD.

1. Inicie sesión en su PC con Windows y abra PowerShell como administrador.

2. Ejecute el siguiente comando para enumerar los adaptadores de Ethernet disponibles en su PC con Windows.

# checking available interface using Powershell command
Get-NetAdapter -Name "*"

Es posible que vea diferentes salidas en su pantalla de PowerShell. Este ejemplo muestra una interfaz de red llamada Ethernet Instance 0 2 .

3. Ejecute el siguiente comando para cambiar el servidor DNS del adaptador a la dirección IP de Samba Active Directory con respaldo adicional Cloudflare DNS 1.1.1.1 . Hacer este paso asegura que su estación de trabajo use el servidor Samba AD para la resolución de nombres.

# setup DNS resolver using Powershell
Set-DNSClientServerAddress "Ethernet Instance 0 2" –ServerAddresses ("172.16.1.10","1.1.1.1")

4. Ejecute el siguiente comando para verificar su resolución de DNS y asegúrese de que su computadora use el servidor Samba AD como la resolución de DNS predeterminada.

# verify DNS resolver
Get-DnsClientServerAddress

Recibirá un resultado similar al de la siguiente captura de pantalla.

5. Ahora, haga ping al nombre de host y al dominio del servidor.

# ping the AD domain dc1.example.lan
ping dc1.example.lan

# ping the AD domain example.lan
ping example.lan

Debería ver la respuesta del servidor AD como se muestra a continuación. Confirme que el resultado apunta a la dirección IP del servidor Samba AD.

6. A continuación, ejecute el siguiente comando para unir la estación de trabajo al dominio de Samba Active Directory.

# add Windows 10 to Active Directory
Add-Computer -DomainName "example.lan" -Restart

7. Escriba el Samba AD administrator nombre de usuario y contraseña, haga clic en Aceptar. La computadora se reiniciará automáticamente como parte del proceso de unión al dominio.

8. Después de reiniciar, haga clic en Other users en la pantalla de inicio de sesión. Escriba el nombre de usuario y la contraseña de Active Directory del usuario de Samba AD que creó anteriormente ([email protected] ), y presione Entrar para iniciar sesión.

9. Después de un inicio de sesión exitoso, abra una ventana de PowerShell y ejecute uno o ambos comandos a continuación para verificar el nombre de usuario actualmente conectado.

whoami
query user

Conclusión

El concepto y la aplicación de Active Directory no son exclusivos del ecosistema de Windows. Ha aprendido en este tutorial que puede disfrutar de los mismos beneficios de Active Directory en Linux implementando Samba Active Directory.

A lo largo de este tutorial, aprendió cómo instalar y configurar Samba Active Directory en Ubuntu 20.04. También aprendió a crear nuevos usuarios y unir una estación de trabajo de Windows al dominio de Samba Active Directory.

¿Qué sigue para ti? ¿Qué tal integrar Samba al servicio CUPS para soporte de impresión o configurar un servidor de archivos Samba Share? Verá, ¡hay más en Samba que Active Directory!


Linux
  1. Cómo instalar Python en Linux

  2. Cómo instalar Java en Linux

  3. Cómo instalar FFmpeg en Linux

  4. Cómo instalar TeamViewer 15 en Linux

  5. Cómo instalar PIP en Linux

Cómo instalar Bashtop en Linux

Cómo instalar Helm en Linux

Cómo instalar PuTTY en Linux

Cómo instalar Diskonaut en Linux

Cómo realizar una instalación segura de Redis en Linux

Cómo conectarse con Samba a Linux Active Directory