Servidor Samba AD - GNU/Linux

Para este ejemplo estaré utilizando DEBIAN 11 , Windows 10 y Windows 7 en un servidor de virtualización QEMU/KVM.

  • Nombre del servidor: servidor
  • Dirección IP: 192.168.1.3/24
  • Nombre Maquinas Clientes: PC-1, PC-2
  • Direcciión IP: DHCP

El servidor DNS definido debe ser uno real que permita acceder a internet. Una vez finalizada la instalación se debe declarar como DNS principal el servidor samba: 127.0.0.1.

ACTULIZAR SISTEMA

Es necesario que el sistema se encuentre actualzado:

apt update
apt upgrade

INSTALACIÓN

Instalar las dependecias necesarias:

Dependencias

  • NOTA: durante el proceso de instalación se solicitara información para la configuración de kerberos. En este caso solo presionare enter y dejare todo por defecto. Las configuraciones las realizare luego.
apt install acl attr samba samba-dsdb-modules samba-vfs-modules winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user

Finalizada la instalación es necesario borrar o renombrar el archivo smb.conf que se crea por defecto durante la instalación.

mv /etc/samba/smb.conf /etc/samba/smb.conf.back

Ahora es momenrto de confugurar SAMBA.

root@servidor:~# samba-tool domain provision --use-rfc2307 --interactive

Nombre del Realm: a modo de ejemplo lo llamare ema.local

Los dominios local deben seguir con un .local. Porque es un dominio dentro de la red local.

Realm:  ema.local

Detectará automáticamente el dominio, así que simplemente damos ENTER.

Domain [ema]:  

Configurar como role DC el cual quiere decir Controlador de dominio. Presionar ENTER.

Server Role (dc, member, standalone) [dc]:  

Configurar el modo en que se gestionarán los registros DNS. Si no se cuenta con ningún servidor DNS, por defecto se debe dejar SAMBA_INTERNAL.

DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:

DNS forwader pregunta cuál es la dirección IP del servidor DNS que va a resolver las consultas que Samba no pueda gestionar. O sea, el servidor que responderá a todas las consultas que no sea ema.local.

DNS forwarder IP address (write 'none' to disable forwarding) [192.168.1.1]: 

Establecer una contraseña para el usuario administrator. La cual debe estar compuestas por minúsculas, mayúsculas y números.

Administrator password: 
Retype password: 

Archivo de configuracion de SAMBA.

Por defecto kerberos crea su archivo de configuración en /etc/ el cual se debe eliminar, en su lugar se usara el generado por samba.

mv /etc/krb5.conf /etc/krb5.conf.back
cp /var/lib/samba/private/krb5.conf /etc/

Deshabilitar los servicios que se crearon hace momento y habilitar el servicio de samba-ad-dc.

systemctl disable --now smbd nmbd winbind systemd-resolved
systemctl unmask samba-ad-dc
systemctl enable --now samba-ad-dc

Ver el nivel de funcionalidad del controlador:

samba-tool domain level show

RESOLV

El archivo /etc/resolv.conf debe quedar de la siguiente manera:

root@servidor:~# cat /etc/resolv.conf 
domain ema.local
search ema.local
nameserver 192.168.1.3
  • Comprobar que el servicio responde:
smbclient -L localhost -U%

ping -c2 ema.local
ping -c2 servidor.ema.local


host -t A ema.local
ema.local has address 192.168.1.3

# host -t A servidor.ema.local
servidor.ema.local has address 192.168.1.3

# host -t SRV _kerberos._udp.ema.local
_kerberos._udp.ema.local has SRV record 0 100 88 servidor.ema.local.

# host -t SRV _ldap._tcp.networld.cu
_ldap._tcp.ema.local has SRV record 0 100 389 servidor.ema.local.

INSTALAR SERVICIO NTP (Network Time Protocol)

Para asegurar que nuestro equipo siempre tenga la hora correcta. Kerberos exige que los equipos estén sincronizados en cuanto a la hora para que funcionar correctamente.

apt install ntp

Editar el fichero /etc/ntp.conf y añadir el servidor NTP:

nano /etc/ntp.conf
  • Añadir los siguientes servidores:
server 0.south-america.pool.ntp.org
server 1.south-america.pool.ntp.org
server 2.south-america.pool.ntp.org
server 3.south-america.pool.ntp.org

  • Reinicir el servicio NTP:
systemctl restart ntp
  • Con ntpq -p se puede comprobar el funcionamiento del servicio.
ntpq -p

CREAR USUARIOS

useradd ema
useradd ale

AGREGAR USUARIOS A SAMBA:

Para agregar los usuarios anteriormente creados a SAMBA se puede hacer de dos maneras, con el comando smbpasswd o pdbedit.

pdbedit -a ema
pdbedit -a ale

ESTADO DE LA CUENTA ADMINISTRADOR

  • Verificar el estado de la cuenta administrador:
kinit administrator@ema.local
klist
  • verificar si la autentificación está funcionand
smbclient //localhost/netlogon -Uadministrator -c 'ls'

INTEGRAR EQUIPOS WINDOWS 10 A DOMINIO DE SAMBA:

Configurar servidor DNS

Introducir windows al dominio ema.local.

  • Ingresar Dominio:

  • Ingresar credenciales del administrador:

  • Reiniciar:

  • Login:

  • Usuario ema:

INTEGRAR EQUIPOS WINDOWS 7 A DOMINIO DE SAMBA:

Introducir windows al dominio ema.local.

  • Ingresar Dominio:

  • Cambio de dominio:

  • Ingresar credenciales del Administrador

  • Reiniciar:

  • Login

  • Usuario ema:

Antes de continuar con la configuración guardare dentro de netlogon unas imágenes que usare como wallpapers.

RSAT

Descargar RSAT para Windows 7 de 64 bit:

Luego que la descarga finalizo se debe comenzar con la instalación:

Cuando finaliza la actualización se abrirá la panel de herramientas remotas:

Reiniciar el equipo.

Instalar administrador de Active directory.

  • Panel de control
    • Programas
      • Activar o desactivar caracteristicas de windows:

Dentro, buscar las opción:

PASO 1

  • Herramientas de administración remota del servidor
    • Herramientas de administración de características

Tildar la siguiente opcion:

  • Herramientas de administración de directivas de grupos

PASO 2

  • Herramientas de administración remota del servidor:
    • Herramientas de administración de funciones
      • Herramientas de AD DS y AD LDS
        • Herramientas de AD DS:

Tildar las siguientes opciones:

  • Centro de administración de Active Directory.

  • Herramientas de línea de comandos y complementos de AD DS.

Para finalizar: Aceptar.

Usuarios y equipos de Active Directory.

Iniciar la herramienta de Usuarios y equipos de Active Directory.

En el apartado de “Domain Controllers” se puede ver los controladores de dominio, en sus propiedades.

Se puede apreciar en la imagen los usuarios (ema, ale) que cree en el servidor SAMABA.

Crear una Unidad Organizativa (OU)

Para este ejemplo creare OU “grupos”, “usuarios”, “maestros” y “alumnos”.

cada OU servirá para contener “objetos” como usuarios, grupos, maquinas, etc.

Crear una Unidad Organizativa llamada usuarios.

Crear OU en “ema.local”

  • nombre: usuarios.

Dentro de la Unidad Organizativa usuarios se deben crear dos UO.

  • nombre: maestros.

  • nombre: alumnos.

Crear una Unidad Organizativa llamada grupos

Crear OU en “ema.local”

  • nombre: grupos.

Dentro de la Unidad Organizativa grupos se debe crear un grupo:

  • nombre: g-user.

Activar las características avanzadas

para poder acceder a la información del las UO.

ahora se debe ingresar en las propiedades del grupo g-user y luego en “Editor de Atributos” , dentro de este editor se debe buscar “gidNumber” , aqui dentro colocare el numero “10000”.

Aplicar los cambios y aceptar.

Los identificadores de grupos que usare partirán del N° 1000.

  • Los grupos “g-maestros” y “g-alumnos” los creare con la herramienta samba-tool.

Gestión de Usuarios: Creare los usuarios “martin morales” y “chema vasi”.

El usuario “Martin” lo creare en la OU “maestros” que está dentro de la OU “usuarios”.

  • nombre de Pila: Martin
  • apellidos: Morales
  • inicio de sesión: mmartin
  • contraseña: Martin1234
  • “la contraseña nunca expira”.

Ingresar a las propiedades del usuario, en pestaña “Editor de atributos” establecer el uidNumber en “10000”.

Ingresamos a propiedades del usuario, en pestaña “miembro de” añadir al grupo “g-user”.

Crearemos el usuario “chema” en la OU “maestros” que está dentro de la OU “usuarios”.

  • nombre de Pila: chema
  • apellidos: vasi
  • inicio de sesión: vchema
  • contraseña: Chema.1234
  • “la contraseña nunca expira”.

Ingresar a propiedades del usuario, en pestaña “Editor de atributos” establecemos el uidNumber en “10001”

Ingresar a propiedades del usuario, en pestaña “miembro de” añadiremos al grupo “g-usuarios”.

GESTIÓN DE USUARIOS Y GRUPOS CON SAMBA-TOOL.

Con samba-tool inicializare la estructura del dominio.

Gestión de Grupos de Usuarios: Crear los grupos “g-maestros” y “g-alumnos”.

  • crear grupo “g-alumnos” dentro de OU grupos:
  • crear grupo “g-maestros” dentro de OU grupos
root@servidor:~# samba-tool group add g-alumnos --groupou=OU=grupos
Added group g-alumnos
root@servidor:~# samba-tool group add g-maestros --groupou=OU=grupos
Added group g-maestros

Al actualizar dentro de RSAT se pueden ver los grupos creados por la terminal.

Gestión de Usuarios.

Creare los siguientes usuarios utilizando la terminal:

  • Milton (Milton Hugenet)
  • Victor (Victor Payes)
  • Eugenio (Eugenio Insauralde)
  • Victor (Victor Garcia)

Crear el usuario “Milton” dentro de OU alumnos:

root@servidor:~# samba-tool user create hmilton Milton.1234 --given-name=Milton --surname=Hugenet --must-change-at-next-login --userou=OU=alumnos,OU=usuarios --uid-number=10002
User 'hmilton' created successfully
  • user create: nombre de la cuenta del usuario.
  • –given-name=: Nombre del usuario.
  • –surname=: Apellido del usuario.
  • –must-change-at-next-login: El usuario debera cambiar el password luego del primer inicio
  • –userou=OU=alumnos,OU=usuarios: Se creara dentro de la OU alumnos que esta dentro de la OU usuarions.
  • –uid-number=: identificador del usiario.

crear el usuario “Victor” dentro de OU alumnos:

root@servidor:~# samba-tool user create vpayes Victor.1234 --given-name=Victor --surname=Payes --must-change-at-next-login --userou=OU=alumnos,OU=usuarios --uid-number=10003
User 'vpayes' created successfully

Al actualizar dentro de RSAT se pueden ver los usuarios creados por la terminal.

Asignacion de grupos:

Añadir a los usuarios:

  • Milton (Milton Hugenet)
  • Victor (Victor Payes)
  • Eugenio (Eugenio Insauralde)
  • Victor (Victor Garcia)

al grupo g-alumnos y al grupo g-user.

root@servidor:~# samba-tool group addmembers g-alumnos hmilton,vpayes,ieugenio,gvictor
Added members to group g-alumnos

root@servidor:~# samba-tool group addmembers g-user hmilton,vpayes,ieugenio,gvictor
Added members to group g-user

Unir a los usuarios:

  • Martin Morales

  • chema vasi

al grupo g-maestros.

root@servidor:~# samba-tool group addmembers g-maestros mmartin,vchema
Added members to group g-maestros

CREACIÓN DE POLÍTICAS DE GRUPO (GPO)

Abrir “Administración de directivas de grupo”.

Crear GPO “gpo alumnos” y luego dar clic derecho editar.

Ocultar “Disco C” de los “Alumnos”: Para ocultar el “Disco C” hay que dirigirse a:

  • Configuración de usuario

  • Directivas

    • Plantillas administrativas
      • Componentes de Windows
        • Explorador de Windows
          • Ocultar estas unidades específicas

Editar y elegir “Unidad C”

Estableceremos un fondo de escritorio para “alumnos”.

En el GPO “gpo alumnos”.

ingresar a Configuración de usuario

  • Directivas
    • Plantillas administrativas
      • Escritorio
        • Active desktop

configurar 3 opciones:

  • Habilitar Active Desktop

  • Habilitar “no permitir cambios”

  • Habilitar “tapiz del escritorio”: Especificar la ruta del wallpapers. \192.168.1.3\netlogon\dbz.jpeg .

Estableceremos un fondo de escritorio para “maestros”.

Creamos el gpo “gpo maestros”

Cambiar el fondo de escritorio:

ingresar a Configuración de usuario

  • Directivas
    • Plantillas administrativas
      • Escritorio
        • Active desktop

configurar 3 opciones:

  • Habilitar Active Desktop

  • Habilitar “no permitir cambios”

  • Habilitar “tapiz del escritorio”: Especificar la ruta del wallpapers. \192.168.1.3\netlogon\naruto.png .

COMPROBACIÓN

Forzar actualización de GPO en el cliente.

En la consola CMD.exe del Cliente de W7, ejecutar el comando gpupdate /force para la actualización de las directivas de grupo.

Primer inicio:

Como se le especifico en samba, durante el primer inicio se debe cambiar el password del usuario.

La politica que estableci para que el usurio no pueda ver el “Disco C funciona.

Inicio de sesion en Windows 10 con el mismo usuario hmilton, de la misma manera que en windows 7, este usuario no puede acceder al Disco C.

COMANDOS ÚTILES:

  • Ver configuración de seguridad de los password:
samba-tool domain passwordsettings show
  • Establecer un límite de expiración del password, sustituir administrator por el usuario que se desee:
samba-tool user setexpiry Administrator –days=90
  • Definir que el password nunca expire, sustituir administrator por el usuario que desee:
samba-tool user setexpiry Administrator –noexpiry
  • Establecer un password para un usuario determinado:
samba-tool user setpassword usuario
  • Eliminar un usuario determinado:
samba-tool user delete usuario
  • Deshabilitar un usuario determinado:
samba-tool user disable usuario
  • Activar un usuario que se ha deshabilitado:
samba-tool user enable usuario

Manual de Instalación y configuracion