Configuración del Dominio de Windows
C@mpus - @cademia Linux

Introducción 

Samba además de poder compartir recursos transparentemente entre usuarios Windows y de plataformas tipo *NIX puede actuar como controlador de dominio.

Entre las mltiples ventajas existen la administracin de los equipos y la restriccin de usuarios a acceder a recursos ajenos a ellos.

La configuración asume que el directorio está configurado como lo muestra el procedimiento del proyecto y qué tiene soporte para el hash {KRB5KEY}.


Paquetes necesarios 

  • Samba >= 3.0.22
  • Samba LDAP Tools++
  • NTLogon++
  • NTLogon.py

Configuración

Como un PDC es también un servidor de recursos compartidos es altamente recomendable que configure el futuro PDC como servidor de recursos compartidos y a continuación modifique o añada lo siguiente.

/etc/samba/smb.conf

#======================= Global Settings =====================================
[global]

   workgroup = LINUXCHANGE
   realm = LINUXCHANGE.COM
   server string = Samba Server %v
   printcap name = cups
   load printers = yes
   printcap cache time = 60
   printing = cups
   log file = /var/log/samba/%m.log
   max log size = 50
   log level = 100
   interfaces = 192.168.0.0/24 192.168.1.0/24 192.168.8.0/23

   map to guest = bad user
   security = user
   encrypt passwords = yes
   smb passwd file = /etc/samba/smbpasswd

   pam password change = no
   passwd chat timeout = 10
   passwd chat debug = yes
   unix password sync = no

   idmap uid = 10000-90000
   idmap gid = 10000-90000
   winbind use default domain = yes
   winbind enum users = yes
   winbind enum groups = yes
   winbind refresh tickets = true

   template homedir = /home/%U
   obey pam restrictions = no
   template shell = /bin/false

   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
   local master = yes
   os level = 99

   domain master = yes
   preferred master = yes
   domain logons = yes
   logon script = %U.bat
   logon drive = H:

   add user script = /usr/sbin/smbldap-useradd++ -r -m '%u'
   delete user script = /usr/sbin/smbldap-userdel++ '%u'
   add user to group script = /usr/sbin/smbldap-groupmod++ -m '%u' '%g'
   delete user from group script = /usr/sbin/smbldap-groupmod++ -x '%u' '%g'
   set primary group script = /usr/sbin/smbldap-usermod++ -g '%g' '%u'
   add group script = /usr/sbin/smbldap-groupadd++ '%g' && \ 
       /usr/sbin/smbldap-groupshow++ %g|awk '/^gidNumber:/ {print $2}'
   delete group script = /usr/sbin/smbldap-groupdel++ '%g'
   add machine script = /usr/sbin/smbldap-useradd++ -w  \ 
       -d /dev/null -c 'Machine Account' -s /bin/false '%u'

   enable privileges = yes

   passdb backend = ldapsam:ldap://127.0.0.1

   idmap backend = ldap:ldap://127.0.0.1

   ldap admin dn = cn=root,dc=linuxchange,dc=com
   ldap suffix = dc=linuxchange,dc=com
   ldap machine suffix = ou=People
   ldap group suffix = ou=Group
   ldap user suffix = ou=People
   ldap idmap suffix = sambaDomainName=LINUXCHANGE
   ldap passwd sync = only

   wins support = yes
   dns proxy = yes
   wins hook = /usr/sbin/smbldap-dnsupdate++

   use kerberos keytab = yes
   utmp = yes
   time server = yes

#============================ Share Definitions ==============================
[homes]
   comment = Home Directories
   browseable = no
   writable = yes
   vfs objects =  recycle

[netlogon]
   comment = Network Logon Service
   path = /home/netlogon
   guest ok = yes
   read only = yes
   root preexec = /usr/bin/ntlogon -u %U  -o %a -m %m -d  /home/ntlogon/
   root postexec = rm -f /home/netlogon/%U.bat

[Profiles]
   path = /home/profiles
   create mode = 0600
   csc policy = disable
   directory mode = 0700
   profile acls = yes
   browseable = no
   guest ok = no
   writable = yes
   root preexec = PROFILE=/home/profiles/%u; if [ ! -e $PROFILE ]; \
       then mkdir -pm700 $PROFILE; chown %u $PROFILE;fi

   # If you want read-only profiles, fake permissions so windows clients think
   # they have written to the files
   # vfs objects = fake_perms


Contraseña

Después de crear la configuración se tiene que ejecutar el comando smbpasswd -w contraseña para establecer la contraseña indicada por el parámetro ldap admin dn.


Recursos compartidos

Para que un servidor funja como PDC es importante que contenga los siguientes recursos compartidos:

 

  • NETLOGON - que juega el rol de control central y suscripcin al dominio. Este recurso es proveeido por todos los controladores de dominio de Microsoft. Es usado para almacenar scrips de inicio y archivos de polticas (NTConfig.POL).  Se recomienda el uso de NTLogon++ aunque NTLogon.py podrá cubrir sus espectativas.
  • PROFILE - En este lugar es donde se almacena la configuración personal, los archivos de escritorio entre otras cosas. Este recurso debe proveer a los usuarios un directorio con privilegios de slo escritura para l y lectura a todos.

Se debe crear los directorios /home/netlogon/ y /home/profiles/ con el comando mkdir /home/netlogon /home/profiles.

Debido a que Samba entre sus micro versiones modifica las definiciones de sus estructuras LDAP es sumamente importante utilizar las que el paquete proporciona y no las genricas.

Con esta configuracin Samba estar listo para trabar como un PDC básico. La personalización es otro punto fuera de este documento.  Realice la asignación de usuarios según la sección correspondiente.
Recuerde modificar los principales de Kerberos como se indica en el procedimiento de servicios para que samba tome ventaja de este protocolo.

Se recomienda el uso de NTLogon++ en lugar de NTLogon.py para la configuración del inicio de sesión en el Dominio de Windows.