GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo configurar el controlador de dominio de Linux usando Samba en Ubuntu

SAMBA es una implementación de código abierto del protocolo de intercambio de archivos SMB que proporciona servicios de archivo e impresión a clientes SMB/CIFS. Ayuda a conectar con éxito su sistema Ubuntu con clientes de Windows, proporcionando e integrándose con servicios comunes a los entornos de Windows. Estos servicios ayudan a compartir datos e información sobre las computadoras y los usuarios involucrados en la red, y pueden clasificarse en tres categorías principales en términos de funcionalidad

Servicios para compartir archivos e impresoras: Utiliza el protocolo Bloque de mensajes del servidor (SMB) para facilitar el uso compartido de archivos, carpetas, volúmenes e impresoras en toda la red.

Servicios de directorio: Comparte información vital sobre las computadoras y los usuarios de la red con la ayuda del Protocolo ligero de acceso a directorios (LDAP) y Microsoft Active Directory.

Autenticación y acceso: Establece la identidad de una computadora o usuario de la red y determina la información a la que la computadora o el usuario está autorizado a acceder mediante permisos de archivo, políticas de grupo y el servicio de autenticación Kerberos.

En este tutorial, aprendemos cómo configurar un controlador de dominio de Linux usando samba en Ubuntu 16.04.

Samba como AD DC requiere al menos la versión 4.0.0. Recomiendo encarecidamente utilizar la última versión estable de Samba, ya que contendrá correcciones de errores de versiones anteriores y una gran compatibilidad mejorada con Microsoft Active Directory y funciones adicionales.

La principal ventaja de usar esto es que no necesitamos instalar Kerberos KDC por separado. Samba incluye un KDC compatible con AD y envía su propia implementación LDAP para back-ends de AD.

Requisitos previos

  • Asegúrese de que su servidor esté configurado para usar una dirección IP estática. DHCP puede causar problemas si cambia la dirección.
  • Actualice su resolv.conf con servidores de nombres adecuados.
  • Actualice su archivo /etc/hosts con las entradas adecuadas. Su nombre de host debe resolverse en la IP del servidor.

Comencemos con los requisitos previos. Te mostraré cómo modifiqué la configuración de mi servidor para satisfacer nuestras condiciones previas.

1) Debe configurar su interfaz de red para IP estática. Edite el archivo /etc/network/interfaces con la IP de su servidor "96.126.107.141", el nombre del controlador de dominio "nodenixbox.com" y otros detalles como se muestra a continuación:

root@ubuntu:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 96.126.107.141
netmask 255.255.255.0
network 96.126.107.0
broadcast 96.126.107.255
gateway 96.126.107.1
dns-nameservers 96.126.107.141 8.8.8.8
dns-search nodenixbox.com

# This is an autoconfigured IPv6 interface
iface eth0 inet6 auto

Cambié iface eth0 inet dhcp a iface eth0 inet static y agregué estas partes resaltadas a mi configuración de red.

2) Edite su archivo resolv.conf para agregar su nombre de controlador de dominio.

root@ubuntu:~# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 96.126.107.141
nameserver 8.8.8.8
nameserver 207.192.69.4
search nodenixbox.com

3) Por último, pero no menos importante, edite nuestro archivo /etc/hosts y configure "ubuntu.nodenixbox.com" como su nombre de host como se muestra a continuación:

root@ubuntu:~# cat /etc/hosts
127.0.0.1 localhost
#127.0.1.1 ubuntu.members.linode.com ubuntu
96.126.107.141 ubuntu.nodenixbox.com ubuntu

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

root@ubuntu:~# echo ubuntu.nodenixbox.com > /etc/hostname

root@ubuntu:~# /etc/init.d/networking restart
[ ok ] Restarting networking (via systemctl): networking.service.

Reinicie su red después de estas modificaciones.

Entonces, estamos listos para comenzar con la instalación de los paquetes.

Instalación de paquetes

En primer lugar, debemos instalar todos los paquetes necesarios para configurar nuestro directorio activo del controlador de dominio. Ejecuto este comando para actualizar todos los paquetes de software de mi servidor e instalar los softwares necesarios.

root@ubuntu:~# apt-get update && apt-get upgrade -y

root@ubuntu:~# apt-get install git attr build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev libpam0g-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl ntp ntpdate winbind

Durante la instalación de estos paquetes, se le pedirá información de Kerberos. Debe proporcionar su dominio predeterminado de Kerberos y la información del servidor de administrador. Puede ingresar su dominio predeterminado como nodenixbox.com y el nombre del servidor del administrador como nombre de host.

Cómo instalar y configurar SAMBA

Debe descargar los últimos paquetes de Samba usando los repositorios de git en la carpeta "samba4".

root@ubuntu:~# git clone -b v4-1-stable git://git.samba.org/samba.git samba4
Cloning into 'samba4'...
remote: Counting objects: 1276826, done.
remote: Compressing objects: 100% (280630/280630), done.
remote: Total 1276826 (delta 992350), reused 1267276 (delta 984263)
Receiving objects: 100% (1276826/1276826), 249.03 MiB | 10.51 MiB/s, done.
Resolving deltas: 100% (992350/992350), done.
Checking connectivity... done.

Una vez descargado, puede ingresar a la carpeta "samba4" y configurar su paquete Samba.

root@ubuntu:~#cd samba4
root@ubuntu:~#./configure --enable-debug --enable-selftest
root@ubuntu:~#make
root@ubuntu:~/samba4# make
WAF_MAKE=1 python ./buildtools/bin/waf build
Waf: Entering directory `/root/samba4/bin'
Selected embedded Heimdal build
Waf: Leaving directory `/root/samba4/bin'
'build' finished successfully (6.288s)
root@ubuntu:~#make install

La compilación de SAMBA puede tardar un poco en completarse. Una vez hecho esto, confirme con la versión de cliente SAMBA y SMB. Ambas versiones deben coincidir.

root@ubuntu:~# /usr/local/samba/sbin/samba -V
Version 4.1.23
root@ubuntu:~# /usr/local/samba/bin/smbclient -V
Version 4.1.23

Aprovisionamiento del directorio activo de Samba

El siguiente paso es aprovisionar su dominio. Simplemente puede ejecutar este comando para aprovisionar su dominio.

root@ubuntu:~/samba4# /usr/local/samba/bin/samba-tool domain provision --realm=nodenixbox.com --domain=nodenixbox --adminpass="password" --server-role=dc --dns-backend=SAMBA_INTERNAL
Looking up IPv4 addresses
Looking up IPv6 addresses
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=nodenixbox,DC=com
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=nodenixbox,DC=com
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: ubuntu
NetBIOS Domain: NODENIXBOX
DNS Domain: nodenixbox.com
DOMAIN SID: S-1-5-21-4019752003-3807572232-1148719748

Algunos usan Bind9 como DNS backend, pero SAMBA contiene su propio servidor DNS completamente funcional. Aquí, estoy usando SAMBA_INTERNAL. Necesitamos iniciar el servicio SAMBA después de configurar este dominio. Puede ejecutar este comando para iniciar SAMBA.

root@ubuntu:~# /usr/local/samba/sbin/samba
root@ubuntu:~#

Prueba de su controlador de dominio Samba

Podemos ejecutar "smbclient", para verificar si Samba proporciona los recursos compartidos predeterminados de AD DC "netlogon" y "sysvol", que se crearon en su "smb.conf" durante el aprovisionamiento.

root@ubuntu:~# /usr/local/samba/bin/smbclient -L localhost -U%
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.3.11-Ubuntu]

Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
IPC$ IPC IPC Service (ubuntu server (Samba, Ubuntu))
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.3.11-Ubuntu]

Server Comment
--------- -------
UBUNTU ubuntu server (Samba, Ubuntu)

Workgroup Master
--------- -------
WORKGROUP UBUNTU

Para probar si la autenticación funciona, debe intentar conectarse al recurso compartido "netlogon", utilizando la cuenta de administrador de dominio que se creó durante el aprovisionamiento.

root@ubuntu:~/samba4# /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator -c 'ls'
Enter Administrator's password:
Domain=[NODENIXBOX] OS=[Unix] Server=[Samba 4.1.23]
. D 0 Sun Oct 16 09:30:02 2016
.. D 0 Sun Oct 16 09:31:09 2016

47431 blocks of size 524288. 40274 blocks available

Configurar SAMBA_INTERNAL DNS

Un DNS que funcione es esencial para el correcto funcionamiento de un Active Directory. Sin las entradas de DNS correctas, Kerberos no funcionará, lo que a su vez significa que muchas de las funciones básicas no funcionarán. Siempre vale la pena dedicar más tiempo a garantizar la configuración de su DNS para garantizar que se realice correctamente.

Necesitamos editar nuestro /etc/resolv.conf con nuestro nombre de dominio como se muestra a continuación:

root@ubuntu:~#echo domain nodenixbox.com >> /etc/resolv.conf

Su controlador de dominio requiere un servidor de nombres que pueda resolver consultas a las zonas de Active Directory. Porque este es su primer controlador de dominio en su bosque AD.

También debe editar su archivo de configuración de samba "/usr/local/samba/etc/smb.conf" y agregar el servidor de nombres de Google a dns_forwarder.

root@ubuntu:~# cat /usr/local/samba/etc/smb.conf
# Global parameters

[mundiales]

grupo de trabajo =NODENIXBOXrealm =NODENIXBOX.COMnetbios name =UBUNTUserver role =directorio activo controlador de dominio dns reenviador =8.8.8.8

Probando su DNS

Para confirmar que el DNS funciona correctamente, ejecute los siguientes comandos y compare la salida

root@ubuntu:~# host -t SRV _ldap._tcp.nodenixbox.com
_ldap._tcp.nodenixbox.com has SRV record 0 100 389 ubuntu.nodenixbox.com

root@ubuntu:~# host -t SRV _kerberos._udp.nodenixbox.com.
_kerberos._udp.nodenixbox.com has SRV record 0 100 88 ubuntu.nodenixbox.com.

root@ubuntu:~# host -t A ubuntu.nodenixbox.com
ubuntu.nodenixbox.com has address 96.126.107.141

Configurar Kerberos

Kerberos es una parte importante de Active Directory. Normalmente, la configuración se realiza en /etc/krb5.conf. Durante el aprovisionamiento, se creará una configuración de muestra funcional en /usr/local/samba/share/setup/krb5.conf. Puede reemplazar su archivo krb5.conf con la muestra copiando o creando un enlace simbólico.

root@ubuntu:~# ln -s /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf

Deberá editar este archivo y modificar default_realm con su nombre de DC como se muestra a continuación:

root@ubuntu:~# cat //etc/krb5.conf

[valores predeterminados de lib]

default_realm =NODENIXBOX.COMdns_lookup_realm =falsedns_lookup_kdc =verdadero

El nombre del reino debe estar en MAYÚSCULAS.

Prueba de Kerberos

Puede usar kinit para probar su configuración de Kerberos. Ejecute este comando como se muestra a continuación para probar:

root@ubuntu:~# kinit [email protected]
Password for [email protected]:
Warning: Your password will expire in 41 days on Sun 27 Nov 2016 09:31:07 AM UTC

Debe deshabilitar la caducidad de la contraseña para el usuario administrador del directorio activo ejecutando este comando para evitar futuros problemas de autenticación.

root@ubuntu:~# /usr/local/samba/bin/samba-tool user setexpiry administrator --noexpiry
Expiry for user 'administrator' disabled.

Nota:Siempre debes especificar tu reino en letras mayúsculas. Para verificar el funcionamiento de Kerberos, puede ejecutar esto.

root@ubuntu:~# klist -e
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]

Valid starting Expires Service principal
10/17/2016 04:19:31 10/17/2016 14:19:31 krbtgt/[email protected]
renew until 10/18/2016 04:19:19, Etype (skey, tkt): arcfour-hmac, arcfour-hmac

Crear su carpeta de inicio de usuario

Ahora, puede crear sus carpetas de inicio de usuario y establecer los permisos y propiedades adecuados.

root@ubuntu:~# mkdir -m 770 /Users
root@ubuntu:~# chmod g+s /Users
root@ubuntu:~# chown root:users /Users

A continuación, debe editar su archivo de configuración SMB "/usr/local/samba/etc/smb.conf" como se muestra a continuación:

[Users]
directory_mode: parameter = 0700
read only = no
path = /Users
csc policy = documents

Configurar NTP

Active Directory requiere una sincronización de tiempo cercana entre todas las máquinas participantes para que Kerberos funcione correctamente. Se recomienda encarecidamente utilizar NTP en su controlador de dominio para la sincronización de tiempo. Esta documentación le proporcionará toda la información necesaria para configurar NTP en un controlador de dominio AD.

Conclusión

Finalmente, hemos creado nuestro controlador de dominio de Active Directory en un servidor Ubuntu 16.04. Puede crear su propio directorio DC Active y compartir a través de la red. Una gran ventaja de esta configuración es la capacidad de centralizar las credenciales de usuario y máquina. Tiene varios otros beneficios. Algunos de los beneficios clave son los siguientes:

  • Mantiene una lista de usuarios que pueden acceder a la red en un directorio activo y determina a qué archivos pueden acceder los usuarios y qué pueden hacer con estos archivos.
  • Además de la seguridad y la comodidad, los controladores de dominio brindan velocidad al liberar recursos de PC individuales para que no realicen funciones de servidor, lo que en última instancia mejora el rendimiento de la máquina cliente.
  • También proporciona un registro de seguridad completo que se requiere para la seguridad y auditoría del sistema.

Ubuntu
  1. Cómo descomprimir un archivo ZIP en Ubuntu/Linux

  2. Cómo reiniciar la red en Ubuntu 16.04 Xenial Xerus Linux

  3. Cómo configurar Samba como controlador de dominio principal en Linux

  4. Cómo hacer una copia de seguridad de la configuración del controlador de dominio Samba en Linux

  5. ¿Cómo copio un archivo a través de FTP usando Ubuntu Linux?

Cómo crear un archivo en Linux usando el comando Cat

Cómo configurar una VPN en Ubuntu

Cómo instalar y configurar Samba en Ubuntu

Cómo descargar un archivo en Ubuntu Linux usando la línea de comandos

Cómo configurar la vinculación de red en Ubuntu 20.04

Cómo crear un archivo en Ubuntu Linux usando comando y GUI