Página 1 de 19
Guía – Instalación y configuración de un servidor SAMBA-AD Índice de contenido Guía – Instalación y configuración de un servidor SAMBA-AD.................................................................. 1
Primera Parte: Instalación y configuración de los servicios SAMBA AD y Kerberos .............................. 2
Paso 1 - Modificar archivos para utilizar nombre NETBIOS ............................................................... 2
Paso 2 – Instalar Samba AD .............................................................................................................. 2
Paso 3 – Configurar el servicio SAMBA ............................................................................................. 4
Paso 4 – Modificar el archivo de configuración de Kerberos .............................................................. 7
Paso 5 – Verificar funcionamiento de servidor SAMBA AD ................................................................ 7
Paso 6 – Verificación del servicio de autenticación Kerberos ............................................................. 9
Paso 7 – Pruebas de red ................................................................................................................. 10
Paso 8 – Verificación de la estructura creada. ................................................................................. 12
Tercera Parte: Creación de usuarios ................................................................................................... 14
Paso 9 – Creación de cuentas de usuario para SAMBA-AD ............................................................ 14
Paso 10 – Probar la conexión de la cuenta de usuario de dominio creada ...................................... 16
Paso 11 – Instalación de RSAT para administración ........................................................................ 17
Información recomendada: .................................................................................................................. 19
Guía de referencia elaborada por Víctor Cuchillac (padre) Nota: Yo ya realicé todas las pruebas desde una instalación limpia y todo funcionó correctamente, por lo que sugiero:
1. Instalar la versión más reciente de Liux Alpine 2. Instalar el servidor y utilizar como NTP a openntpd 3. No instalar el servidor liviano DNS unbound (porque se utilizará el interno de SAMBA AD) 4. Instalar y configurar el servidor DHCP ISC (opcional) 5. Habilitar la función de reenvío de paquetes IPv4 6. Configurar el firewall Shorewall 7. Realizar esta guía. 8. Utilizar la herramienta RSAT para configurar el DNS interno de SAMBA AD
Página 2 de 19
Primera Parte: Instalación y configuración de los servicios SAMBA AD y Kerberos
Paso 1 - Modificar archivos para utilizar nombre NETBIOS
1.1 Verificar el nombre FQDN y hosts en el archivo /etc/hosts
router01:~# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.50.1 router01.empresay.com.sv router01
1.2 Editar archivo /etc/resolv.conf
Nota: Este archivo cambia cada vez que se inicia el router01, debido a que la eth0 está configurada
para obtener una IPv4 automática (NAT en la máquina virtual). Debe editarse o crear un script que la actualice con valores permanentes. router01:~# cat /etc/resolv.conf
search empresay.com.sv
nameserver 192.168.50.1
nameserver 8.8.8.8
Paso 2 – Instalar Samba AD
2.1 Verificar versión de samba-dc
router01:~# apk info samba-dc
samba-dc-4.4.5-r1 description:
Samba AD Domain Controller
samba-dc-4.4.5-r1 webpage:
http://www.samba.org
samba-dc-4.4.5-r1 installed size:
10625024
samba-dc-4.4.5-r3 description:
Samba AD Domain Controller
samba-dc-4.4.5-r3 webpage:
http://www.samba.org
samba-dc-4.4.5-r3 installed size:
10625024
Página 3 de 19
2.2 Instalar SAMBA AD y Kerberos 5
router01:~# apk add samba-dc krb5
(1/52) Installing krb5-conf (1.0-r1)
(2/52) Installing keyutils-libs (1.5.9-r1)
(3/52) Installing libverto (0.2.5-r0)
(4/52) Installing krb5-libs (1.14.3-r1)
(5/52) Installing krb5 (1.14.3-r1)
(6/52) Installing samba-common (4.5.7-r0)
(7/52) Installing samba-initscript (4.5.7-r0)
(8/52) Installing samba-heimdal-libs (4.5.7-r0)
(9/52) Installing gmp (6.1.1-r0)
(10/52) Installing nettle (3.2-r0)
(11/52) Installing libtasn1 (4.9-r0)
(12/52) Installing p11-kit (0.23.2-r1)
(13/52) Installing gnutls (3.4.17-r0)
(14/52) Installing db (5.3.28-r0)
(15/52) Installing libsasl (2.1.26-r8)
(16/52) Installing libldap (2.4.44-r3)
(17/52) Installing talloc (2.1.8-r0)
(18/52) Installing tdb-libs (1.3.12-r0)
(19/52) Installing tevent (0.9.31-r0)
(20/52) Installing ldb (1.1.29-r0)
. . .
. . .
(32/52) Installing samba-common-server-libs (4.5.7-r0)
(33/52) Installing samba-server (4.5.7-r0)
(34/52) Installing samba-server-libs (4.5.7-r0)
(35/52) Installing samba-winbind (4.5.7-r0)
(36/52) Installing libbz2 (1.0.6-r5)
(37/52) Installing expat (2.2.0-r0)
(38/52) Installing gdbm (1.12-r0)
(39/52) Installing readline (6.3.008-r4)
(40/52) Installing sqlite-libs (3.15.2-r0)
(41/52) Installing python2 (2.7.13-r0)
(42/52) Installing py-tdb (1.3.12-r0)
(43/52) Installing libarchive (3.2.2-r1)
(44/52) Installing libsmbclient (4.5.7-r0)
(45/52) Installing samba-client (4.5.7-r0)
(46/52) Installing samba-common-tools (4.5.7-r0)
(47/52) Installing py-talloc (2.1.8-r0)
(48/52) Installing samba-libs-py (4.5.7-r0)
(49/52) Installing samba-dc-libs (4.5.7-r0)
(50/52) Installing py-ldb (1.1.29-r0)
(51/52) Installing py-samba (4.5.7-r0)
(52/52) Installing samba-dc (4.5.7-r0)
Executing busybox-1.25.1-r0.trigger
OK: 169 MiB in 104 packages
Página 4 de 19
Paso 3 – Configurar el servicio SAMBA
3.1 Crear el archivo smb.conf
Si no estuviera creado, digite el siguiente comando: router01:~# touch /etc/samba/smb.conf
3.2 Edite el archivo con el siguiente contenido
Los valores a considerar son:
Rol del servidor = domain controlller
Grupo de trabajo NETBIOS = EMPRESAY
Ámbito = empresay.com.sv
Nombre NETBIOS del servidor DC = ROUTER01 router01:~# mcedit /etc/samba/smb.conf
[global]
server role = domain controller
workgroup = EMPRESAY
realm = empresay.com.sv
netbios name = ROUTER01
passdb backend = samba4
idmap_ldb:use rfc2307 = yes
[netlogon]
path = /var/lib/samba/sysvol/empresay.com.sv/scripts
read only = no
browseable = no
[sysvol]
path = /var/lib/samba/sysvol
read only = no
3.3 Verificar el archivo de configuración del servidor SAMBA
router01:~# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[sysvol]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC
Press enter to see a dump of your service definitions
# Global parameters
[global]
realm = EMPRESAY.COM.SV
workgroup = EMPRESAY
passdb backend = samba_dsdb
server role = active directory domain controller
Página 5 de 19
rpc_server:tcpip = no
rpc_daemon:spoolssd = embedded
rpc_server:spoolss = embedded
rpc_server:winreg = embedded
rpc_server:ntsvcs = embedded
rpc_server:eventlog = embedded
rpc_server:srvsvc = embedded
rpc_server:svcctl = embedded
rpc_server:default = external
winbindd:use external pipes = true
idmap_ldb:use rfc2307 = yes
idmap config * : backend = tdb
map archive = No
map readonly = no
store dos attributes = Yes
vfs objects = dfs_samba4 acl_xattr
[netlogon]
path = /var/lib/samba/sysvol/empresay.com.sv/scripts
browseable = No
read only = No
[sysvol]
path = /var/lib/samba/sysvol
read only = No
3.3 Provisionar la estructura del Directorio Activo
Valores a considerar:
Ámbito NETBIOS = EMPRESAY.COM.SV
Dominio NETBIOS = EMPRESAY
Rol del servidor SAMBA = dc (Es decir Controlador de dominio)
Sistema DNS que se utilizará para la integración del AD = [SAMBA_INTERNAL]
Dirección IP para que el sistema interno reeenvie las peticiones externas = 192.168.50+Y.1
Definir la contraseña del usuario “Administrator” = Usar regla de complejidad, Pa$$w0rd
Nota: Acorde a los datos del archivo /etc/samba/smb.conf, el asistente tomará dichos valores y los
mostrará entre “[ ]”, para aceptar dicha propuesta se presiona la tecla “Enter”
Página 6 de 19
router01:~# samba-tool domain provision --use-rfc2307 --interactive
Realm [EMPRESAY.COM.SV]: Presionar “Enter”
Domain [EMPRESAY]: Presionar “Enter”
Server Role (dc, member, standalone) [dc]: Presionar “Enter”
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
Presionar “Enter”
DNS forwarder IP address (write 'none' to disable forwarding) [192.168.50.1]:
192.168.50+Y.1
Administrator password:Pa$$w0rd
Retype password:Pa$$w0rd
Looking up IPv4 addresses
More than one IPv4 address found. Using 192.168.50.1
Looking up IPv6 addresses
No IPv6 address will be assigned
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=empresay,DC=com,DC=sv
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=empresay,DC=com,DC=sv
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
/var/lib/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: router01
NetBIOS Domain: EMPRESAY
DNS Domain: empresay.com.sv
DOMAIN SID: S-1-5-21-3519968612-2828032755-501724343
Página 7 de 19
Paso 4 – Modificar el archivo de configuración de Kerberos
4.1 Realizar una copia del archivo que viene con el sistema Kerberos
router01:~# mv /etc/krb5.conf /root/
4.2 Crear un enlace suave
router01:~# ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf
4.3 Verifique el contenido del archivo /etc/krb5.conf
router01:~# cat /etc/krb5.conf
[libdefaults]
default_realm = EMPRESAY.COM.SV
dns_lookup_realm = false
dns_lookup_kdc = true
Paso 5 – Verificar funcionamiento de servidor SAMBA AD
5.1 Editar el archivo de inicio de servicio
Editar el archivo /etc/init.d/samba con el siguiente contenido router01:~# mcedit /etc/init.d/samba
#!/sbin/openrc-run
extra_started_commands="reload"
DAEMON=${SVCNAME#samba.}
SERVER_ROLE=`samba-tool testparm --parameter-name="server role" 2>/dev/null | tail -
1`
if [ "$SERVER_ROLE" = "active directory domain controller" ]; then
daemon_list="samba"
elif [ "$DAEMON" != "samba" ]; then
daemon_list=$DAEMON
fi
depend() {
need net
after firewall
}
start_samba() {
mkdir -p /var/run/samba
start-stop-daemon --start --quiet --exec /usr/sbin/samba --
}
stop_samba() {
start-stop-daemon --stop --quiet --pidfile /var/run/samba/samba.pid
}
start_smbd() {
Página 8 de 19
start-stop-daemon --start --quiet --exec /usr/sbin/smbd -- \
${smbd_options:-"-D"}
}
stop_smbd() {
start-stop-daemon --stop --quiet --pidfile /var/run/samba/smbd.pid
}
start_nmbd() {
start-stop-daemon --start --quiet --exec /usr/sbin/nmbd -- \
${nmbd_options:-"-D"}
}
stop_nmbd() {
start-stop-daemon --stop --quiet --pidfile /var/run/samba/nmbd.pid
}
start_winbindd() {
start-stop-daemon --start --quiet --exec /usr/sbin/winbindd -- \
$winbindd_options
}
stop_winbindd() {
start-stop-daemon --stop --quiet --pidfile /var/run/samba/winbindd.pid
}
start() {
for i in $daemon_list; do
ebegin "Starting $i"
start_$i
eend $?
done
}
stop() {
for i in $daemon_list; do
ebegin "Stopping $i"
stop_$i
eend $?
done
}
reload() {
for i in $daemon_list; do
ebegin "Reloading $i"
killall -HUP $i
eend $?
done
}
5.2 Agregar el servicio SAMBA a la lista de servicios que arrancan en el inicio
router01:~# rc-update add samba
* service samba added to runlevel default
Página 9 de 19
5.3 Reiniciar el servicio SAMBA
router01:~# rc-service samba restart
* Stopping samba ... [ ok ]
* Starting samba ... [ ok ]
5.4 Verificar publicación de servicio SAMBA
router01:~# smbclient -L localhost -U%
Domain=[EMPRESAY] OS=[Windows 6.1] Server=[Samba 4.5.10]
Sharename Type Comment
--------- ---- -------
sysvol Disk
IPC$ IPC IPC Service (Samba 4.5.10)
Domain=[EMPRESAY] OS=[Windows 6.1] Server=[Samba 4.5.10]
Server Comment
--------- -------
Workgroup Master
--------- -------
Paso 6 – Verificación del servicio de autenticación Kerberos La siguiente información fue tomada de: https://docs.oracle.com/cd/E24842_01/html/E23286/refer-11.html#scrolltoc El Centro de distribución de claves, o KDC, es el componente de Kerberos que se encarga de la emisión de credenciales. Para crear estas credenciales, se utiliza la información que está almacenada en la base de datos del KDC. Cada dominio necesita al menos dos KDC, uno que sea maestro y al menos uno que sea esclavo. Todos los KDC generan credenciales, pero únicamente el KDC maestro realiza los cambios en la base de datos del KDC El ticket es un paquete de información que se utiliza para transferir la identidad de un usuario a un servidor o servicio de manera segura. Un ticket es válido únicamente para un solo cliente y un servicio determinado en un servidor específico. El ticket contiene:
Nombre de principal del servicio
Nombre de principal del usuario
Dirección IP del host del usuario
Indicación de hora
Valor que define la duración del ticket
Copia de la clave de sesión
Página 10 de 19
6.1 Verificar versión del servidor Kerberos
router01:~# klist –V
Kerberos 5 version 1.14.3
6.2 Crear un ticket para la cuenta de usuario administrator
router01:~# kinit administrator
Password for [email protected]: Pa$$w0rd
Warning: Your password will expire in 41 days on Tue Jul 11 11:55:25 2017
6.3 Visualizar los tickets creados
router01:~# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]
Valid starting Expires Service principal
05/30/17 13:59:23 05/30/17 23:59:23 krbtgt/[email protected]
renew until 05/31/17 13:59:15
Nota: Para eliminar los tickets creados utilice kdestroy
Paso 7 – Pruebas de red
7.1 Verificar la función del servidor DC desde un equipo Windows
C:\Users\usuario01>nbtstat -a 192.168.50.1
Ethernet:
Dirección IP del nodo: [192.168.50.101] Id. de ámbito : []
Tabla de nombres de equipos remotos de NetBIOS
Nombre Tipo Estado
---------------------------------------------
ROUTER01 <00> Único Registrado
ROUTER01 <03> Único Registrado
ROUTER01 <20> Único Registrado
EMPRESAY <1B> Único Registrado
EMPRESAY <1C> Grupo Registrado
EMPRESAY <00> Grupo Registrado
__SAMBA__ <00> Grupo Registrado
__SAMBA__ <20> Grupo Registrado
Dirección MAC = 00-00-00-00-00-00
Página 11 de 19
7.2 Verificar que se puede leer la base de datos del AD
Se recomienda utilizar la herramienta ADExplorer (gratuita desde el sitio de Microsoft)
Página 12 de 19
Paso 8 – Verificación de la estructura creada.
5.1 Verificar opciones para contraseñas.
router01:~# samba-tool domain passwordsettings show
Password informations for domain 'DC=empresay,DC=com,DC=sv'
Password complexity: on
Store plaintext passwords: off
Password history length: 24
Minimum password length: 7
Minimum password age (days): 1
Maximum password age (days): 42
Account lockout duration (mins): 30
Account lockout threshold (attempts): 0
Reset account lockout after (mins): 30
5.2 Desconectar opciones de complejidad (opcional)
Nota: Esto solo para facilitar las contraseñas en el laboratorio (usando 123456 y así se evita que olviden
la contraseña), En la vida real se debe mantener una contraseña robusta router01:~# samba-tool domain passwordsettings set --complexity=off
Password complexity deactivated!
All changes applied successfully!
5.3 Definir el tamaño de la contraseña a 6 caracteres (opcional)
Nota: Esto solo para facilitar las contraseñas en el laboratorio (usando 123456 y así se evita que olviden la contraseña), En la vida real se debe mantener una contraseña robusta router01:~# samba-tool domain passwordsettings set --min-pwd-length=6
Minimum password length changed!
All changes applied successfully!
5.4 Desactivar la expiración de la cuenta de usuario Administrator (opcional)
Nota: Esto solo para facilitar las contraseñas en el laboratorio (usando 123456 y así se evita que olviden
la contraseña), En la vida real se debe mantener una contraseña robusta router01:~# samba-tool user setexpiry Administrator --noexpiry
Expiry for user 'Administrator' disabled.
Página 13 de 19
5.5 Verificar las opciones de contraseñas para el laboratorio (opcional)
router01:~# samba-tool domain passwordsettings show
Password informations for domain 'DC=empresay,DC=com,DC=sv'
Password complexity: off
Store plaintext passwords: off
Password history length: 24
Minimum password length: 6
Minimum password age (days): 1
Maximum password age (days): 42
Account lockout duration (mins): 30
Account lockout threshold (attempts): 0
Reset account lockout after (mins): 30
Nota: Otras para el mamejo de las contraseñas opciones son:
#Disable password history at the domain level. samba-tool domain passwordsettings set --history-length=0
#Disable password min-age at the domain level. samba-tool domain passwordsettings set --min-pwd-age=0
#Disable password max-age at the domain level. samba-tool domain passwordsettings set --max-pwd-age=0
Página 14 de 19
Tercera Parte: Creación de usuarios
Paso 9 – Creación de cuentas de usuario para SAMBA-AD En este paso se realizarán las siguientes acciones:
Crear un grupo de cuentas de usuario = grupo_pruebas
Crear la cuenta de usuario = usu00
Asignar pertenencia a la cuenta de usuario “usu00” al grupo “grupo_pruebas”
9.1 Listar las cuentas creadas en el proceso de aprovisionamiento
router01:~# samba-tool user list Administrator
krbtgt
Guest
9.2 Listar grupos de cuentas de usuarios predeterminados
router01:~# samba-tool group list
Allowed RODC Password Replication Group
Enterprise Read-Only Domain Controllers
Denied RODC Password Replication Group
Pre-Windows 2000 Compatible Access Windows Authorization Access Group
Certificate Service DCOM Access
Network Configuration Operators
Terminal Server License Servers
Incoming Forest Trust Builders
Read-Only Domain Controllers
Group Policy Creator Owners
Performance Monitor Users
Cryptographic Operators
Distributed COM Users
Performance Log Users
Remote Desktop Users
Account Operators
Event Log Readers
RAS and IAS Servers
Backup Operators
Domain Controllers
Server Operators
Enterprise Admins
Print Operators
Administrators
Domain Computers
Cert Publishers
DnsUpdateProxy
Domain Admins
Domain Guests
Schema Admins
Domain Users
Replicator
IIS_IUSRS
DnsAdmins
Guests
Users
9.3 Crear un grupo de cuentas de usuarios de dominio
router01:~# samba-tool group add grupo_pruebas Added group grupo_pruebas
Nota: Para eliminar un grupo de usuarios se utiliza en siguiente comando: samba-tool group delete grupo_pruebas
9.4 Listar el grupo de cuentas de usuarios de dominio recién creado
router01:~# samba-tool group list | grep gru*
Cryptographic Operators
grupo_pruebas
Página 15 de 19
9.5 Crear una cuenta de usuario de dominio
Digitar el siguiente comando en una sola línea: router01:~# samba-tool user add usu00 --given-name=usu00_name
--surname=usu00 [email protected] --login-shell=/bin/bash
New Password: 123456
Retype Password: 123456
User 'usu00' created successfully
Nota: Para eliminar una cuenta de usuario de dominio. samba-tool user add usu00
9.6 Listar la cuenta de usuario de dominio recién creada
router01:~# samba-tool user list usu00
Administrator
krbtgt
Guest
9.7 Agregar una cuenta de usuario de dominio al grupo de usuarios de dominio
router01:~# samba-tool group addmembers grupo_pruebas usu00
Added members to group grupo_pruebas
Nota: Para quitar la cuenta de usuario del grupo se utiliza el comando: samba-tool group remove members grupo_pruebas usu00
9.8 Listar las cuentas de usuario de dominio miembros del grupo de dominio
router01:~# samba-tool group listmembers grupo_pruebas
usu00
Página 16 de 19
Paso 10 – Probar la conexión de la cuenta de usuario de dominio creada
10.1 Enlazar la estación de trabajo Windows al Dominio AD
10.2 Probar el ingreso de la cuenta de dominio usu00 al dominio
Página 17 de 19
Paso 11 – Instalación de RSAT para administración
11.1 Descargar e instar RSAT en el cliente Windows.
Cada versión de Windows tiene su propia versión de RSAT
11.2 Crear los usuarios del escenario utilizado las RSAT
Utilizar la herramienta para creación de usuarios de cuentas de dominio
11.3 Comprobar que los usuarios pueden ingresar desde los clientes Windows.
11.4 Crear GPO a las cuentas de usuario de dominio
Bloquear el uso del panel de control y la ejecución del CMD.
11.5 Comprobar que funcionan las GPO
Ingrese con los usuarios uso01, usu02, etc.
11.6 Configurar el servidor DNS utilizando la herramienta de gestión DNS de las RSAT
Agregar los registros A: srv01, srv02 y srv03 Notas los registros eq01 y eq02 = son las dos computadoras Windows que yo utilicé para compartir usuarios
Página 18 de 19
Crear zona inversa con registros PTR
Pantalla de acceso a cuentas de usuario en la SAN del SAMBA AD
Página 19 de 19
Pantalla de edición de archivos desde equipo Windows 7 conectado al AD
Información recomendada: ver comandos https://www.tecmint.com/manage-samba4-active-directory-linux-command-line/ Videos con GPO https://www.youtube.com/watch?v=a5nqRSJdWag