Hola amigos de NETWORLD, en la entrada de hoy vamos a mostrar el procedimiento para instalar nuestro propio controlador de dominio, el cual nos permitirá unir estaciones tanto en Windows como en Linux para poder gestionar de una forma centralizada los equipos, grupos y usuarios de nuestra red, además de poder generar políticas de seguridad globales e individuales. En otras palabras, tomar el control de nuestra red.
Estaremos utilizando un servidor Ubuntu 20.04 con Samba4.
Los datos del servidor para la entrada son los siguientes y recuerde ajustarlos a su necesidad:
Nombre del servidor: dc.networld.cu
Dirección IP: 10.10.20.4
Es importante destacar que el servidor DNS definido debe ser uno real que nos permita acceder a internet para poder descargar los paquetes necesarios. Una vez realizado todo el proceso de instalación podemos y debemos declarar como DNS principal nuestro propio servidor quedando: 127.0.0.1.
Entonces manos a la obra:
//Lo primero cerciorarnos de que estamos usando la última versión de nuestro sistema:
# sudo apt update
# sudo apt upgrade
//Si durante la instalación no ajustaste el nombre de host vamos a hacerlo ahora para establecer: dc.networld.cu, tanto el nombre del servidor como el fqdn pueden ser modificados a su gusto, simplemente cerciórese de modificarlo también a lo largo de todo el tutorial.
# sudo nano /etc/hostname
dc.networld.cu
//Ajustamos el archivo hosts para declarar nuestro servidor:
# sudo nano /etc/hosts
10.10.20.4 dc.networld.cu dc
//Es completamente imprescindible reiniciar nuestro sistema para que cargue los nuevos nombres, no hacerlo representa problemas durante la instalación de Samba.
# sudo reboot
//Es el momento de instalar los paquetes que necesitamos para todo el aprovisionamiento:
//ATENCIÓN al proceso pues se nos preguntará algunas cosas:
# sudo apt install samba krb5-user krb5-config winbind smbclient #libpam-winbind libnss-winbind
//Acá especificamos nuestro dominio, es necesario escribirlo en mayúsculas.
//Ahora introducimos nuestro fqdn completo, esta vez en minúscula.
//Nuevamente introducimos nuestro fqdn en minúscula:
//Antes de pasar al aprovisionamiento de Samba4, es necesario borrar o renombrar el archivo smb.conf que se crea por defecto en la instalación del paquete, esto se debe a que al realizar el aprovisionamiento se creará uno nuevo y si detecta que hay uno nos mostrará error.
# sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.back
//Ya estamos listos para lanzar el aprovisionamiento de Samba4
# sudo samba-tool domain provision
//Nuevamente nos pedirá una serie de datos, si hemos realizado todo lo anterior de forma correcta no tendremos que hacer mucho aquí:
//Si el realm es correcto, solamente damos ENTER.
Realm [NETWORLD.CU]:
//Detectará automáticamente el dominio, así que simplemente damos ENTER.
Domain [NETWORLD]:
//Por lo general al lanzar el comando querrá configurarse como role DC el cual quiere decir Controlador de dominio, o sea lo que necesitamos, así que solamente damos ENTER.
Server Role (dc, member, standalone) [dc]:
//Importante el modo en que se gestionará los registros DNS, por defecto SAMBA_INTERNAL es lo que recomiendo, en roles más avanzados y con otras funciones se usa BIND, pero requiere un servidor BIND con ciertas configuraciones, así que lo dejamos por defecto: SAMBA_INTERNAL
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
//El DNS forwader pregunta cuál es la dirección IP del servidor DNS que va a resolver las consultas que Samba4 no pueda gestionar, en otras palabras, el servidor que responderá a todo lo que no sea networld.cu. (En el video se explicará de forma más amplia este punto y posibles complicaciones que pueden surgir)
DNS forwarder IP address (write \’none\’ to disable forwarding) [127.0.0.53]: 10.10.20.6,10.10.20.7
//Es hora de establecer una contraseña para el usuario administrator, bien, si quieres que el proceso vaya bien asegúrate de generar una buena contraseña, mínimo 7 caracteres, mayúsculas, algún símbolo y números. Ej: SMBnetworld.2021
Administrator password:
Retype password:
//Por defecto kerberos crea su archivo de configuración en /etc/ pero ese no lo vamos a usar, por el contrario usaremos el generado hace unos segundos por samba.
# sudo mv /etc/krb5.conf /etc/krb5.conf.back
# sudo cp /var/lib/samba/private/krb5.conf /etc/
//Nos queda deshabilitar servicios que se instalaron hace un rato y crear el nuevo que usaremos realmente.
# sudo systemctl disable --now smbd nmbd winbind systemd-resolved
# sudo systemctl unmask samba-ad-dc
# sudo systemctl enable --now samba-ad-dc
//Hasta el momento todo está listo. Podemos ver el nivel de funcionalidad del controlador con el siguiente comando:
# sudo samba-tool domain level show
//Vamos a ajustar ahora el archivo resolv.conf para indicar que será este mismo servidor el DNS.
# sudo rm -f /etc/resolv.conf
# sudo nano /etc/resolv.conf
nameserver 127.0.0.1
domain networld.cu
//Y para finalizar y que carguen los cambios resta reiniciar.
# sudo reboot
//El siguiente test podemos lanzarlo desde el propio servidor o desde una estación y nos permitirá verificar que efectivamente nuestro servidor responde a las direcciones indicadas.
# ping -c2 networld.cu
# ping -c2 dc.networld.cu
# ping -c2 dc
//Necesitamos también comprobar ciertos registros DNS para asegurarnos de que todo está correcto.
# host -t A networld.cu
networld.cu has address 10.10.20.4
# host -t A dc.networld.cu
dc.networld.cu has address 10.10.20.4
# host -t SRV _kerberos._udp.networld.cu
_kerberos._udp.networld.cu has SRV record 0 100 88 dc.networld.cu.
# host -t SRV _ldap._tcp.networld.cu
_ldap._tcp.networld.cu has SRV record 0 100 389 dc.networld.cu.
//Veamos el estado de la cuenta administrator
# kinit administrator@NETWORLD.CU
# klist
//Con el siguiente comando podemos verificar que la autentificación está funcionando sin problemas (nos pedirá posiblemente primero la contraseña del usuario del sistema, sudo y luego la contraseña del usuario administrator del samba.
# sudo smbclient //localhost/netlogon -Uadministrator -c \'ls\'
//Algunos comandos útiles que uso casi siempre se los dejo a continuación, no se preocupen, el resto de funciones se pueden hacer mediante RSAT en Windows.
//Ver la configuración de seguridad de las contraseñas:
sudo samba-tool domain passwordsettings show
//Establecer un límite de expiración de contraseña, sustituir administrator por el usuario que desee:
sudo samba-tool user setexpiry Administrator –days=90
//Definir que la contraseña nunca expire, sustituir administrator por el usuario que desee:
sudo samba-tool user setexpiry Administrator –noexpiry
//Establecer una contraseña para un usuario determinado:
sudo samba-tool user setpassword usuario
//Eliminar un usuario determinado:
sudo samba-tool user delete usuario
//Deshabilitar un usuario determinado:
//Activar un usuario que se ha deshabilitado, ya sea de forma intencional con el comando anterior o por intentos fallidos de inicio de sesión: