LINUX

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

controlador de dominio samba en Ubuntu

SAMBA es una implementación de código abierto del protocolo de intercambio de archivos SMB que proporciona servicios de archivos e impresión a clientes SMB / CIFS. Ayuda a conectar con éxito su sistema Ubuntu con los clientes de Windows, proporcionando e integrándose con los 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 Server Message Block (SMB) para facilitar el intercambio de archivos, carpetas, volúmenes e impresoras en toda la red.

Directorio de Servicios: Comparte información vital sobre las computadoras y los usuarios de la red con la ayuda de Lightweight Directory Access Protocol (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 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 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 cantidad de compatibilidad mejorada con Microsoft Active Directory y características 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 backends de AD.

Prerrequisitos

  • 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 los servidores de nombres adecuados.
  • Actualice su archivo / etc / hosts con las entradas adecuadas. Su nombre de host debería resolverse en la IP del servidor.

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

1) Necesita 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 sobre Kerberos. Debe proporcionar su dominio predeterminado Kerberos y la información del servidor de administrador. Puede ingresar su reino predeterminado como nodenixbox.com y el nombre del servidor del administrador como nombre de host.

Cómo instalar y configurar SAMBA

Necesita descargar los últimos paquetes de Samba usando repositorios 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 del 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 de Samba Active Directory

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 backend DNS, 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:~#

Probando su controlador de dominio Samba

Podemos ejecutar «smbclient», para comprobar si Samba proporciona los recursos compartidos predeterminados de AD DC «netlogon» y «sysvol», que fueron creados 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 está funcionando, 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 directorio activo. Sin las entradas DNS correctas, Kerberos no funcionará, lo que a su vez significa que muchas de las características básicas no funcionarán. Siempre vale la pena dedicar algo de tiempo extra a asegurarse de que la configuración de su DNS 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 zonas de Active Directory. Porque este es su primer controlador de dominio en su bosque de AD.

También necesita editar su archivo de configuración de samba «/usr/local/samba/etc/smb.conf» y agregar el servidor de nombres de Google al dns_forwarder.

root@ubuntu:~# cat /usr/local/samba/etc/smb.conf
# Global parameters
[global]
workgroup = NODENIXBOX
realm = NODENIXBOX.COM
netbios name = UBUNTU
server role = active directory domain controller
dns forwarder = 8.8.8.8

Probando su DNS

Para confirmar que 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
[libdefaults]
default_realm = NODENIXBOX.COM
dns_lookup_realm = false
dns_lookup_kdc = true

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 administrator@NODENIXBOX.COM
Password for administrator@NODENIXBOX.COM:
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 problemas de autenticación en el futuro.

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

Nota: Siempre debe especificar su 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: administrator@NODENIXBOX.COM

Valid starting Expires Service principal
10/17/2016 04:19:31 10/17/2016 14:19:31 krbtgt/NODENIXBOX.COM@NODENIXBOX.COM
renew until 10/18/2016 04:19:19, Etype (skey, tkt): arcfour-hmac, arcfour-hmac

Creando su carpeta de inicio de usuario

Ahora, puede crear sus carpetas de inicio de usuario y establecer los permisos y las 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 la hora. 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 directorio activo en un servidor Ubuntu 16.04. Puede crear su propio directorio activo de DC y compartir a través de la red. Una de las principales ventajas 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 conveniencia, los controladores de dominio brindan velocidad al liberar los recursos individuales de la PC de la realización de funciones de servidor, lo que en última instancia mejora el rendimiento de la máquina del cliente.
  • También proporciona un registro de seguridad completo que se requiere para la seguridad y auditoría del sistema.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar