En este post se describirá como instalar un Controlador de Dominio con los paquetes del Samba 4 de Sernet. Es muy importante recalcar que se deben seguir al pie de la letra los pasos que posteriormente se harán y NO SALTARSE NINGÚN PASO.
Bueno, comencemos:
1.- Instalar el GNU/Debian 7 en el Servidor/PC
Parámetros a establecer:
Nombre de Equipo: <Nombre NetBIOS en minúsculas del servidor, ¡NO EXCEDERSE DE 15 CARACTERES!>
Nombre FQDN del Dominio: lab.codesa.co.cu
Dirección IP: <Dirección IP del servidor>
Máscara de Subred: <Máscara de Subred del servidor>
Puerta de Enlace: <Puerta de Enlace del servidor>
Servidores DNS: <Al menos dos servidores DNS, uno local del dominio y otro, que es el general>
Establecer contraseña del Root del servidor.
Crear nuevo usuario.
NOTA: Como este post es para describir como se crea un Controlador de Dominio para el dominio LAB.CODESA.CO.CU, los datos referentes al nombre del servidor y la configuración de red son los siguientes:
Nombre NetBIOS: PDC-MASTER-1
Nombre FQDN: pdc-master-1.lab.codesa.co.cu
Dirección IP: 10.0.1.130
Máscara de Subred: 255.255.255.128
Puerta de Enlace: 10.0.1.129
DNS 1: 10.0.1.130 (ó 127.0.0.1)
DNS 2: 10.0.1.66
DNS 3: 10.0.1.67
Configuraciones posteriores de archivos
Contenido del archivo /etc/resolv.conf:
search lab.codesa.co.cu
nameserver 10.0.1.130
nameserver 10.0.1.67
Contenido del archivo /etc/hosts:
127.0.0.1 localhost localhost.localdomain
10.0.1.130 pdc-master-1.lab.codesa.co.cu pdc-master-1
10.0.1.66 pdc-master-2.lab.codesa.co.cu pdc-master-2
10.0.1.140 ws-lan-1.lab.codesa.co.cu ws-lan-1
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Contenido del archivo /etc/ntp.conf:
driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
fudge 127.127.1.0 stratum 10
server 127.127.1.0
restrict 127.0.0.1
restrict ::1
broadcast 10.0.1.63
broadcast 10.0.1.255
Contenido del archivo /etc/ssh/sshd_config:
Port 53527
Protocol 2
ListenAddress 10.0.1.130
AllowUsers bolodia
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 1m
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
PasswordAuthentication no
X11Forwarding no
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
KeepAlive yes
Subsystem sftp /usr/lib/sftp-server
UsePAM yes
2.- Configurar APT
Contenido del archivo /etc/apt/sources.list:
#deb cdrom:[Debian GNU/Linux 7.5.0 _Wheezy_ – Official amd64 CD Binary-1 20140426-13:37]/ wheezy main
deb file:///media/flash/debian-repo/debian wheezy main contrib non-free
deb file:///media/flash/debian-repo/debian-security wheezy/updates main contrib non-free
3.- Actualizar el software del servidor
# aptitude update && aptitude upgrade -y
4.- Reiniciar el servidor.
5.- Añadir el repo local de Sernet-Samba4 al APT.
Contenido del archivo /etc/apt/sources.list.d/sernet-samba4.list:
deb file:///media/flash/sernet-samba4-repo/4.1/debian wheezy main
6.- Modificar el comportamiento del APT con respecto a los repos añadidos:
Contenido del archivo /etc/apt/preferences.d/sernet-samba4.pref:
Package: *
Pin: origin «sernet-samba4»
Pin-Priority: 991
NOTA: Esto no sé si funciona, dado que el origen de la paquetería es el mismo.
7.- Instalación de paquetes necesarios para el Samba4:
# apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl quota fam libnet-ldap-perl bind9 dnsutils
NOTA 1: Aquí durante la configuración del paquete cliente de Kerberos se solicitarán datos. Yo puse los que creí correctos. De todas formas, creo que se puede configurar a posteriori.
NOTA 2: Es fundamental DESHABILITAR EL ARRANQUE del servicio bind9 si se va a utilizar el DNS interno de Samba4, dado que no permitirá cargar todos los servicios necesarios que se utilizan para el buen funcionamiento del Controlador de Dominio (DNS, RPC, Kerberos, SMB-CIFS, etc.):
# update-rc.d -f bind9 remove
# service bind9 stop
8.- Instalación del Samba 4 de Sernet:
Antes de refrescar la lista de paquetes se debe añadir la llave GPG del repositorio de Samba 4 de Sernet. Esto se hace de la siguiente manera:
# cat /media/flash/sernet-samba4-repo/sernet-build-key.gpg | apt-key add –
# apt-get update
Pero si la llave GPG está disponible en un servidor FTP, el comando es el siguente:
# wget –O- <Ruta del Archivo, ya sea HTTP o por FTP>/sernet-build-key.gpg | apt-key add –
# apt-get update
Completados estos pasos, ya se puede proceder a instalar los paquetes de Samba 4 de Sernet:
# apt-get install sernet-samba-ad libwbclient0 sernet-samba-client sernet-samba-winbind sernet-samba sernet-samba-libs sernet-samba-libsmbclient0
9.- Configurar comportamiento de Samba 4:
En el archivo /etc/default/sernet-samba cambiar lo siguiente:
SAMBA_START_MODE=»none»
por
SAMBA_START_MODE=»ad»
Y también el parámetro
SAMBA_RESTART_ON_UPDATE=»no»
por
SAMBA_RESTART_ON_UPDATE=»yes»
10.- Instalación de Samba4 como Controlador de Dominio.
10.1.- Realizar copia de seguridad del archivo /etc/samba/smb.conf antes de comenzar el proceso:
# mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
dado que los cambios que se hagan reescribirán el contenido del archivo.
10.2.- Aprovisionamiento del dominio:
SERNET Samba con DNS interno:
# samba-tool domain provision –realm=lab.codesa.co.cu –domain=LAB-CODESA –adminpass=’LaProbeta123‘ –server-role=dc –dns-backend=SAMBA_INTERNAL –function-level=2008_R2 –use-rfc2307 –use-xattr=yes –host-name=pdc-master-1 –host-ip=10.0.1.130
SERNET Samba con Bind como DNS:
# samba-tool domain provision –realm=lab.codesa.co.cu –domain= LAB-CODESA –adminpass=’ LaProbeta123‘ –server-role=dc –dns-backend=BIND9_DLZ –function-level=2008_R2 –use-rfc2307 –use-xattr=yes –host-name=pdc-master-1 –host-ip=10.0.1.130
10.3.- Configuraciones posteriores:
Una vez creado el dominio, hay que hacerle algunos cambios al archivo de configuración, que debe verse así, de momento:
[global]
workgroup = LAB-CODESA
realm = lab.codesa.co.cu
netbios name = PDC-MASTER-1
server role = active directory domain controller
idmap_ldb:use rfc2307 = yes
server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, smb
server services = -s3fs +dns
allow dns updates = secure
dns forwarder = 10.0.1.67
dcerpc endpoint servers = +winreg +srvsvc
interfaces = eth0 lo
template shell = /bin/false
log file = /var/log/samba/lab.codesa.co.cu.log
syslog = 0
vfs objects = full_audit
template homedir = /home/users/%ACCOUNTNAME%
[netlogon]
path = /srv/services/samba/data/sysvol/lab.codesa.co.cu/scripts
read only = No
[sysvol]
path = /srv/services/samba/data/sysvol
read only = No
El camino establecido para la carpeta Sysvol puede ser una partición específica del disco duro, otro disco duro o la misma partición donde está instalado el servicio Samba4 de Sernet. En el archivo /etc/fstab se debe añadir algunas características específicas:
/dev/sdb1 /srv/services/samba/data ext4 rw,errors=remount-ro,user_xattr,acl 1 1
Enfatizo que para que se carguen apropiadamente los permisos al estilo Windows, deben estar establecidas las características «user_xattr» y «acl» en la(s) partición(particiones) que utilizará Samba 4 para compartimentación de archivos. Si esto no se hace, una de las cosas que sin duda fallará es el Editor de Directivas de Grupo de las Herramientas de Administración de Windows.
Claro está que hay que crear la partición en el segundo disco duro (en caso de que se tenga, sino hay que hacerla en el que está o modificar las características de alguna partición existente), formatearla y luego montarla. Mover la carpeta “sysvol” ubicada dentro de /var/lib/samba en la nueva ubicación, o sea, en /srv/services/samba/data, y luego reiniciar el servicio para que los nuevos cambios tengan efecto, o sea:
# service sernet-samba-ad restart
En caso de que se quiera repetir el aprovisionamiento, primero tendrá que eliminar el archivo de configuración anterior de Samba (en mi caso, le hago una salva):
# mv /etc/samba/smb.conf /etc/samba/smb.conf.lab-codesa_anterior
Si tenemos una configuración de Samba 4 utilizando el DNS interno y queremos cambiar a Bind mediante el comando siguiente se puede hacer:
# samba_upgradedns –dns-backend=BIND9_DLZ
y deshabilitar la característica de Samba4 de asumir ser DNS en el archivo smb.conf, o sea:
server services = -s3fs +dns
sustituirla por
server services = -s3fs -dns
10.4.- Configurar Kerberos
Antes de ponerse a hacer cosas con la herramienta samba-tool, hay que configurar Kerberos. Primeramente se hace una copia de respaldo del archivo de configuración del servicio antes de hacer cualquier cosa, o sea:
# cp /etc/krb5.conf /etc/krb5.conf.orig
Luego modificar el archivo de manera tal que el contenido final sea este:
[libdefaults]
default_realm = LAB.CODESA.CO.CU
dns_lookup_realm = true
dns_lookup_kdc = true
[realms]
LAB.CODESA.CO.CU = {
kdc = 10.0.1.130
kdc = 10.0.1.66
admin_server = 10.0.1.130
}
[domain_realm]
.lab.codesa.co.cu = LAB.CODESA.CO.CU
lab.codesa.co.cu = LAB.CODESA.CO.CU
[login]
krb4_convert = true
krb4_get_tickets = false
Modificado dicho archivo, se procede a inicializar la contraseña del administrador mediante este comando:
# kinit administrator@LAB.CODESA.CO.CU
Password for administrator@LAB.CODESA.CO.CU:<Introducir contraseña>
Warning: Your password will expire in 41 days on Mon Dec 22 05:33:17 2014
Luego ejecutar el siguiente comando para ver la lista de tickets activos:
# klist -e
Ticket cache:/tmp/krb5cc_0
Default principal: administrator@LAB.CODESA.CO.CU
Valid starting Expires Service principal
10/11/2014 06:00 10/11/2014 16:00 krbtgt/LAB.CODESA.CO.CU@LAB.CODESA.CO.CU
renew until 11/11/2014 05:59, Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96
Ya en este punto estamos en condiciones de jugar con la herramienta samba-tool o usar las Herramienta de Administración Remota de Servidores (RSAT) desde un equipo o estación de trabajo con Windows que esté unida al dominio. Claro está que para que todos los cambios sean exitosos, se debe usar las credenciales del Administrador del Dominio.
10.5.- Uso de la herramienta CLI de Sernet-Samba4:
A continuación se muestra una serie de ejemplos de uso de la herramienta de Samba 4 en modo texto (CLI). En el caso de los ejemplos de DNS, el servidor destino es el crea Samba 4, ya sea interno o usando a Bind9 como backend de datos.
- Añadir un registro A al servicio DNS:
# samba-tool dns add 10.0.1.130 lab.codesa.co.cu pdc-master-1.lab.codesa.co.cu A ‘10.0.1.130’
- Añadir un registro MX al servicio DNS:
# samba-tool dns add 10.0.1.130 lab.codesa.co.cu lab.codesa.co.cu MX ‘mailserver.lab.codesa.co.cu 5’
- Creación de una zona inversa en el servicio DNS:
# samba-tool dns zonecreate 10.0.1.130 1.0.10.in-addr.arpa
- Creación de un registro PTR al servicio DNS:
# samba-tool dns add 10.0.1.130 1.0.10.in-addr.arpa 140.1.0.10.in-addr.arpa PTR ‘ws-1.lab.codesa.co.cu’
- Ver estado del servidor DNS:
root@pdc-master-1:~# samba-tool dns serverinfo 10.0.1.130
GENSEC backend ‘gssapi_spnego’ registered
GENSEC backend ‘gssapi_krb5’ registered
GENSEC backend ‘gssapi_krb5_sasl’ registered
GENSEC backend ‘sasl-DIGEST-MD5’ registered
GENSEC backend ‘schannel’ registered
GENSEC backend ‘spnego’ registered
GENSEC backend ‘ntlmssp’ registered
GENSEC backend ‘krb5’ registered
GENSEC backend ‘fake_gssapi_krb5’ registered
Using binding ncacn_ip_tcp:10.0.1.130[,sign]
Cannot do GSSAPI to an IP address
Got challenge flags:
Got NTLMSSP neg_flags=0x60898215
Password for [administrator@LAB.CODESA.CO.CU]: <Contraseña del Administrador>
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal – Initialising with flags:
Got NTLMSSP neg_flags=0x60088215
dwVersion : 0xece0205
fBootMethod : DNS_BOOT_METHOD_DIRECTORY
fAdminConfigured : FALSE
fAllowUpdate : TRUE
fDsAvailable : TRUE
pszServerName : PDC-MASTER-1.lab.codesa.co.cu
pszDsContainer : CN=MicrosoftDNS,DC=DomainDnsZones, DC=lab,DC=codesa,DC=co,DC=cu
aipServerAddrs : [‘10.0.1.130 (53)’, ‘10.0.1.130 (53)’, ‘10.0.1.130 (53)’]
aipListenAddrs : [‘10.0.1.130 (53)’, ‘10.0.1.130 (53)’, ‘10.0.1.130 (53)’]
aipForwarders : []
dwLogLevel : 0
dwDebugLevel : 0
dwForwardTimeout : 3
dwRpcPrototol : 0x5
dwNameCheckFlag : DNS_ALLOW_MULTIBYTE_NAMES
cAddressAnswerLimit : 0
dwRecursionRetry : 3
dwRecursionTimeout : 8
dwMaxCacheTtl : 86400
dwDsPollingInterval : 180
dwScavengingInterval : 0
dwDefaultRefreshInterval : 168
dwDefaultNoRefreshInterval : 168
fAutoReverseZones : FALSE
fAutoCacheUpdate : FALSE
fRecurseAfterForwarding : FALSE
fForwardDelegations : TRUE
fNoRecursion : FALSE
fSecureResponses : FALSE
fRoundRobin : TRUE
fLocalNetPriority : FALSE
fBindSecondaries : FALSE
fWriteAuthorityNs : FALSE
fStrictFileParsing : FALSE
fLooseWildcarding : FALSE
fDefaultAgingState : FALSE
dwRpcStructureVersion : 0x2
aipLogFilter : []
pwszLogFilePath : None
pszDomainName : lab.codesa.co.cu
pszForestName : lab.codesa.co.cu
pszDomainDirectoryPartition : DC=DomainDnsZones,DC=lab,DC=codesa,DC=co,DC=cu
pszForestDirectoryPartition : DC=ForestDnsZones,DC=lab,DC=codesa,DC=co,DC=cu
dwLocalNetPriorityNetMask : 0xff
dwLastScavengeTime : 0
dwEventLogLevel : 4
dwLogFileMaxSize : 0
dwDsForestVersion : 4
dwDsDomainVersion : 4
dwDsDsaVersion : 4
fReadOnlyDC : FALSE
- Ver información de una zona específica del servidor DNS:
Ejemplo 1 (Zona Directa):
root@pdc-master-1:~# samba-tool dns zoneinfo 10.0.1.130 lab.codesa.co.cu
GENSEC backend ‘gssapi_spnego’ registered
GENSEC backend ‘gssapi_krb5’ registered
GENSEC backend ‘gssapi_krb5_sasl’ registered
GENSEC backend ‘sasl-DIGEST-MD5’ registered
GENSEC backend ‘schannel’ registered
GENSEC backend ‘spnego’ registered
GENSEC backend ‘ntlmssp’ registered
GENSEC backend ‘krb5’ registered
GENSEC backend ‘fake_gssapi_krb5’ registered
Using binding ncacn_ip_tcp:10.0.1.130[,sign]
Cannot do GSSAPI to an IP address
Got challenge flags:
Got NTLMSSP neg_flags=0x60898215
Password for [administrator@LAB.CODESA.CO.CU]: <Contraseña del Administrador>
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal – Initialising with flags:
Got NTLMSSP neg_flags=0x60088215
pszZoneName : lab.codesa.co.cu
dwZoneType : DNS_ZONE_TYPE_PRIMARY
fReverse : FALSE
fAllowUpdate : DNS_ZONE_UPDATE_SECURE
fPaused : FALSE
fShutdown : FALSE
fAutoCreated : FALSE
fUseDatabase : TRUE
pszDataFile : None
aipMasters : []
fSecureSecondaries : DNS_ZONE_SECSECURE_NO_XFER
fNotifyLevel : DNS_ZONE_NOTIFY_LIST_ONLY
aipSecondaries : []
aipNotify : []
fUseWins : FALSE
fUseNbstat : FALSE
fAging : FALSE
dwNoRefreshInterval : 168
dwRefreshInterval : 168
dwAvailForScavengeTime : 0
aipScavengeServers : []
dwRpcStructureVersion : 0x2
dwForwarderTimeout : 0
fForwarderSlave : 0
aipLocalMasters : []
dwDpFlags : DNS_DP_AUTOCREATED DNS_DP_DOMAIN_DEFAULT DNS_DP_ENLISTED
pszDpFqdn : DomainDnsZones.lab.codesa.co.cu
pwszZoneDn : DC=lab.codesa.co.cu,CN=MicrosoftDNS,DC=DomainDnsZones,DC=lab,DC=codesa,DC=co,DC=cu
dwLastSuccessfulSoaCheck : 0
dwLastSuccessfulXfr : 0
fQueuedForBackgroundLoad : FALSE
fBackgroundLoadInProgress : FALSE
fReadOnlyZone : FALSE
dwLastXfrAttempt : 0
dwLastXfrResult : 0
Ejemplo 2 (Zona Inversa):
root@pdc-master-1:~# samba-tool dns zoneinfo 10.0.1.130 1.0.10.in-addr.arpa
GENSEC backend ‘gssapi_spnego’ registered
GENSEC backend ‘gssapi_krb5’ registered
GENSEC backend ‘gssapi_krb5_sasl’ registered
GENSEC backend ‘sasl-DIGEST-MD5’ registered
GENSEC backend ‘schannel’ registered
GENSEC backend ‘spnego’ registered
GENSEC backend ‘ntlmssp’ registered
GENSEC backend ‘krb5’ registered
GENSEC backend ‘fake_gssapi_krb5’ registered
Using binding ncacn_ip_tcp:10.0.1.130[,sign]
Cannot do GSSAPI to an IP address
Got challenge flags:
Got NTLMSSP neg_flags=0x60898215
Password for [administrator@LAB.CODESA.CO.CU]: <Contraseña del Administrador>
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal – Initialising with flags:
Got NTLMSSP neg_flags=0x60088215
pszZoneName : 1.0.10.in-addr.arpa
dwZoneType : DNS_ZONE_TYPE_PRIMARY
fReverse : TRUE
fAllowUpdate : DNS_ZONE_UPDATE_SECURE
fPaused : FALSE
fShutdown : FALSE
fAutoCreated : FALSE
fUseDatabase : TRUE
pszDataFile : None
aipMasters : []
fSecureSecondaries : DNS_ZONE_SECSECURE_NO_XFER
fNotifyLevel : DNS_ZONE_NOTIFY_LIST_ONLY
aipSecondaries : []
aipNotify : []
fUseWins : FALSE
fUseNbstat : FALSE
fAging : FALSE
dwNoRefreshInterval : 168
dwRefreshInterval : 168
dwAvailForScavengeTime : 0
aipScavengeServers : []
dwRpcStructureVersion : 0x2
dwForwarderTimeout : 0
fForwarderSlave : 0
aipLocalMasters : []
dwDpFlags : DNS_DP_AUTOCREATED DNS_DP_DOMAIN_DEFAULT DNS_DP_ENLISTED
pszDpFqdn : DomainDnsZones.lab.codesa.co.cu
pwszZoneDn : DC=1.0.10.in-addr.arpa,CN=MicrosoftDNS,DC=DomainDnsZones,DC=lab,DC=codesa,DC=co,DC=cu
dwLastSuccessfulSoaCheck : 0
dwLastSuccessfulXfr : 0
fQueuedForBackgroundLoad : FALSE
fBackgroundLoadInProgress : FALSE
fReadOnlyZone : FALSE
dwLastXfrAttempt : 0
dwLastXfrResult : 0
- Ver listado de las zonas definidas en un DNS:
root@pdc-master-1:~# samba-tool dns zonelist 10.0.1.130
GENSEC backend ‘gssapi_spnego’ registered
GENSEC backend ‘gssapi_krb5’ registered
GENSEC backend ‘gssapi_krb5_sasl’ registered
GENSEC backend ‘sasl-DIGEST-MD5’ registered
GENSEC backend ‘schannel’ registered
GENSEC backend ‘spnego’ registered
GENSEC backend ‘ntlmssp’ registered
GENSEC backend ‘krb5’ registered
GENSEC backend ‘fake_gssapi_krb5’ registered
Using binding ncacn_ip_tcp:10.0.1.130[,sign]
Cannot do GSSAPI to an IP address
Got challenge flags:
Got NTLMSSP neg_flags=0x60898215
Password for [administrator@LAB.CODESA.CO.CU]: <Contraseña del Administrador>
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal – Initialising with flags:
Got NTLMSSP neg_flags=0x60088215
3 zone(s) found
pszZoneName : 1.0.10.in-addr.arpa
Flags : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE
ZoneType : DNS_ZONE_TYPE_PRIMARY
Version : 50
dwDpFlags : DNS_DP_AUTOCREATED DNS_DP_DOMAIN_DEFAULT DNS_DP_ENLISTED
pszDpFqdn : DomainDnsZones.lab.codesa.co.cu
pszZoneName : test.lab.codesa.co.cu
Flags : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE
ZoneType : DNS_ZONE_TYPE_PRIMARY
Version : 50
dwDpFlags : DNS_DP_AUTOCREATED DNS_DP_DOMAIN_DEFAULT DNS_DP_ENLISTED
pszDpFqdn : DomainDnsZones.lab.codesa.co.cu
pszZoneName : _msdcs.lab.codesa.co.cu
Flags : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE
ZoneType : DNS_ZONE_TYPE_PRIMARY
Version : 50
dwDpFlags : DNS_DP_AUTOCREATED DNS_DP_FOREST_DEFAULT DNS_DP_ENLISTED
pszDpFqdn : ForestDnsZones.lab.codesa.co.cu
- Eliminar un registro del DNS:
Ejemplo 1 (Eliminando una entrada errónea):
root@pdc-master-1:~# samba-tool dns delete 10.0.1.130 lab.codesa.co.cu w7-test.lab.codesa.co.cu A ‘10.0.2.92’
GENSEC backend ‘gssapi_spnego’ registered
GENSEC backend ‘gssapi_krb5’ registered
GENSEC backend ‘gssapi_krb5_sasl’ registered
GENSEC backend ‘sasl-DIGEST-MD5’ registered
GENSEC backend ‘schannel’ registered
GENSEC backend ‘spnego’ registered
GENSEC backend ‘ntlmssp’ registered
GENSEC backend ‘krb5’ registered
GENSEC backend ‘fake_gssapi_krb5’ registered
Using binding ncacn_ip_tcp:10.0.1.130[,sign]
Cannot do GSSAPI to an IP address
Got challenge flags:
Got NTLMSSP neg_flags=0x60898215
Password for [administrator@LAB.CODESA.CO.CU]: <Contraseña del Administrador>
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal – Initialising with flags:
Got NTLMSSP neg_flags=0x60088215
Record deleted successfully
Ejemplo 2 (Eliminando una entrada que no pertenece a la base de datos de resolución directa):
root@pdc-master-1:~# samba-tool dns delete 10.0.1.130 lab.codesa.co.cu 92.2.0.10-in-addr.arpa. PTR ‘w7-test. lab.codesa.co.cu’
GENSEC backend ‘gssapi_spnego’ registered
GENSEC backend ‘gssapi_krb5’ registered
GENSEC backend ‘gssapi_krb5_sasl’ registered
GENSEC backend ‘sasl-DIGEST-MD5’ registered
GENSEC backend ‘schannel’ registered
GENSEC backend ‘spnego’ registered
GENSEC backend ‘ntlmssp’ registered
GENSEC backend ‘krb5’ registered
GENSEC backend ‘fake_gssapi_krb5’ registered
Using binding ncacn_ip_tcp:10.0.1.130[,sign]
Cannot do GSSAPI to an IP address
Got challenge flags:
Got NTLMSSP neg_flags=0x60898215
Password for [administrator@LAB.CODESA.CO.CU]: <Contraseña del Administrador>
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal – Initialising with flags:
Got NTLMSSP neg_flags=0x60088215
Record deleted successfully
- Añadir un usuario en el dominio:
root@pdc-master-1:~# samba-tool user add bolodia
New Password: <Contraseña del Usuario>
Retype Password: <Confirmar Contraseña del Usuario>
User ‘bolodia’ created successfully
- Añadir un usuario con los atributos UNIX en el dominio:
root@pdc-master-1:~# samba-tool user add bolodia –uid-number=500 –gid-number=500 –login-shell=/bin/false –uid=bolodia
New Password: <Contraseña del Usuario>
Retype Password: <Confirmar Contraseña del Usuario>
User ‘bolodia’ created successfully
- Eliminar un usuario del dominio:
root@pdc-master-1:~# samba-tool user delete bolodia
ldb_wrap open of secrets.ldb
Deleted user bolodia
- Ver lista de usuarios del dominio:
root@pdc-master-1:~# samba-tool user list
ldb_wrap open of secrets.ldb
bolodia
Administrator
krbtgt
Guest
- Añadir un grupo en el dominio:
root@pdc-master-1:~# samba-tool group add «Grupo Informatica»
ldb_wrap open of secrets.ldb
Added group Grupo Informatica
- Eliminando un grupo del dominio:
root@pdc-master-1:~# samba-tool group delete «Grupo Informatica»
ldb_wrap open of secrets.ldb
Deleted group Grupo Informatica
- Añadiendo miembros a un grupo del dominio:
root@pdc-master-1:~# samba-tool group addmembers «Grupo Informatica» bolodia
ldb_wrap open of secrets.ldb
Added members to group Grupo Informatica
- Listar miembros de un grupo del dominio:
root@pdc-master-1:~# samba-tool group listmembers «Grupo Informatica»
ldb_wrap open of secrets.ldb
bolodia
- Eliminar miembros de un grupo del dominio:
root@pdc-master-1:~# samba-tool group removemembers «Grupo Informatica» bolodia
ldb_wrap open of secrets.ldb
Removed members from group Grupo Informatica
- Desactivar regla de complejidad de las contraseñas en el dominio:
root@pdc-master-1:~# samba-tool domain passwordsettings set –complexity=off
Password complexity deactivated!
All changes applied successfully!
- Activar regla de complejidad de las contraseñas en el dominio:
root@pdc-master-1:~# samba-tool domain passwordsettings set –complexity=on
Password complexity activated!
All changes applied successfully!
- Establecer longitud mínima de las contraseñas en el dominio:
Ejemplo 1 (Longitud mínima de 6 caracteres):
root@pdc-master-1:~# samba-tool domain passwordsettings set –min-pwd-length=6
Minimum password length changed!
All changes applied successfully!
Ejemplo 2 (Longitud mínima de 8 caracteres):
root@pdc-master-1:~# samba-tool domain passwordsettings set –min-pwd-length=8
Minimum password length changed!
All changes applied successfully!
- Resetear la contraseña del Administrador del Dominio (o expiró o se nos olvidó)
root@pdc-master-1:~# samba-tool user setpassword Administrator
New Password:<Nueva contraseña>
Changed password OK
root@pdc-karas:~#





Esta bueno el articulo pero creo que seria bueno publicar uno con samba+ldap+bind9+ntp
Saludos.
Primero que todo, Samba 4 está pensado para reemplazar un PDC con AD de Microsoft. Como dije en el post, aún no está completo, pero está siendo usado en muchos ambientes de producción, de hecho, en la lista de Samba se pueden encontrar varios ejemplos.
Ah, un inconveniente que tiene el esquema del AD de Microsoft (a mi modo de ver), es que en muchos casos no utiliza una buena parte de los atributos que estamos acostumbrados a usar en OpenLDAP, dado que aparecen con otros nombres, aunque las RSAT de Windows permiten proporcionar una serie de datos.
Ahora bien, el caso que pide (Samba + LDAP + Bind9 + NTP) tiene un inconveniente: está creando un PDC al estilo de NT 4.0, no como un AD. En otras palabras, adiós a los GPOs (a no ser que se utilice herramientas de terceros), al uso de las RSAT (utilizar un gestor de terceros que permita crear los usuarios, así como añadirles los atributos correspondientes), utilizar gestores para la configuración del DNS.
Con esto no estoy diciendo que estoy en contra del uso de OpenLDAP, todo lo contrario, su uso encaja perfectamente en ambientes en los que hay que gestionar una cantidad enorme de usuarios.
En cuanto a NTP, bueno, en mi caso que dispongo de una conexión directa a Internet, se puede configurar para que sincronice con Servidores de Hora mundiales (yo uso los de América del Sur).
hola, trabaajo en una empresa que tiene un directorio de archivos con permisos de usuarios muy especificos en el arbol de carpetas, donde un usuario puede tener acceso de lectura en una carpeta y dentro otra carpeta donde puede tener permiso de escritura, manteniendo el de lectura en otra carpeta dentro de la principal porque esta pertenece a otro usuario. esta seguridad la logre con Samba 3 y acl, pero no podia poner las pc en el dominio, por ser W7. Samba 4 me da esa opcion, lo que no se si me dejara personalizar los permisos de la manera que necesito.
Usted cree que se puede lograr lo que necesito con Samba 4 sernet
Saludos, Amelia.
Ajá, lo que usted tiene es un servidor de archivos donde provee carpetas para usuarios específicos y para eso usas Samba 3 + ACL. Bueno, tanto en la Wiki de Samba como en la lista de distribución recomiendan no usar los dos roles (ADDC y Servidor de Archivos) en un mismo servidor Samba 4, aunque hay algunos que sostienen que con la versión 4.2 y en un pequeño entorno sí podría funcionar perfectamente. No obstante, yo me sumo a la mayoría.
Puede tener su servidor ADDC en Samba 4 normalmente y crear un servidor de archivos normal (Samba 3) que sea miembro de tu dominio. Así cuando lo configures lo puede poner a buscar las credenciales de usuario en el primero. Igual usando ACL para extender los permidos de archivo en sus directorios más allá de los clásicos de Linux.
🙂
Hola,
Muy bueno tu articulo. Tengo instalado Zentyal y estube buscando como tener un PDC por si me falla el primero, lo encontre en la Wiki de Zentyal..
Ahora busco quitar mi primer Zentyal y convertir mi PDC en Primario. No encuentro nada de esto…
Puedes ayudarme, publicando sobre este tema
Gracias
Saludos, hermano.
Gracias por su opinión. 🙂 Hum… Primero que todo le diré que Zentyal y yo como que no nos llevamos muy bien. Pero eso no quiere decir que le pueda decir algo sobre el tema. Si los paquetes de Samba que trae la versión que utiliza es de la 4.0 en adelante, puede que resuelva con las RSAT de Windows. Así fue como yo lo hice.
Todo comenzó cuando en una inspección de la OSRI en julio del año pasado me detectaron una vulnerabilidad en mi PDC, claro era un w2k3-svr que no tenía muchas posibilidades de estar al día, 🙂 . Eso me incomodó tanto que no pude dormir ese día. Entonces al día siguiente me dispuse a desaparecerlo de la faz de la Tierra, monté un segundo DC en Samba 4 de Sernet, lo incluí en el dominio, luego usando las RSAT en mi PC le pasé los roles principales a él (Global Catalog y Master de Operaciones/Infraestructura). Seguidamente tumbé el w2k3-svr y monté otro Samba 4 con la dirección IP del difunto e hice nuevamente las mismas operaciones para devolver el entorno a su estado inicial (esto fue porque en todas las estaciones de trabajo el primer DNS que tienen es la IP del anterior servidor). Los usuarios ni notaron el cambio… inicialmente, porque hay algunos detalles que tengo que pulir aún.
Con esto ya tengo dos PDCs funcionando perfectamente, con replicación multimaster y todas las demás características.
Espero le ayude la sugerencia.
Hola, quisiera saber que rol cumple el servicio ssh en la complementación del samba.
Saludos, Fernando.
Bueno, ¿cómo vas a administrar el servidor remotamente? Para eso es SSH. Samba 4 contiene varios servicios (los típicos de un AD de Microsoft).
🙂
Interesante artículo.
Buenos dias hector, estoy en proceso de migracion de los servidores que tengo a proxmox ve 4.3. Tengo un PDC en Samba 4, con su DNS interno, actualmente lo administro por una estacion con windows server 2008, todos mis servicios como el correo, jabber y proxy se autentican con el, y los cambios del DNS tambien los hago por windows, ahora me gustaria que me ayudaras a decidir cual seria la mejor opcion para poder migrar sin perder la informacion que tengo en samba 4(PDC+DNS).
Tengo la situacion que quiero reinstalar PVE 4.3 en el server donde esta Samba4, pero primero tengo que garantizar que sigan autenticandose los usuarios.
Saludos, Fredy.
Primero que todo, si lo que tienes en un Samba 4, es más fácil la migración, solamente tienes que salvar toda la estructura del servicio, así no perderás ni la configuración, ni las bases de datos que crea.
Con respecto a lo de reinstalar el nodo, pues es hasta más fácil. Sólo tienes que hacerle un backup al EV (entorno virtual) y ya, luego copiar ese backup a un medio externo. Si los demás servidores son EVs, pues, el mismo procedimiento con ellos.
Espero te sirva, hermano.
🙂
Mano muy buen articulo debo harcerle una consulta yo tengo acltulamente montado samba4 con bind9 todo funcionando ok haciendo pruebas de test pero me ha frustrado el hecho de no poder validar squid3 con samba4 sin mencionar otros servicios necesarios en nuestra red si ha tenido alguna experiencia he buscado en los confines de la tierra y no e hallado respuesta que a este problema e probado una biblioteca de manuales pero la verdad hablan poco sobre validar usuarios con squid3 y samba4 una ayuda y un agradecimiento de antemano un defensor del Software Libre
Saludos, Norge.
Primero que todo, gracias por su comentario.
Bueno, le diré que este artículo está hecho sobre Samba 4.1/4.2, y actualmente ya está en la versión 4.6.0. Desgraciadamente, a partir de la versión 4.3, SerNet no publica sus paquetes en su repo, por lo que la recomendación es compilarlo a partir de sus paquetes fuente.
En cuanto a su problema, sí se puede hacer. Si tiene acceso a Internet, le recomiendo baje el cliente de Telegram (o conectarse al sitio del mismo), regístrese, acceda al canal https://t.me/sysadmincuba, y póngase en contacto con Arian molina (alias @linuxcuba), que es uno de los que más a trabajando con Samba 4 y la integración de servicios.
No obstante, también puede acceder al sitio siguiente:
https://www.sysadminsdecuba.com
donde podrá encontrar artículos muy interesantes.
Espero le sirva. 🙂