Active Directory Domain Controller con Samba4+Bind9 y Delegación de zona #Actualizado

Instalar un PDC con delegación de zona con Samba4 es tan fácil como seguir el siguiente procedimiento:

Nota: Asumimos que usted posee una máquina virtual/contenedor de proxmox actualizado con dist-upgrade, si no es así, por favor hágalo antes de comenzar.

Nota2: En este entorno se utilizará como ejemplo el dominio: "INUTIL.CU", y el password de administración será: "Admin*123"

0 → Instalar utilitarios necesarios

# apt install mc dnsutils net-tools openssh-server

1 → Editar el archivo /etc/hosts y dejarlo de la siguiente manera, en dependencia de los nombres de host que tengamos.

# nano /etc/hosts

127.0.0.1   pdc.inutil.cu       pdc
127.0.0.1   tiempo.inutil.cu    tiempo
# Our servers
10.10.1.1   gw.inutil.cu        gw
10.10.1.2   dns.inutil.cu       dns
10.10.1.3   mail.inutil.cu      mail
10.10.1.5   proxy.inutil.cu     proxy
10.10.1.6   jabber.inutil.cu    jabber
10.10.1.7   mx.inutil.cu        mx

2 → Configuración de la red

# nano /etc/network/interfaces

# The loopback network interface
auto lo eth0
iface lo inet loopback

iface eth0 inet static
    address 10.10.1.4
    netmask 255.255.255.0
    gateway 10.10.1.1
    dns-nameservers 127.0.0.1
    dns-domain inutil.cu
    dns-search inutil.cu
allow-hotplug eth0

Y el resolv.conf:

# nano /etc/resolv.conf

search inutil.cu
domain inutil.cu
nameserver 127.0.0.1
nameserver 10.10.1.2

3 → Instalar servicio DHCP

# apt install isc-dhcp-server

Editar /etc/default/isc-dhcp-server de la siguiente manera:

# nano /etc/default/isc-dhcp-server

# Defaults for isc-dhcp-server (sourced by /etc/init.d/isc-dhcp-server)

# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
#DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf

# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
DHCPDv4_PID=/var/run/dhcpd.pid
#DHCPDv6_PID=/var/run/dhcpd6.pid

# Additional options to start dhcpd with.
#   Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#   Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="eth0"
INTERFACESv6=""

Guardar los cambios, y hacer un backup de dhcpd.conf.

# mv /etc/dhcp/dhcpd.conf{,.orig}

Crear archivo nuevo dhcpd.conf y dejarlo de la siguiente manera:

# nano /etc/dhcp/dhcpd.conf

autoritative;
ddns-update-style none;
default-lease-time 600;
log-facility local7;

subnet 10.10.1.0 netmask 255.255.255.0 {
    option domain-name "inutil.cu";
    option domain-name-servers 10.10.1.4;
    range 10.10.1.150 10.10.1.230;
    option routers 10.10.1.253;
    option subnet-mask 255.255.255.0;
    option broadcast-address 10.10.1.255;
    option netbios-name-servers 10.10.1.4;
    option netbios-node-type 8;
    get-lease-hostnames true;
    use-host-decl-names true;
    option ntp-servers 10.10.1.4;
    deny unknown-clients;
}
# Nota: Podemos añadir cuantas PCs necesitemos basados en su MAC address
host test {
    option host-name "test.inutil.cu";
    hardware ethernet 00:0c:29:ab:b1:62;
    fixed-address 10.10.1.151;
}

Para probar que la configuración está bien ejecutamos:

# dhcpd -t

Debe decir algo así:

Internet Systems Consortium DHCP Server 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Config file: /etc/dhcp/dhcpd.conf
Database file: /var/lib/dhcp/dhcpd.leases
PID file: /var/run/dhcpd.pid

Si el mensaje es distinto, tenemos algún error en la configuración y debemos revisarla nuevamente.

Reiniciando el servicio y chequear su estado:

# systemctl restart isc-dhcp-server
# systemctl status isc-dhcp-server

4 → Instalar servicio NTP

# apt install ntp

Editar el archivo de configuración y adaptarlo a nuestras necesidades, pero debemos poner obligatoriamente:

# nano /etc/ntp.conf

broadcast 10.10.1.255

Guardamos y reiniciamos el servicio ntp. Recordemos que después de compilar samba debemos hacer algunos ajustes a ntp, lo cual veremos más adelante.

# /etc/init.d/ntp restart

Antes de continuar debemos deshabilitar IPv6 añadiendo al final del fichero /etc/sysctl.conf:

# nano /etc/sysctl.conf

Deshabilitando IPv6

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1

Ejecutar:

# sysctl -p

Y reiniciamos el sistema.

# reboot

Ahora necesitaremos algunos paquetes que intervienen en el proceso de compilación de Samba 4 y Bind 9.

# apt install acl attr autoconf bison nettle-dev build-essential debhelper dnsutils docbook-xml docbook-xsl flex gdb krb5-user libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev libcap-dev libcups2-dev libgnutls28-dev libjson-perl libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl libpopt-dev libreadline-dev perl perl-modules pkg-config python-all-dev python-dev python-dnspython python-crypto python-gpgme python-markdown python3-markdown python3-dev lmdb-utils xsltproc zlib1g-dev rcconf ccze mlocate telnet libssl-dev libgeoip-dev libkrb5-dev libxml2-dev libdb-dev liblmdb-dev libjansson-dev libgpgme-dev libarchive-dev ldb-tools libldb-dev libldb1 python-ldb python-ldb-dev

Imágenes de kerberos:

0- DOMINIO.CU
1- pdc.tudominio.cu
2- pdc.tudominio.cu

5 → Compilando y configurando Bind 9

# cd /opt
# wget -c https://ftp.isc.org/isc/bind9/cur/9.11/bind-9.11.5-P1.tar.gz

# groupadd -g 23 bind
# mkdir -p /var/run/named
# useradd -g bind -u 23 -d /var/run/named -M -s /sbin/nologin bind
# chown bind:bind /var/run/named

# tar -zxvf bind-9.11.5-P1.tar.gz
# cd bind-9.11.5-P1

./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc/bind --localstatedir=/var --enable-threads --enable-largefile --with-libtool --enable-shared --enable-fixed-rrset --enable-static --with-openssl=/usr --with-gssapi=/usr --with-gnu-ld --with-dlz-bdb=yes --with-dlz-filesystem=yes --with-dlz-ldap --with-dlz-stub=yes --with-dlopen=yes --with-randomdev=/dev/urandom --with-geoip=/usr --with-ecdsa --with-libxml2 CFLAGS=-fno-strict-aliasing

# make
# make install

# mkdir /var/log/bind9
# chown bind:bind /var/log/bind9
# cd /var/log/bind9
# touch bind.err bind.info bind.warn bind.log 
# chmod -R 664 *; chown -R root:bind *

# mkdir -p /var/cache/bind
# chmod 775 /var/cache/bind; chown -R bind:bind /var/cache/bind

# cd /etc/bind/
# rndc-confgen -a
# chmod 644 /etc/bind/rndc.key
# chown bind /etc/bind/rndc.key

Creamos el archivo named.conf con el siguiente contenido:

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
options {
listen-on-v6 { none; };
auth-nxdomain yes;
allow-query { any; };
allow-update { any; };
dnssec-enable no;
dnssec-validation no;
empty-zones-enable no;
notify yes;
also-notify { 10.10.1.2;};
//allow-transfer { 10.10.1.3;}; // si va a ser transferencia de zona a otro servidor de dns esclavo
notify-source 10.10.1.2;
transfer-source 10.10.1.2;
recursion yes;
allow-recursion { any; };
forwarders { 200.55.128.3; 200.55.128.4;};
tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab";
directory "/var/cache/bind";
};
include "/var/lib/samba/bind-dns/named.conf";
include "/etc/bind/rndc.key";

logging {
  channel err {
      file "/var/log/bind9/bind.err";
      severity error;
      print-time yes;
      print-category yes;
      print-severity yes;
  };
  channel info {
      file "/var/log/bind9/bind.info";
      severity info;
      print-time yes;
      print-category yes;
      print-severity yes;
  };
  channel warn {
      file "/var/log/bind9/bind.warn";
      severity warning;
      print-time yes;
      print-category yes;
      print-severity yes;
  };
  channel log {
      file "/var/log/bind9/bind.log";
      severity debug 1;
      print-time yes;
      print-category yes;
      print-severity yes;
  };
  category default { err; info; warn; log; };
};

Para chequear que la configuración esta bien:

# named-checkconf

Y pasamos a compilar Samba4 pues necesitaremos hacer algunos arreglos a bind contra samba antes de continuar.

6 → Compilando y configurando Samba 4

Descargar:

# cd /opt
# wget -c https://download.samba.org/pub/samba/samba-latest.tar.gz

# tar -zxvf samba-latest.tar.gz
# cd samba-latest

# ./configure -p --enable-fhs --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-debug --enable-selftest --cross-answers --cross-execute --disable-cups --disable-iprint --sbindir=/usr/sbin --mandir=/usr/share/man -j4 -v -p --enable-selftest --without-systemd --with-json-audit --enable-gnutls

# make
# make install

Probando las configuraciones:

# smbd -b | grep "CONFIGFILE"
CONFIGFILE: /etc/samba/smb.conf
# smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
LOCKDIR: /var/lock/samba
STATEDIR: /var/lib/samba
CACHEDIR: /var/cache/samba
PRIVATE_DIR: /var/lib/samba/private

Provisionamos el directorio

# samba-tool domain provision --use-rfc2307 --interactive

O podemos usar:

samba-tool domain provision --dns-backend=BIND9_DLZ --realm=INUTIL.CU \
--domain=INUTIL --server-role=dc --function-level=2008_R2 \
--adminpass=Admin*123

# samba-tool domain provision --use-rfc2307 --interactive
Realm [INUTIL.CU]:
 Domain [INUTIL]:
 Server Role (dc, member, standalone) [dc]:
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
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=inutil,DC=cu
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=inutil,DC=cu
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
See /var/lib/samba/private/named.conf for an example configuration include file for BIND
and /var/lib/samba/private/named.txt for further documentation required for secure DNS updates
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba AD has been generated at /var/lib/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba AD server will be ready to use
Server Role:           active directory domain controller
Hostname:              pdc
NetBIOS Domain:        INUTIL
DNS Domain:            inutil.cu
DOMAIN SID:            S-1-5-21-1746660850-1884490242-2990293921

Permisos a la configuración de bind en la carpeta de samba:

# chgrp bind /var/lib/samba/private/dns.keytab
# chmod g+r /var/lib/samba/private/dns.keytab

Copiar el krb5.conf del samba4 al sistema

# mv /etc/krb5.conf{,.orig}
# cp /var/lib/samba/private/krb5.conf /etc/

Creamos el archivo:

# nano /var/lib/samba/private/named.conf.update.static

Con el siguiente contenido:

grant *.inutil.cu wildcard *.1.10.10.in-addr.arpa. PTR TXT;
grant local-ddns zonesub any;

Creamos la carpeta de samba:

# mkdir /var/run/samba

Cambiamos el propietario y el grupo a /var/lib/samba/bind-dns:

# chown -R root:bind /var/lib/samba/bind-dns
# chmod 775 -R /var/lib/samba/bind-dns
# mkdir -p /var/run/named
# chmod 775 -R /var/run/named
# chown root:bind /var/run/named

Y la carpeta de NTP:

# mkdir /var/lib/samba/ntp_signd
# chgrp ntp /var/lib/samba/ntp_signd/
# chmod 750 /var/lib/samba/ntp_signd/

Ahora copiamos a /etc/init.d/ los scripts de inicio de bind9 y samba. Los cuales extraeremos de los respectivos paquetes en el repositorio.
Después de copiarlos a /etc/init.d debemos hacerlos ejecutables y ponerlos a que inicien con el sistema.

# cd /var/cache/apt/archives

# apt install -dy samba bind9

# dpkg -x samba_2%3a4.5.12+dfsg-2+deb9u4_amd64.deb .
# dpkg -x bind9_1%3a9.10.3.dfsg.P4-12.3+deb9u4_amd64.deb .

# cd etc/init.d/
# chmod -R 755 *
# mv * /etc/init.d/

# cd /etc/init.d
# update-rc.d bind9 defaults
# update-rc.d samba defaults
# update-rc.d samba-ad-dc defaults
# update-rc.d nmbd defaults
# update-rc.d smbd defaults

7 → Adaptando un poco más el servicio NTP a trabajar con Samba4

Editar el archivo de configuración y adaptarlo a nuestras necesidades, pero debemos poner obligatoriamente:

# nano/etc/ntp.conf
logfile /var/log/ntpd.log
broadcast 10.10.1.255
ntpsigndsocket /var/lib/samba/ntp_signd/

# Comentamos las lineas restrict y ponemos así solamente la que dice:

restrict -4 default kod notrap nomodify nopeer noquery mssntp

restrict default mssntp
restrict tiempo.empresa.cu mask 255.255.255.255 nomodify notrap nopeer noquery
# Donde tiempo.empresa.cu es el servidor de tiempo de tu empresa

Y reiniciamos el sistema, para comprobar de que iniciaron todos los scripts bien:

# reboot

Ahora probaremos si funciona:

# kinit [email protected]
Password for [email protected]:
Warning: Your password will expire in 41 days on Sat 07 Apr 2018 07:56:41 PM CDT

Ejecutamos klist:

# klist

Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]

Valid starting       Expires              Service principal
02/24/2018 19:38:37  02/25/2018 05:38:37  krbtgt/[email protected]
    renew until 02/25/2018 19:38:32

Ahora crearemos la zona inversa del DNS:

# samba-tool dns zonecreate addc 1.10.10.in-addr.arpa
# samba-tool dns add addc 1.10.10.in-addr.arpa 4 PTR addc.inutil.cu
# samba-tool dns add localhost 1.10.10.in-addr.arpa 4 PTR inutil.cu.

Record del servidor dns:

# samba-tool dns add localhost inutil.cu dns A 10.10.1.2 -U 'administrator'%'Admin*123'
# samba-tool dns add localhost 1.10.10.in-addr.arpa 2 PTR dns.inutil.cu. -U 'administrator'%'Admin*123'

Record del servidor de correo:

# samba-tool dns add localhost inutil.cu mail A 10.10.1.3 -U 'administrator'%'Admin*123'
# samba-tool dns add localhost 1.10.10.in-addr.arpa 3 PTR mail.inutil.cu. -U 'administrator'%'Admin*123'
# samba-tool dns add localhost inutil.cu @ MX 'mail.inutil.cu 10' -U 'administrator'%'Admin*123'
# samba-tool dns add localhost 1.10.10.in-addr.arpa @ MX 'mail.inutil.cu 10' -U 'administrator'%'Admin*123'

Record del servidor proxy:

# samba-tool dns add localhost inutil.cu proxy A 10.10.1.5 -U 'administrator'%'Admin*123'
# samba-tool dns add localhost 1.10.10.in-addr.arpa 5 PTR proxy.inutil.cu. -U 'administrator'%'Admin*123'

Record del servidor jabber:

# samba-tool dns add localhost inutil.cu jabber A 10.10.1.6 -U 'administrator'%'Admin*123'
# samba-tool dns add localhost 1.10.10.in-addr.arpa 6 PTR jabber.inutil.cu. -U 'Administrator'%'Admin*123'

Podemos añadir cuantos records necesitemos, por ahora solo añadiremos dns, correo, proxy y jabber por ahora.

Y probamos:

# samba-tool dns query 127.0.0.1 inutil.cu @ ALL
Password for [[email protected]]:
  Name=, Records=3, Children=0
    SOA: serial=1, refresh=900, retry=600, expire=86400, minttl=3600, ns=pdc.inutil.cu., email=hostmaster.inutil.cu. (flags=600000f0, serial=1, ttl=3600)
    NS: pdc.inutil.cu. (flags=600000f0, serial=1, ttl=900)
    A: 10.10.1.4 (flags=600000f0, serial=1, ttl=900)
  Name=_msdcs, Records=0, Children=0
  Name=_sites, Records=0, Children=1
  Name=_tcp, Records=0, Children=4
  Name=_udp, Records=0, Children=2
  Name=DomainDnsZones, Records=0, Children=2
  Name=ForestDnsZones, Records=0, Children=2
  Name=pdc, Records=1, Children=0
    A: 10.10.1.4 (flags=f0, serial=1, ttl=900)

Ahora debemos actualizar el fichero de configuración de Samba 4, y dejarlo de la siguiente manera:

# Global parameters
[global]
netbios name = PDC
realm = INUTIL.CU
server role = active directory domain controller
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
workgroup = INUTIL
idmap_ldb:use rfc2307 = yes
nsupdate command = /usr/bin/nsupdate -g
ldap server require strong auth = No
log level = 1
log file = /var/log/samba/samba.log
max log size = 50

[netlogon]
path = /var/lib/samba/sysvol/inutil.cu/scripts
read only = No

[sysvol]
path = /var/lib/samba/sysvol
read only = No

La directiva “nsupdate command” lo que hace es utilizar el dns dinámico. Ahora comprobamos si actualiza dinámicamente el dns:

# samba_dnsupdate --verbose --all-names

Después de reiniciar ejecutamos netstat para ver si todo ocurrió bien:

# netstat -lptun

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:464             0.0.0.0:*               LISTEN      494/samba
tcp        0      0 10.10.1.4:53            0.0.0.0:*               LISTEN      449/named
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      449/named
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      446/sshd
tcp        0      0 0.0.0.0:88              0.0.0.0:*               LISTEN      494/samba
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      449/named
tcp        0      0 0.0.0.0:636             0.0.0.0:*               LISTEN      491/samba
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      493/smbd
tcp        0      0 0.0.0.0:49152           0.0.0.0:*               LISTEN      487/samba
tcp        0      0 0.0.0.0:49153           0.0.0.0:*               LISTEN      487/samba
tcp        0      0 0.0.0.0:49154           0.0.0.0:*               LISTEN      487/samba
tcp        0      0 0.0.0.0:3268            0.0.0.0:*               LISTEN      491/samba
tcp        0      0 0.0.0.0:3269            0.0.0.0:*               LISTEN      491/samba
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      491/samba
tcp        0      0 0.0.0.0:135             0.0.0.0:*               LISTEN      487/samba
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      493/smbd
tcp6       0      0 :::464                  :::*                    LISTEN      494/samba
tcp6       0      0 :::22                   :::*                    LISTEN      446/sshd
tcp6       0      0 :::88                   :::*                    LISTEN      494/samba
tcp6       0      0 :::636                  :::*                    LISTEN      491/samba
tcp6       0      0 :::445                  :::*                    LISTEN      493/smbd
tcp6       0      0 :::49152                :::*                    LISTEN      487/samba
tcp6       0      0 :::49153                :::*                    LISTEN      487/samba
tcp6       0      0 :::49154                :::*                    LISTEN      487/samba
tcp6       0      0 :::3268                 :::*                    LISTEN      491/samba
tcp6       0      0 :::3269                 :::*                    LISTEN      491/samba
tcp6       0      0 :::389                  :::*                    LISTEN      491/samba
tcp6       0      0 :::135                  :::*                    LISTEN      487/samba
tcp6       0      0 :::139                  :::*                    LISTEN      493/smbd
udp        0      0 10.10.1.4:53            0.0.0.0:*                           449/named
udp        0      0 127.0.0.1:53            0.0.0.0:*                           449/named
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1965/dhcpd
udp        0      0 10.10.1.4:88            0.0.0.0:*                           494/samba
udp        0      0 0.0.0.0:88              0.0.0.0:*                           494/samba
udp        0      0 10.10.1.4:123           0.0.0.0:*                           444/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           444/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           444/ntpd
udp        0      0 10.10.1.4:137           0.0.0.0:*                           488/samba
udp        0      0 10.10.1.255:137         0.0.0.0:*                           488/samba
udp        0      0 0.0.0.0:137             0.0.0.0:*                           488/samba
udp        0      0 10.10.1.4:138           0.0.0.0:*                           488/samba
udp        0      0 10.10.1.255:138         0.0.0.0:*                           488/samba
udp        0      0 0.0.0.0:138             0.0.0.0:*                           488/samba
udp        0      0 10.10.1.4:389           0.0.0.0:*                           492/samba
udp        0      0 0.0.0.0:389             0.0.0.0:*                           492/samba
udp        0      0 10.10.1.4:464           0.0.0.0:*                           494/samba
udp        0      0 0.0.0.0:464             0.0.0.0:*                           494/samba
udp        0      0 0.0.0.0:47625           0.0.0.0:*                           1965/dhcpd
udp6       0      0 :::88                   :::*                                494/samba
udp6       0      0 :::123                  :::*                                444/ntpd
udp6       0      0 :::10510                :::*                                1965/dhcpd
udp6       0      0 :::389                  :::*                                492/samba
udp6       0      0 :::464                  :::*                                494/samba

8 → Ahora veamos algunas opciones

Nivel funcional del dominio:

# samba-tool domain level show

Si deseamos eliminar la complejidad de la contraseña:

# samba-tool domain passwordsettings set --complexity=off

Cantidad de caractéres mínimos para la contraseña

# samba-tool domain passwordsettings set --min-pwd-length=6

Añadir un usuario al AD de samba es tan sencillo como:

# samba-tool user create nombre-usuario password OPCIONES

Creando un usuario como ejemplo:

# samba-tool user create leslie.leon password --given-name="Leslie" --surname="León Sinclair" --department="Dpto Informatica" [email protected]

Si por alguna razon necesitamos deshabilitar a algún usuario:

# samba-tool user disable pepe.perez

O habilitarlo:

# samba-tool user enable pepe.perez

Ahora crearemos un usuario que manejará las conexiones entre el AD y los servicios:

# samba-tool user create adminad 'admin+123**'

Que la cuenta no expire:

# samba-tool user setexpiry adminad --noexpiry

Lo agregamos a todos los grupos del AD:

# samba-tool group addmembers "administrators" adminad
# samba-tool group addmembers "Domain Admins" adminad
# samba-tool group addmembers "schema admins" adminad
# samba-tool group addmembers "enterprise admins" adminad
# samba-tool group addmembers "group policy creator owners" adminad

Para los que requieran acceso a internet crearemos un grupo:

# samba-tool group add navegacion_internet
# samba-tool group addmembers "navegacion_internet" leslie.leon

Para los que no requieran acceso a internet crearemos otro grupo:

# samba-tool group add navegacion_nacional
# samba-tool group addmembers "navegacion_nacional" pepe.perez

Lo mismo realizaremos para el correo:

# samba-tool group add correo_internet
# samba-tool group addmembers "correo_internet" leslie.leon

# samba-tool group add correo_nacional
# samba-tool group addmembers "correo_nacional" pepe.perez

Otras opciones

Si deseamos cambiar el password del usuario y que él lo defina en el próximo login:

# samba-tool user setpassword pepe --newpassword='Passw0rd' --must-change-at-next-login

Para ver todos los usuarios del dominio:

# wbinfo -u

Para ver todos los grupos del dominio:

# wbinfo -g

Y listo, a unir máquinas de windows/linux al dominio.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 3.7 / 5. Recuento de votos: 3

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

7 comentarios

  1. Google Chrome 75.0.3770.100 Google Chrome 75.0.3770.100 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36

    buen día,
    ya han instalado samba4-10 con python3 que me puedan ayudar.
    o si conocen de un tutorial.
    gracias.

  2. Google Chrome 72.0.3626.121 Google Chrome 72.0.3626.121 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36

    Fantástico tutorial, enhorabuena, quería hacerte una consulta, he tenido asi funcionando mi dominio Ubuntu+samba4, tengo dos dc en mi oficina y ahora he desplegado dos delegaciones mas, iba todo bien y de repente desde hace unos 5 días ha empezado a pararse el servicio, dice: «no se puede poner en contacto con el siguiente controlador de dominio:xx.domain.loc. El servidor no es funcional»
    el caso es que si reinicio los servicios samba-ad-dc empieza a funcionar de nuevo, otros 20 min que vuelve a hacer lo mismo, a ver si me das una pista

    Gracias
    Oscar

    • Firefox 67.0 Firefox 67.0 GNU/Linux x64 GNU/Linux x64
      Mozilla/5.0 (X11; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0

      Hola leslie encontre esta ayuda y probando me encontre que cuando compilo el bind9 me dice que la libreria de python faltan y que se puede deshabilitar con –disable-python ya probe eso y no resuelvo. Que otra cosa puedo hacer.

      Saludos

      • Google Chrome 75.0.3770.100 Google Chrome 75.0.3770.100 Windows 10 x64 Edition Windows 10 x64 Edition
        Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36

        Colega a mi me paso lo mismo, y me di cuenta que alli te sugieren que debes instalar, yo las puse las dos apt install python-ply python3-ply y así compiló perfectamente.

  3. Firefox 60.0 Firefox 60.0 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

    otro mensage de error despus de compilar el bind:

    root@pdc:/etc/bind# named-checkconf
    /etc/bind/named.conf:24: open: /var/lib/samba/bind-dns/named.conf: file not found

  4. Firefox 60.0 Firefox 60.0 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

    Me da este error despues de compilar, cuando doy smbd -b | grep «CONFIGFILE»

    root@dc1:~# smbd -b | grep «CONFIGFILE»
    smbd: /usr/lib/x86_64-linux-gnu/libndr.so.0: version `NDR_0.0.9′ not found (required by /usr/lib/samba/libndr-samba-samba4.so)
    smbd: /usr/lib/x86_64-linux-gnu/libsamba-passdb.so.0: version `SAMBA_PASSDB_0.27.1′ not found (required by /usr/lib/samba/libauth-samba4.so)

    root@dc1:~# uname -a
    Linux dc1 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3 (2019-02-02) x86_64 GNU/Linux

    root@dc1:~# lsb_release -a
    No LSB modules are available.
    Distributor ID: Debian
    Description: Debian GNU/Linux 9.8 (stretch)
    Release: 9.8
    Codename: stretch

  5. Firefox 64.0 Firefox 64.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0

    Hola Leslie muy bueno el manual pero seria bueno poner tambien como upgradear de samba 4.8.8 a samba 4.9.0 o superior pues a la hora de upgradear te pide instalar lmdb esto esta en los Features de la version 4.9.0 asi New experimental LMDB LDB backend y como ya tengo samba montado, lo logico es ugradear no hacerlo desde cero, saludos.

Responder a Xavier Cancelar la respuesta

Tu dirección de correo electrónico no será publicada.


*