sábado, 8 de diciembre de 2012

Cómo configurar un Controlador de Dominio con CentOS, Samba4, Kerberos y BIND

Samba es una suite libre que, desde 1992, ha proveído servicios de archivos e impresión a todo tipo de clientes SMB/CIFS, incluyendo muchas versiones de Microsoft Windows. Samba está disponible libremente bajo licencia GNU General Public License.

Para los fines de esta guía se asume que ya tienes experiencia manejando servidor y clientes en un entorno Windows. Así como también experiencia con GNU/Linux, ya que no me detendré a explicar como usar el editor vi o el comando sed y herramientas como iptables, Selinux y los initscripts del sistema.

En el furuto próximo Samba se convertirá en una alternativa fiable, económica y robusta, que de la mano con GNU/Linux, encontrará su nicho las PyMES, y posiblemente empresas más grandes, para que las mismas puedan montar su estructura informática con Controlador de Dominio, Directorio Activo y los demás servicos que se pueden configurar en Linux como Proxy, Servidor Web, Base de Datos, etc.

Es un placer para mí ver cómo ha llegado a esta etapa luego de varios años recorridos.

Nota Importante: Actualmente Samba4 se encuentra en una versión RC, por lo que no está recomendado para entornos en producción. Además el soporte para clientes Windows 7 no está a punto aún por lo que recomiendo usar clientes Windows XP para estas pruebas.

Gracias a Antonio Perpiñán y a todos los compañeros de FCLD que juntos hicimos esta práctica.

SOTWARE QUE UTILIZAREMOS
  • Centos 6.3 virtualizado en VirtualBox
  • Samba4 RC4 (Al momento de publicar esta guía ya estaba disponible la RC6) 
  • Bind 
  • NTP 
  • DHCP 
  • Kerberos 
  • Librerías de desarrollo (make, gcc, python, openssl, etc.) 
Manos a la obra... 

INSTALAR EL SISTEMA OPERATIVO 
CentOS 6.3 minimal en VirtualBox con dos interfaces de red y todo lo demás por defecto
  • eth0 como NAT para tomar conexión a Internet (10.0.2.0/24) 
  • eth1 Bridged a la LAN del Dominio (192.168.5.0/24) 

Al finalizar la instalación y loguearnos por primera vez en el servidor cambiamos el hostname del mismo y reiniciamos.
[root@localhost ~]# sed -i 's/HOSTNAME=localhost.local/HOSTNAME=sambapdc01.mydomain.local/g' /etc/sysconfig/network
[root@localhost ~]# reboot
Al regresar, deshabilitamos Selinux para evitar inconvenientes hasta nuevo aviso.
[root@sambapdc01 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
Configurarmos la Interfaz de red para actualizar y descargar paquetes. Esta interfaz está NAT en la configuración de la máquina virtual, pero editaremos el script ya que no nos interesa que el dhclient nos genere el fichero resolv.conf.
[root@sambapdc01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="MACADDR"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
DEFROUTE="yes"
IPADDR="10.0.2.15"
NETMASK="255.255.255.0"
GATEWAY="10.0.2.2"
Configurar la interfaz de red para el Dominio y red local, quedando de la siguiente manera.
[root@sambapdc01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
BOOTPROTO="static"
HWADDR="MACADDR"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
USERCTL="no"
IPV6INIT="no"
PEERDNS="no"
DEFROUTE="no"
DNS1="127.0.0.1"
IPADDR="192.168.5.1"
NETMASK="255.255.255.0"

[root@sambapdc01 ~]# service network restart
[root@sambapdc01 ~]# vi /etc/resolv.conf
nameserver 10.0.2.2
nameserver 8.8.8.8

ACTUALIZAR EL SISTEMA: Inslatar dependencias, librerías de derarrollo y compilación, y otros sercivios.
[root@sambapdc01 ~]# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
[root@sambapdc01 ~]# rpm -i http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
[root@sambapdc01 ~]# yum update -y
[root@sambapdc01 ~]# yum install -y bash-completion nano wget screen
[root@sambapdc01 ~]# yum install -y dhcp bind bind-libs bind-utils bind-sdb make gcc rpm-build libtool autoconf openssl-devel libacl-devel libblkid-devel gnutls-devel readline-devel python-devel gdb pkgconfig gtkhtml2 setroubleshoot-server setroubleshoot-plugins policycoreutils-python libsemanage-python setools-libs-python setools-libs krb5-server krb5-libs krb5-workstation
[root@sambapdc01 ~]# reboot
DESCARGAR, INSTALAR SAMBA4
[root@sambapdc01 ~]# mkdir /usr/src/samba4
[root@sambapdc01 ~]# cd /usr/src/samba4
[root@sambapdc01 samba4]# wget http://ftp.samba.org/pub/samba/rc/samba-4.0.0rc4.tar.gz
[root@sambapdc01 samba4]# tar zxvf samba-4.0.0rc4.tar.gz 
[root@sambapdc01 samba4]# cd samba-4.0.0rc4/
[root@sambapdc01 samba-4.0.0rc4]# ./configure.developer 
[root@sambapdc01 samba-4.0.0rc4]# make
[root@sambapdc01 samba-4.0.0rc4]# make install
Agregar la ruta de Samba4 al PATH
[root@sambapdc01 samba-4.0.0rc4]# cd
[root@sambapdc01 ~]# nano .bash_profile
PATH=$PATH:$HOME/bin:/usr/local/samba/bin:/usr/local/samba/sbin
Verificamos que se instaló correctamente.
[root@sambapdc01 ~]# samba -V
Version 4.0.0rc4
HACER LA PROVISION DEL DOMINIO
[root@sambapdc01 ~]# samba-tool domain provision --realm=mydomain.local --domain=MYDOMAIN --adminpass 'solucion.123' --server-role=dc --dns-backend=BIND9_DLZ
Looking up IPv4 addresses
More than one IPv4 address found. Using 192.168.5.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=mydomain,DC=local
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up 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=mydomain,DC=local
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 /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role:           active directory domain controller
Hostname:              sambapdc01
NetBIOS Domain:        MYDOMAIN
DNS Domain:            mydomain.local
DOMAIN SID:            S-1-5-21-1013276544-984874934-2418686943
A phpLDAPadmin configuration file suitable for administering the Samba 4 LDAP server has been created in /usr/local/samba/private/phpldapadmin-config.php.
Iniciar Samba por primera vez para que se cree la estructura de archivos y directorios para su correcto funcionamiento y el de los demás servicios que le sirven de soporte como BIND.
[root@sambapdc01 ~]# samba -i -M single &
[root@sambapdc01 ~]# killall samba 

CONFIGURAR DHCP
[root@sambapdc01 ~]# vi /etc/dhcp/dhcpd.conf
  option domain-name "mydomain.local";
         option domain-name-servers  192.168.5.1, 8.8.8.8;
         option netbios-name-servers 192.168.5.1;
  option ntp-servers 192.168.5.1;
         authoritative;
         subnet 192.168.5.0 netmask 255.255.255.0 {
               range 192.168.5.10 192.168.5.20;
               option broadcast-address 192.168.5.255;
               option routers 192.168.5.1;
         }
CONFIGURAR DNS (BIND). Es importante perder todo el tiempo necesario para que este servicio esté a punto, ya que el funcionamiento de Samba4 depende totalmente del mismo.
[root@sambapdc01 ~]# service named start
[root@sambapdc01 ~]# named -v
BIND 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.5
[root@sambapdc01 ~]# service named stop
Editar el fichero /etc/named.conf.
Borramos todo el contenido del mismo solo dejando lo siguiente:
[root@sambapdc01 ~]# nano /etc/named.conf
options {
     allow-query { localhost; 192.168.5.1; };
     allow-transfer { localhost; 192.168.5.1; };
     allow-recursion { localhost; 192.168.5.1; };
     forwarders {10.0.2.2; 8.8.8.8;};
     tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";
};
include "/usr/local/samba/private/named.conf";

[root@sambapdc01 ~]# service named restart
Si nos devuelve un error en el comando anteior o dura mucho tiempo para iniciar, generamos los Keys (opcionalmente, si da error para iniciar por falta de las llaves).
[root@sambapdc01 ~]# rndc-confgen -a -r /dev/urandom
[root@sambapdc01 ~]# chmod 766 /etc/rndc.key
Editar el fichero resolv.conf para queel propio servidor sea nuestro DNS.
[root@sambapdc01 ~]# nano /etc/resolv.conf
domain mydomain.local
nameserver 192.168.5.1
CONFIGURAR KERBEROS 
Editamos el fichero de configuracion dejando solo lo siguiente.
[root@sambapdc01 ~]# nano /etc/krb5.conf
[libdefaults]
 default_realm = MYDOMAIN.LOCAL
 dns_lookup_realm = false
 dns_lookup_kdc = true
DESCARGAR, INSTALAR Y CONFIGURAR NTP (OPCIONAL) 
Si no hay sincronización de tiempo entre servidor y clientes, muchos servicios no estarán disponibles para éstos últimos. Necesitamos una versión de NTP igual o superior a la 4.2.6. Lamentablemente la versión actual de CentOS no la provee, por lo que la descargaremos del sitio rpmfind.net.
[root@sambapdc01 ~]# wget ftp://rpmfind.net/linux/sourceforge/f/fu/fuduntu/yum/2012/STABLE/RPMS/ntp-4.2.6p3-0.1.rc10.fc14.i686.rpm
[root@sambapdc01 ~]# wget ftp://rpmfind.net/linux/sourceforge/f/fu/fuduntu/yum/2012/STABLE/RPMS/ntpdate-4.2.6p3-0.1.rc10.fc14.i686.rpm
[root@sambapdc01 ~]# rpm -i ntpdate-4.2.6p3-0.1.rc10.fc14.i686.rpm
[root@sambapdc01 ~]# rpm -i ntp-4.2.6p3-0.1.rc10.fc14.i686.rpm
Editamos el fichero ntp.conf agregando las siguientes líneas al final.
[root@sambapdc01 ~]# nano /etc/ntp.conf
ntpsigndsocket /usr/local/samba/var/run/ntp_signd/
restrict default mssntp
Editamos las siguientes líneas, que ya existen, para que queden así: 
server 127.127.1.1 fudge 
127.127.1.1 stratum 12 

Finalmente cambiamos los servidores públicos por estos: 
server 0.centos.pool.ntp.org 
server 1.centos.pool.ntp.org 
server 2.centos.pool.ntp.org 

Aplicamos los permisos necesarios para que los servicios tengan acceso a los ficheros de configuración y Selinux no nos de problemas si lo habilitamos luego y poder hacer las pruebas de lugar.

Agregamos la variable de entorno MYREALM
[root@sambapdc01 ~]# echo 'MYREALM="mydomain.local"' >> .bash_profile
[root@sambapdc01 ~]# echo 'export MYREALM' >> .bash_profile
Aplicar permisos y crear politicas de Selinux (por si lo habilitamos luego)
[root@sambapdc01 ~]# chown named:named /usr/local/samba/private/dns
[root@sambapdc01 ~]# chgrp named /usr/local/samba/private/dns.keytab
[root@sambapdc01 ~]# chmod g+r /usr/local/samba/private/dns.keytab
[root@sambapdc01 ~]# chmod 775 /usr/local/samba/private/dns
[root@sambapdc01 ~]# chcon -t named_conf_t /usr/local/samba/private/dns.keytab
[root@sambapdc01 ~]# chcon -t named_conf_t /usr/local/samba/private/named.conf
[root@sambapdc01 ~]# chcon -t named_var_run_t /usr/local/samba/private/dns
[root@sambapdc01 ~]# chcon -t named_var_run_t /usr/local/samba/private/dns/${MYREALM}.zone
[root@sambapdc01 ~]# semanage fcontext -a -t named_conf_t /usr/local/samba/private/dns.keytab
[root@sambapdc01 ~]# semanage fcontext -a -t named_conf_t /usr/local/samba/private/named.conf
[root@sambapdc01 ~]# semanage fcontext -a -t named_conf_t /usr/local/samba/private/named.conf.update
[root@sambapdc01 ~]# semanage fcontext -a -t named_var_run_t /usr/local/samba/private/dns
[root@sambapdc01 ~]# semanage fcontext -a -t named_var_run_t /usr/local/samba/private/dns/${MYREALM}.zone
[root@sambapdc01 ~]# semanage fcontext -a -t named_var_run_t /usr/local/samba/private/dns/${MYREALM}.zone.jnl
[root@sambapdc01 ~]# semanage fcontext -a -t ntpd_t /usr/local/samba/var/run/ntp_signd
[root@sambapdc01 ~]# chcon -u system_u -t ntpd_t /usr/local/samba/var/run/ntp_signd
[root@sambapdc01 ~]# chcon -u system_u -t ntpd_t /usr/local/samba/var/run/
[root@sambapdc01 ~]# chcon -t ntpd_t /usr/local/samba/var/run/ntp_signd/socket
Es posible que en los comandos chcon anteriores obtengamos una salida de error como esta:
chcon: can't apply partial context to unlabeled file `/usr/local/samba/var/run/ntp_signd'
Por lo que crearemos una política para que nos permita el acceso.
[root@sambapdc01 ~]# nano samba4.te
module samba4 1.0;
  
require {
   type ntpd_t;
   type usr_t;
   type initrc_t;
   class sock_file write;
   class unix_stream_socket connectto;
}
  
#============= ntpd_t ==============
allow ntpd_t usr_t:sock_file write;
  
#============= ntpd_t ==============
allow ntpd_t initrc_t:unix_stream_socket connectto;
La revisamos y cargamos.
[root@sambapdc01 ~]# checkmodule -M -m -o samba4.mod samba4.te
checkmodule: loading policy configuration from samba4.te
checkmodule: policy configuration loaded
checkmodule: writing binary representation (version 10) to samba4.mod
[root@sambapdc01 ~]# semodule_package -o samba4.pp -m samba4.mod
[root@sambapdc01 ~]# semodule -i samba4.pp
REINICIAMOS EL SISTEMA
[root@sambapdc01 ~]# reboot
PROBAMOS TODO PARA VERIFICAR QUE ESTAMOS BIEN
[root@sambapdc01 ~]# service named start
[root@sambapdc01 ~]# service ntpd start
[root@sambapdc01 ~]# service ntpdate start
[root@sambapdc01 ~]# service dhcpd start
[root@sambapdc01 ~]# samba -i -M single &
Probando Samba4
[root@sambapdc01 ~]# smbclient -L localhost -U%
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.0rc4]

 Sharename       Type      Comment
 ---------       ----      -------
 netlogon        Disk      
 sysvol          Disk      
 IPC$            IPC       IPC Service (Samba 4.0.0rc4)
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.0rc4]

 Server               Comment
 ---------            -------

 Workgroup            Master
 ---------            -------

[root@sambapdc01 ~]# smbclient //localhost/netlogon -UAdministrator%'solucion.123' -c 'ls'
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.0.0rc4]
  .                                   D        0  Tue Nov 13 05:57:23 2012
  ..                                  D        0  Tue Nov 13 05:58:17 2012

  52475 blocks of size 131072. 36544 blocks available
Podemos visualizar los usuarios y grupos:
[root@sambapdc01 ~]# wbinfo -u
Administrator
Guest
krbtgt
dns-sambapdc01

[root@sambapdc01 ~]# wbinfo -g
Enterprise Read-Only Domain Controllers
Domain Admins
Domain Users
Domain Guests
Domain Computers
Domain Controllers
Schema Admins
Enterprise Admins
Group Policy Creator Owners
Read-Only Domain Controllers
DnsUpdateProxy
Probando DNS (BIND)
[root@sambapdc01 ~]# host -t SRV _ldap._tcp.mydomain.local.
_ldap._tcp.mydomain.local has SRV record 0 100 389 sambapdc01.mydomain.local.

[root@sambapdc01 ~]# host -t SRV _kerberos._udp.mydomain.local.
_kerberos._udp.mydomain.local has SRV record 0 100 88 sambapdc01.mydomain.local.

[root@sambapdc01 ~]# host -t A sambapdc01.mydomain.local.
sambapdc01.mydomain.local has address 10.0.2.15
sambapdc01.mydomain.local has address 192.168.5.1

[root@sambapdc01 ~]# samba-tool dns query 127.0.0.1 mydomain.local @ ALL
Password for [administrator@MYDOMAIN.LOCAL]:
  Name=, Records=4, Children=0
    NS: sambapdc01.mydomain.local. (flags=600000f0, serial=1, ttl=900)
    A: 192.168.5.1 (flags=600000f0, serial=1, ttl=900)
    A: 10.0.2.15 (flags=600000f0, serial=1, ttl=900)
    SOA: serial=5, refresh=900, retry=600, expire=86400, ns=sambapdc01.mydomain.local., email=hostmaster.mydomain.local. (flags=600000f0, serial=4, ttl=3600)
  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=sambapdc01, Records=2, Children=0
    A: 192.168.5.1 (flags=f0, serial=1, ttl=900)
    A: 10.0.2.15 (flags=f0, serial=4, ttl=900)
Probando Kerberos
[root@sambapdc01 ~]# kinit administrator@MYDOMAIN.LOCAL
Password for administrator@MYDOMAIN.LOCAL: 
Warning: Your password will expire in 41 days on Tue Jan  5 00:01:50 2013

[root@sambapdc01 ~]# klist 
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@MYDOMAIN.LOCAL

Valid starting     Expires            Service principal
11/20/12 01:31:04  11/20/12 11:31:04  krbtgt/MYDOMAIN.LOCAL@MYDOMAIN.LOCAL
 renew until 11/21/12 01:31:00
CREAR EL SCRIPT PARA EL DAEMON DE SAMBA4
[root@sambapdc01 ~]# nano /etc/rc.d/init.d/samba4
 #! /bin/bash
 #
 # samba4       Bring up/down samba4 service 
 #
 # chkconfig: - 90 10
 # description: Activates/Deactivates all samba4 interfaces configured to \
 #              start at boot time.
 #
 ### BEGIN INIT INFO
 # Provides: 
 # Should-Start: 
 # Short-Description: Bring up/down samba4
 # Description: Bring up/down samba4
 ### END INIT INFO
 # Source function library.
 . /etc/init.d/functions
 
 if [ -f /etc/sysconfig/samba4 ]; then
  . /etc/sysconfig/samba4
 fi
 
 CWD=$(pwd)
 prog="samba4"
 
 start() {
       # Attach irda device 
       echo -n $"Starting $prog: "
  /usr/local/samba/sbin/samba
  sleep 2
  if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then success $"samba4 startup"; else failure $"samba4 startup"; fi
       echo
 }
 stop() {
       # Stop service.
       echo -n $"Shutting down $prog: "
  killall samba
  sleep 2
  if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then failure $"samba4 shutdown"; else success $"samba4 shutdown"; fi
       echo
 }
 status() {
  /usr/local/samba/sbin/samba --show-build
 }
 
 # See how we were called.
 case "$1" in
 start)
  start
       ;;
 stop)
  stop
       ;;
 status)
  status irattach
  ;;
 restart|reload)
  stop
  start
  ;;
 *)
       echo $"Usage: $0 {start|stop|restart|status}"
       exit 1
 esac
 
 exit 0
Le damos los permisos necesarios
[root@sambapdc01 ~]# chmod 755 /etc/init.d/samba4
ACTIVAMOS LOS SERVICIOS PARA QUE INICIEN EN EL ARRANQUE DEL SISTEMA
[root@sambapdc01 ~]# chkconfig samba4 on
[root@sambapdc01 ~]# chkconfig dhcpd on
[root@sambapdc01 ~]# chkconfig named on
[root@sambapdc01 ~]# chkconfig ntpdate on
[root@sambapdc01 ~]# chkconfig ntpd on
CONFIGURAR EL SERVIDOR PARA COMPARTIR CONEXIÓN A INTERNET. Esta parte es opcional, pero muy importante sobre todo si luego queremos configurar un proxy como Squid para filtro de contenido y caché de navegación de los usuarios de la red local.
[root@sambapdc01 ~]# iptables -F
[root@sambapdc01 ~]# iptables -P INPUT ACCEPT
[root@sambapdc01 ~]# iptables -P FORWARD ACCEPT
[root@sambapdc01 ~]# iptables -P OUTPUT ACCEPT
[root@sambapdc01 ~]# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
[root@sambapdc01 ~]# iptables -A INPUT -p icmp -j ACCEPT 
[root@sambapdc01 ~]# iptables -A INPUT -i lo -j ACCEPT 
[root@sambapdc01 ~]# iptables -A INPUT -i eth0 -j ACCEPT 
[root@sambapdc01 ~]# iptables -A INPUT -i eth1 -j ACCEPT 
[root@sambapdc01 ~]# iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited 
[root@sambapdc01 ~]# iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
[root@sambapdc01 ~]# iptables -A FORWARD -p icmp -j ACCEPT 
[root@sambapdc01 ~]# iptables -A FORWARD -i lo -j ACCEPT 
[root@sambapdc01 ~]# iptables -A FORWARD -i eth0 -j ACCEPT 
[root@sambapdc01 ~]# iptables -A FORWARD -i eth1 -j ACCEPT 
[root@sambapdc01 ~]# iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
[root@sambapdc01 ~]# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
[root@sambapdc01 ~]# service iptables save
[root@sambapdc01 ~]# service iptables restart
[root@sambapdc01 ~]# sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
[root@sambapdc01 ~]# sysctl -w
REINICIAMOS EL SISTEMA
[root@sambapdc01 ~]# init 6
COMPROBAR DESDE UN HOST DEL DOMINIO QUE EL SERVIDOR ESTA FUNCIONANDO
[root@rainbow ~]# nmap 192.168.5.1
Starting Nmap 5.51 ( http://nmap.org ) at 2012-11-25 16:16 AST
Nmap scan report for 192.168.5.1
Host is up (0.0055s latency).
Not shown: 987 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
53/tcp   open  domain
88/tcp   open  kerberos-sec
111/tcp  open  rpcbind
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
389/tcp  open  ldap
445/tcp  open  microsoft-ds
464/tcp  open  kpasswd5
636/tcp  open  ldapssl
1024/tcp open  kdm
3268/tcp open  globalcatLDAP
3269/tcp open  globalcatLDAPssl
MAC Address: 08:00:27:70:DD:A9 (Cadmus Computer Systems)

Nmap done: 1 IP address (1 host up) scanned in 0.39 seconds
AUNQUE FALTAN ALGUNAS CONFIGURACIONES ADICIONALES PARA SU CORRECTO FUNCIONAMIENTO, YA NUESTRO CONTROLADOR DE DOMINIO ESTA LISTO PARA USARSE, POR LO QUE PODEMOS AGREGAR AL DOMINIO CLIENTES WINDOWS EN LA MISMA FORMA TRADICIONAL CON SERVIDORES WINDOWS.

CONFIGURAR UNA CARPETA COMPARTIDA. El proceso de provisión creó el archivo de configuración de Samba4 ubicado en /usr/local/samba/etc/smb.conf el cual no tiene recursos compartidos configurados. Así que agregaremos un recurso compartido a modo de prueba.
[root@sambapdc01 ~]# mkdir /root/Shared
[root@sambapdc01 ~]# nano /usr/local/samba/etc/smb.conf 
[Shared]
      path = /root/Shared
      comment = Root's shared folder
      read only = yes
En las versiones anteriores de Samba4 es necesario reiniciar el servicio para que los compartidos se hagan visibles.

AGREGAR IMPRESORAS COMPARTIDAS. Podemos compartir las impresoras conectadas al servidor usando CUPS, y ya que Samba4 se comunica con CUPS vía sockets, no es necesario hacer configuración o dar permisos mas que escuchar la directiva del socket de CUPS.
[root@sambapdc01 ~]# mkdir /usr/local/samba/var/spool
[root@sambapdc01 ~]# chmod 1777 /usr/local/samba/var/spool
Editamos el fichero de configuración de Samba4 y agregamos lo siguiente.
[root@sambapdc01 ~]# /usr/local/samba/etc/smb.conf
[printers]
    path = /usr/local/samba/var/spool
    comment = All Printers
    browseable = Yes
    read only = No
    printable = Yes
Por conveniencia los clientes Windows pueden consultar el servidor que sirve las impresoras en busca de controladores. Para habilitar esta funcionalidad en Samba4 debemos crear el compartido especial print$.
[root@sambapdc01 ~]# mkdir -p /usr/local/samba/var/print/{COLOR,IA64,W32ALPHA,W32MIPS,W32PPC,W32X86,WIN40,x64}
[root@sambapdc01 ~]# nano /usr/local/samba/etc/smb.conf: 
[print$]
    path = /usr/local/samba/var/print
    comment = Point and Print Printer Drivers
    read only = No
Nota: No es necesario reiniciar el daemon de Samba4 

AGREGAR MAS USUARIOS AL ACTIVE DIRECTORY DE SAMBA4. Al contrario que en versiones anteriores, Samba4 no requiere un usuario local por cada usuario que creamos en Samba.
[root@sambapdc01 ~]# samba-tool user add fraterneo
New Password:
Retype Password:
User 'fraterneo' created successfully
Lo verificamos viendo su SID
[root@sambapdc01 ~]# wbinfo --name-to-sid fraterneo
S-1-5-21-4036476082-4153129556-3089177936-1005 SID_USER (1)
CONFIGURANDO ROAMING PROFILES
[root@sambapdc01 ~]# mkdir /usr/local/samba/var/profiles
Editamos el fichero de configuracion de Samba4 y agregamos lo siguiente.
[root@sambapdc01 ~]# nano /usr/local/samba/etc/smb.conf
[profiles]
      path = /usr/local/samba/var/profiles
      read only = No
En Windows usando RSAT vamos a Active Directory Users and Computers, seleccionamos todos lo usuarios que hemos agregado, clic al botón derecho del mouse y abrimos Properties. Luego en la pestaña Profile, colocamos la siguiente ruta tal como está.
\\sambapdc01.mydomain.local\profiles\%USERNAME%
También hay que darle los permisos desde Windows a la carpeta profiles. Entramos como usuario administrator y aplicamos los permisos para que todos los usuarios puedan crear su profile en la forma típica como se hace en un servidor Windows.

PROBANDO SINCRONIZACION DEL TIEMPO. Desde un cliente Windows usando el CMD probamos que nuestro servidor esté sincronizando el tiempo.
C:\>w32tm /resync /rediscover
Enviando comando Resync a local computer...
El comando se ha completado correctamente.
Desde Windows XP como el usuario administrator y usando el Active Directory Users and Computers ubicado en Administrative Tools, verificamos el funcionamiento de nuestro DC.




Más recursos, herramientas y fuentes:

72 comentarios:

  1. Wow, eres un master en esto de Linux. Me gustaria compartir ideas contigo. Tambien eres muy guapo!

    ResponderEliminar
  2. una consulta he instalado el samba 4.0.0 rc4 y ahora quiero actualizar el parche patch for Samba 4.0.0 o cambiar a la version 4.0.3, me podrian dar algunas indicaciones

    ResponderEliminar
    Respuestas
    1. No he hecho eso todavía de actualizar a samba 4.0.3, por lo que a la fecha no tengo base para ayudarte.

      Lee la documentación oficial de samba al respecto.

      Un saludo y gracias por visitarnos.

      Eliminar
  3. Muchísimas gracias por el aporte es genial de veras, tengo una consulta tienes algunas forma de configurar las impresoras? :$ me gustaría saber la forma de manejar las políticas para impresión, los clientes en su mayoría tienen Ubuntu y unos pocos Windows, me ayudarías muchísimo te agradezco de antemano

    ResponderEliminar
    Respuestas
    1. Es necesario que sea más específico en cuanto a las politicas de impresión.

      Eliminar
    2. uhmmm por ejemplo definir solo derechos de impresión a los usuarios de un determinado grupo del AD, en una determinada impresora.

      Eliminar
    3. Ok. Eso se hace creando GPOs o Politicas deGrupo en Active Directory, como se hace en Windows Server.

      Debes buscar documentacion referente a esos temas.

      Eliminar
  4. Todo esto es para crear recursos compartidos en el CentOS y que las PCs Windows XP puedan ver estos recursos simplemente como una unidad de Disco mas en su PC ?

    Soy Administrador de UNIX desde hace muchos años, y en el servidor UNIX usabamos SAMBA.. viejas versiones... ya venia instalado en el NCR MPRAS UNIX 5

    Pero no recuerdo que hayamos tenido que hacer tantas cosas para poder usar todo esto.

    Estoy ante un Servidor que nos vendria con CENTOS 6.4 y el CENTOS 6.4 ya trae el SAMBA 4 instalado (al menos al día de hoy 16/03/2013)..

    Reconozco que luego de leer tus instrucciones.. me da un poco de miedito enfrentarme con tantas instrucciones y consideraciones..

    Seguro que es la unica manera de compartir archivos entre el CENTOS y las PCs Windows XP ?

    Saludos y Gracias por tanto esfuerzo en poner tanta información a los usuarios.

    Pablo

    ResponderEliminar
    Respuestas
    1. Hola Pablo. No solo se trata de compartir archivos entre las dos plataformas. Es crear un DC con AD para hacer lo mismo que un Windows Server. Lee bien la introduccion y las descripciones a lo largo de la guia. Gracias por tu visita al blog. Un saludo.

      Eliminar
    2. Gracias Claudio,

      Pero entonces que tendria que hacer si solo deseo crear una carpeta compartida en CentOS y que las PCs con XP la vean como un disco mas...

      Es lo unico que necesito..

      Mil Gracias

      Pablo

      Eliminar
    3. Eso esta en la parte que se llama CONFIGURAR UNA CARPETA COMPARTIDA. Casi al final. Es muy simple. En una instalacion normal de samba se hace en /etc/samba/smb.conf o donde la distribucion lo ponga.

      Saludos y gracias por seguir el blog.

      Eliminar
  5. Buenas chicos, les queria comentar que pude hacer andar la mayoria de las cosas. Pero tengo un problema al querer crear una GPO sobre alguna OU. Me baje el Group Policy Management Console (GPMC) y cuando quiero crear me lanza un error "Acceso Denegado". Estuve leyendo que tiene que puede ser que tenga que ver con los permisos del SYSVOL pero la verdad que no tengo bien en claro cual puede ser la solucion, a alguien le paso esto? supo como solucionarlo?

    Muchas gracias y felicitaciones por la guia!!

    ResponderEliminar
  6. como se configuraria para poder tenerlo en la red, en un dominio en 1and1?

    ResponderEliminar
  7. Hola Claudio, en mi trabajo, en el servidor controlador de dominio, quieren instalar la última versión de samba, que es la 4.0.5, este servidor tiene como SO CentOS 6.3.. Este es el mejor tutorial que he encontrado para para la instalación de Samba 4.0, no he encotrado tutoriales para la instalación de la última versión... Mi pregunta es: ¿que me recomiendas? ¿Instalar la versión 4.0 y después actualizarla a la 4.0.5? o seguir buscando información para instalar directamente la última versión?
    Muchas gracias, espero tu respuesta..

    ResponderEliminar
    Respuestas
    1. Hola. En teoría debe funcionar para cualquier versión desde la 4.0.0. En caso de alguna falla debe consultar la lista de cambios de la versión que está instalando o quiere instalar. Pero, repito, debe funcionar igual todo el proceso.

      Eliminar
  8. Hola, una pregunta, es preciso configurar 2 interfaces de red? es que me da problemas... si configuro solo eth0 y pongo como GATEWAY la IP de mi router... también valdría, no?

    ResponderEliminar
    Respuestas
    1. No es obligatorio. Eso depende de lo que quieres hacer. En el caso de esta guía, el PDC también sirve como puerta de enlace a Internet, por lo que consideré mejor hacerlo con dos interfaces. Pero igual debería funcionar con una sola.

      Saludos.

      Eliminar
  9. Buenos días Claudio, me he quedado por actualizar el sistema, lo he instalado todo de ese apartado, y cuando he reiniciado me sale un "kernel panic"... algún consejo? sabes porque me ha paso esto??

    ResponderEliminar
    Respuestas
    1. Hola.

      Lo mejor es que re-instales el CentOS de nuevo. Si estas usando el minimal, prueba con la versión completa que viene en DVD. Posiblemente esté faltando algún controlador o firmware para el hardware que tienes ahi.

      Saludos.

      Eliminar
    2. Ok, lo probaré... me puedes dejar algún link para descargarme la versión completa? es que solo encuentro la minimal...
      Muchas gracias!!

      Eliminar
  10. Hola, cuando ejecuto #checkmodule -M -m -o samba4.mod samba4.te, me sale el siguiente mensaje de error: samba4.te:3:ERROR 'syntax error' at token 'require on line 3: require {
    A que se puede deber?? lo he escrito exactamente igual que tu...

    ResponderEliminar
    Respuestas
    1. No copies y pegues el contenido del fichero. Escribelo todo. Al copiar se meten caracteres no visibkes invalidos.

      Eliminar
  11. Hola Claudio, Tengo una duda, que diferencia hay entre el archivo de configuración ubicado en /etc/samba/smb.conf y el ubicado en /usr/local/samba/etc/smb.conf?

    ResponderEliminar
    Respuestas
    1. tengo los dos ficheros en mi servidor, y no se a cual hacerle las configuraciones... en cada foro dicen una cosa.. me lo podrías aclarar?

      Eliminar
    2. La diferencia es que el primero es del samba que se instala mediante los repositorios y el segundo es el que se instala mediante el código fuente que se ha compilado. Es decir, el segundo es el que corresponde a este tutorial.

      Eliminar
  12. Hola buen post,
    He seguido los pasos, mi consulta es para que sirve el script???
    y porque cuando he logueado un equipo y le instalado el tools no funcona despues de un re-inicio????

    Saludos,

    ResponderEliminar
    Respuestas
    1. Es un script para cargar samba4 al inicio del sistema.

      Eliminar
  13. Muy buenos días... excelente el tutorial...
    Sin embargo tengo un problema al descargar el paquete de samba desde
    wget http://ftp.samba.org/pub/samba/rc/samba-4.0.0rc4.tar.gz
    Por que ya no existe.
    Instale samba-4.0.2.tar.gz
    Pero hay muchos archivos que al ejecutar el comando no se encuentran.
    Me podrías colaborar al respecto.
    Tengo que autenticar un Windows XP o 7 En Centos 6

    Agradezco tu gentil colaboración.

    ResponderEliminar
    Respuestas
    1. Hola. Debes ser más explicativo cuando dices "Pero hay muchos archivos que al ejecutar el comando..." ¿Cuál comando? Recuerda que este tutorial es válido si se sigue al pie de la letra.

      Hace dos días descargué samba-4.0.5, hice los pasos y se compiló, instaló y ejecutó igual que en este tutorial.

      Expliquese con más detalles.

      Eliminar
    2. Hola claudio, primeramente gracias por su gentil colaboracion y atencion prestada.
      Hoy ya no esta disponible la version samba-4.0.5 asi que utilice la version samba-4.0.6 y comienzo a tener los mismos problemas con los comando.
      samba -V = bash: samba: no se encontró la orden

      samba-tool domain provision --realm=mydomain.local --domain=MYDOMAIN --adminpass 'solucion.123' --server-role=dc --dns-backend=BIND9_DLZ
      bash: samba-tool: no se encontró la orden

      Agradezco la colaboracion que me pueda brindar al respecto. Gracias....!!!

      Eliminar
    3. Lo que le pasa ahi es que le faltó el paso de agregar la ruta de samba a la variable PATH. Cuando haga eso y vuelva a loguearse ya funcionarán los comandos.

      Como dije antes, si se salta un paso o comando todo puede fallar de ahi en adelante.

      Eliminar
    4. Bueno ya encontré la solución del segundo inconveniente y consiste en lo siguiente. Primero le comento que la ruta del PATH la coloque tal cual como se explica en el tutorial.
      Para realizar la configuracion del samba-tool es necesario escribir la ruta completa, la cual es.
      /usr/local/samba/bin/samba-tool domain provision --realm=mydomain.local --domain=MYDOMAIN --adminpass 'solution.123' --server-role=dc --dns-backend=BIND9_DLZ

      Ya lo realice y me genero todo tal cual como esta en el tutorial pero sigo sin verificar la version del samba y sin iniciar el servicio, por que los comandos no funcionan.

      Eliminar
    5. Realmente es raro que no funcione el comando si la ruta está en PATH. Verifique cual paso le falta para que siga con normalidad el tutorial.

      Todo esto funciona sin importar cual versión de samba se use.

      Saludos.

      Eliminar
  14. [root@cdp ~]# samba -i -M single &
    [1] 20176
    [root@cdp ~]# -bash: samba: command not found

    ResponderEliminar
  15. disulpa al ejecutar el comando
    [root@cdp ~]# samba -i -M single &
    [1] 20176
    [root@cdp ~]# -bash: samba: command not found
    me da el siguiente error estoy configurando samba4.0.6 centos4

    ResponderEliminar
    Respuestas
    1. Agregar la ruta de Samba4 al PATH
      [root@sambapdc01 ~]# nano .bash_profile
      PATH=$PATH:$HOME/bin:/usr/local/samba/bin:/usr/local/samba/sbin

      Eliminar
  16. Buenas tardes desde España Claudio, gracias por el post, que a priori es con el que más lejos estoy llegando, eso querrá decir algo ;)
    Todo va sobre ruedas hasta que llega el momento de realizar la configuración del BIND9, mi problema es que cuando edito el archivo "etc/named.conf" al reiniciar el servicio named se produce un Error en la linea
    include "/usr/local/samba/private/named.conf" file not found.
    el archivo existe y tiene todos los permisos, tal y como sugieres en el post ejecute las órdenes que suguieres en caso de error

    "rndc-confgen -a -r /dev/urandom "
    y
    "chmod 766 /etc/rndc.key"

    aun así el error continua produciéndose, he estado investigando por internet pero no encuentro solucion al problema .. ¿alguna sugerencia?
    mi instalación es
    sobre Oracle VM VirtualBox
    centos 6.4 64 bits
    samba-4.0.7 compilado segun tus instrucciones
    Bind 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.4

    Tambien he bajado compilado e instalado la versión 4.2.6p5 de ntp, pero aún no he podido llegar a ese punto aun.

    Gracias anticipadas y Saludos cordiales,

    Juan.

    ResponderEliminar
    Respuestas
    1. Hola Juan.

      Coloca aquí tu fichero named.conf tal como lo tienes y la salida de ls -l /usr/local/samba/private/ para verlos y poder analizar el asunto.

      Gracias y un saludo.

      Eliminar
  17. Hola Claudio.

    El contenido del archivo named.conf es exactamente el mismo que el presentado en el blog:

    options {
    allow-query { localhost; 192.168.5.1; };
    allow-transfer { localhost; 192.168.5.1; };
    allow-recursion { localhost; 192.168.5.1; };
    forwarders {10.0.2.2; 8.8.8.8;};
    tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";
    };
    include "/usr/local/samba/private/named.conf";

    Y la salida del comando "ls -l /urs/local/samba/private/" es el siguiente:
    total 11228
    drwxrwx---. 3 root named 4096 jul 15 22:01 dns
    -rw-r-----. 1 root named 762 jul 15 22:01 dns.keytab
    -rw-r--r--. 1 root root 2270 jul 15 22:01 dns_update_list
    -rw-------. 1 root root 1286144 jul 15 22:00 hklm.ldb
    -rw-------. 1 root root 1609728 jul 15 22:02 idmap.ldb
    -rw-r--r--. 1 root root 91 jul 15 22:01 krb5.conf
    srwxrwxrwx. 1 root root 0 jul 16 13:45 ldapi
    drwxr-x---. 2 root root 4096 jul 16 13:45 ldap_priv
    -rw-rw-rw-. 1 root root 555 jul 15 22:29 named.conf
    -r--r--r--. 1 root root 222 jul 15 22:02 named.conf.update
    -rw-r--r--. 1 root root 2212 jul 15 22:01 named.txt
    -rw-------. 1 root root 1286144 jul 15 22:00 privilege.ldb
    -rw-------. 1 root root 696 jul 15 22:02 randseed.tdb
    -rw-------. 1 root root 4251648 jul 15 22:01 sam.ldb
    drwxr-x---. 2 root named 4096 jul 15 22:01 sam.ldb.d
    -rw-------. 1 root root 696 jul 16 13:45 schannel_store.tdb
    -rw-------. 1 root root 1112 jul 15 22:01 secrets.keytab
    -rw-------. 1 root root 1286144 jul 15 22:01 secrets.ldb
    -rw-------. 1 root root 430080 jul 16 13:45 secrets.tdb
    -rw-------. 1 root root 1286144 jul 15 22:00 share.ldb
    drwxr-xr-x. 3 root root 4096 jul 15 22:02 smbd.tmp
    -rw-r--r--. 1 root root 955 jul 15 22:01 spn_update_list
    drwxr-xr-x. 2 root root 4096 jul 15 22:02 tls

    Espero que te sirva de ayuda, porque llevo varios días dándole vueltas a que es lo que estoy haciendo mal y no lo encuentro.

    Gracias anticipadas y un cordial saludo,
    Juan

    ResponderEliminar
    Respuestas
    1. la salida del comando "service named start"

      Iniciando named:
      Error in named configuration:
      /etc/named.conf:8: open: /usr/local/samba/private/named.conf: file not found
      [60G[ [0;31mFALLÓ [0;39m]

      si comento esa línea el servicio reinicia perfectamente, pero claro, esa no es la solución. ;)

      saludos cordiales y gracias por la rápida respuesta,
      Juan

      Eliminar
    2. Juan, verifica si efectivamente selinux está deshabilitado. Para apagarlo corre este comando:

      sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

      Además cambia el dueño del named.conf de samba y otros ficheros:

      chown root:named /usr/local/samba/private/named.conf
      chown root:named /usr/local/samba/private/named.conf.update
      chown named:named /usr/local/samba/private/dns.keytab

      Cuentame cualquier novedad.

      Eliminar
    3. buenos dias Claudio, o mejor buenas noches ;)
      Si selinux está deshabilitado, no obstante he vuelto a ejecutar el comando y he reiniciado el sistema. Tambien he cambiado el propietario de los tres archivos que me has dicho, siendo la nueva salida del comando ls -l la siguiente:
      total 11228
      drwxrwx---. 3 root named 4096 jul 15 22:01 dns
      -rw-r-----. 1 named named 762 jul 15 22:01 dns.keytab
      -rw-r--r--. 1 root root 2270 jul 15 22:01 dns_update_list
      -rw-------. 1 root root 1286144 jul 15 22:00 hklm.ldb
      -rw-------. 1 root root 1609728 jul 15 22:02 idmap.ldb
      -rw-r--r--. 1 root root 91 jul 15 22:01 krb5.conf
      srwxrwxrwx. 1 root root 0 jul 16 13:45 ldapi
      drwxr-x---. 2 root root 4096 jul 16 13:45 ldap_priv
      -rw-rw-rw-. 1 root named 555 jul 15 22:29 named.conf
      -r--r--r--. 1 root named 222 jul 15 22:02 named.conf.update
      -rw-r--r--. 1 root root 2212 jul 15 22:01 named.txt
      -rw-------. 1 root root 1286144 jul 15 22:00 privilege.ldb
      -rw-------. 1 root root 696 jul 15 22:02 randseed.tdb
      -rw-------. 1 root root 4251648 jul 15 22:01 sam.ldb
      drwxr-x---. 2 root named 4096 jul 15 22:01 sam.ldb.d
      -rw-------. 1 root root 696 jul 16 13:45 schannel_store.tdb
      -rw-------. 1 root root 1112 jul 15 22:01 secrets.keytab
      -rw-------. 1 root root 1286144 jul 15 22:01 secrets.ldb
      -rw-------. 1 root root 430080 jul 16 13:45 secrets.tdb
      -rw-------. 1 root root 1286144 jul 15 22:00 share.ldb
      drwxr-xr-x. 3 root root 4096 jul 15 22:02 smbd.tmp
      -rw-r--r--. 1 root root 955 jul 15 22:01 spn_update_list
      drwxr-xr-x. 2 root root 4096 jul 15 22:02 tls

      Una vez realizado todo esto he intentado reiniciar el servicio named pero he vuelto a obtener el mismo fallo, ¿Qué mas podemos hacer?

      Un saludo, Juan

      Eliminar
    4. Hola de nuevo Claudio, no se si tendrá que ver, aunque creo que no, no obstante te lo cuento, cuando ejecuto el comando:
      "samba -i -M single &"
      obtengo la salida
      # samba version 4.0.7 started
      Copyright Andrew Tridgell and the Samba Team 1992-2012
      samba: using 'single' process model
      ../source4/dsdb/dns/dns_update.c:294: Failed DNS update - NT_STATUS_IO_TIMEOUT

      No obstante el servicio se inicia y, hasta ahora, ese mensaje lo he interpretado como que eso ocurre porque aun no hemos terminado de configurar todos los servicios relacionados. ¿Es eso así?

      Un saludo cordial, Juan.

      Eliminar
    5. Hola soy Juan de nuevo .. sigo investigando y he mirando el contenido del directorio /usr/local/samba/lib/bind9 me encuentro con lo siguiente:

      -rwxr-xr-x 1 root root 87451 jul 17 09:45 /usr/local/samba/lib/bind9/dlz_bind9.so

      ¿puede ser este el problema? que el propietario es root y no named y el servicio esté dando un mensaje de error impreciso?

      Un saludo cordial Claudio y perdona por las molestias.

      Eliminar
    6. Hola Juan. Revisa la configuración de kerberos en /etc/krb5.conf que esté como se indica y ejecuta:

      kinit administrator@MYDOMAIN.LOCAL

      Te recomiendo también que busques la guía en PDF que publiqué recientemente, ya que tiene mejoras, sobre todo en el orden de hacer las cosas. Considera que este post es del año pasado y ya hay versiones más recientes de samba.

      Saludos.

      Eliminar
    7. Buenos dias Claudio,

      Ya tengo la guía y haré lo que me dices y te diré cual ha sido el resultado.

      Muchas gracias por la ayuda y saludos cordiales.

      Juan.

      Eliminar
    8. Buenas tardes Claudio,

      Siguiendo la guia en pdf y tus indicacione he conseguido pasar del primer escollo, muchas gracias por toda la ayuda prestada, espero que todo vaya como la seda ahora ;-)

      Saludos cordiales,

      Juan

      Eliminar
  18. Hola Claudio!!

    Cuando dices: "También hay que darle los permisos desde Windows a la carpeta profiles. Entramos como usuario administrator y aplicamos los permisos para que todos los usuarios puedan crear su profile en la forma típica como se hace en un servidor Windows."

    Utilizo Windows 7 Enterprise como cliente en el directorio activo de Samba4, pero todavia no he podido asignar los permisos a la carpeta profiles desde el Win7 Enterprise.

    Podrias darnos luz sobre este tema??

    ResponderEliminar
    Respuestas
    1. cuando hago clic derecho sobre propiedades y clic en seguridad aparece lo siguiente: "The requested security information is either unavailable or cannot be displayed" (algo asi como: La seguridad de la información solicitada no está disponible o no se puede mostrar).

      A que se debe esto??

      Eliminar
    2. No tengo idea de qué puede ser eso. Está disponible esta guía actualizada en este enlace http://fraterneo.blogspot.com/2013/08/guia-samba4-como-controlador-de-dominio.html

      Eliminar
  19. Que tal Caludio... Excelente Post!
    Tengo unas preguantas que hacer pero primero te comento... Actualmente trabajo en una empresa con al menos 500 usuarios conectados a la red en estaciones Windows (XP/7) donde hay un servidor de dominio Active Directory con DNS y DHCP.
    Deseo instalar El directorio activo con todos sus juguetes en Centos.
    ¿Como puedo comenzar a realizar la migración?
    ¿Es posible importar los datos (Usuarios y equipos) del AD al nuevo sistema?
    ¿Como podría loguear las estaciones de Windows?

    Saludos cordiales y de antemano... Muchas Gracias!!!

    ResponderEliminar
    Respuestas
    1. Hola Wilber.

      La migración es un proceso muy parecido a este, pero en cierto punto toma otro rumbo. Actualmente estoy trabajando en una guía de migración que está lista en un 98% y que en su momento haré de dominio público. Dicha guía tiene respuestas a todas tus preguntas.

      Un saludo...

      Eliminar
  20. Hola Claudio he seguido tu guia y me ha salido casi a la perfección me gustaría que compartieras esa guía de Migracion del Active Directory

    ResponderEliminar
  21. Hola Claudio, tu guía de Migración ya lo tienes listo :)

    ResponderEliminar
  22. Que tal Claudio, un saludo desde venezuela. Actualmente soy el administrador de red en una enpresa con mas de 300 equipos conectador en red. Existe un Controlador de dominio en Windows el cual quiero migrar a Software Libre. Que opciones me recominedas para poner en produccion? Saludos Cordiales!!!

    ResponderEliminar
    Respuestas
    1. Hola Wilber. Puedes usar la versión más reciente de la guia de Samba 4 para hacer pruebas y lugo implementarlo.

      Estoy trabajando en una guía de migración pero eso toma su tiempo.

      Un saludo.

      Eliminar
  23. Hola!!

    Antes que nada, saludos y muchas gracias. Hice la guía (no tan al pie de la letra por el entorno donde lo enfoqué) pero funciona perfectamente, de hecho lo hice con Samba 4.1.13 y Bind9.10.0 y funciono sin problemas (tomando en cuenta que el server donde lo hice tiene squid y asterisk instalado).

    Muchas Gracias mi estimado.

    ResponderEliminar
    Respuestas
    1. Excelente Nicolás, te felicito. Espero les puedas sacar provecho al conocimiento.

      Un abrazo.

      Eliminar
    2. Hola:

      Me sirvió de mucho tu tutorial, hace un año tengo en produccion un servidor con Samba4.
      Tenes idea como puedo hacer para activar winbind desde los sources, o si es necesario instalarlo por separado, veo que el servicio winbindd esta activo pero el comando winbind no se ejecuta.

      Tengo el nswitch configurado correctamente como lo dice el sitio de samba para que use winbind, pero al momento de revisar directorios me muestra el UID en vez del username.
      Te agradezco mucho si me podes ayudar con este problemita.

      Excelente tutorial.

      Abrazo.

      Abrazo.

      Eliminar
    3. Hola Juan.

      ¿Cual versión de samba está usando?

      Saludos.

      Eliminar
    4. Hola estoy usando la version 4.1.0 de Samba.

      Eliminar
    5. Desde esa versión el daemon se llama winbindd. Si lo compiló de los fuentes debe buscarlo en /usr/local/samba/bin y /usr/local/samba/sbin.

      Le recomiendo que use el repositorio Sernet Samba, el cual ubica todos los binarios en lugares adecuados como /usr/bin y /usr/sbin

      Saludos.

      Eliminar
  24. El tema es que ya lo tengo en producción con usuarios.
    El de sernet lo habia instalado pero no me gusto mucho fué por eso que lo instale desde los sources.

    Acabo de leer que winbind tiene problemas para leer desde los directorios locales, tenes idea si eso es correcto.

    El mismo DC esta funcionando como file server por ahora hasta que actualice el otro servidor, creo que quizas sea que precisa estar como member o algo asi.

    Gracias de antemano.

    ResponderEliminar
  25. Tengo instalado y funcionando el samba 4 en CentOS 7 con el DNS nativo.los usuarios
    se conectan al dominio delpri.edu.
    Nombre del servidor primaria.delpri.edu

    La mayoria de los usuarios entran sin problema a la unidad remota T:\\primaria.delpri.edu\home\user
    pero otras estaciones no tienen acceso a su unidad remota, se ha solucionado cambiando la ruta a
    T:\\primaria\home\user dentro de su perfil de usuario.

    Debido a que los usuarios utilizan aleatoriamente las estaciones no se puede modificar el perfil de la
    ruta a cada momento.

    Deseo saber si alguien tiene un problema similar y como resolverlo...

    ResponderEliminar
    Respuestas
    1. Hola José.

      Eso se resuelve mapeando las unidades en un Logon Script. Esto puede hacerse desde Samba o desde RSAT en una PC con Windows.

      Lee estos enlaces como referencia:
      http://linux-training.be/storage/ch25.html#idp55764784
      http://social.technet.microsoft.com/wiki/contents/articles/1701.active-directory-how-to-map-a-network-drive-through-group-policy-dsforum2wiki.aspx

      Saludos cordiales.

      Eliminar
  26. Una consulta porque borras todo el contenido del archivo named.conf y dejas solo esas lineas. Que pasa si tengo DNS primario y esclavo con sus respectivas zonas. Se agradece por anticipado tu respuesta.

    ResponderEliminar
    Respuestas
    1. El contenido se elimina porque solo son necesarias esas líneas, lo demás lo trabaja bind-dlz y samba mismo. Si ya tienes un DNS funcionando no te servirá de nada en esta guía debido a que se debe compilar Bind con opciones (flags) específicas para el escenario.

      Un saludo.

      Eliminar
  27. Hola, quisiera saber porque al ejecutar el comando:
    rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

    para ACTUALIZAR EL SISTEMA: Inslatar dependencias, librerías de derarrollo y compilación, y otros sercivios.

    Me sale lo siguiente:

    curl: (6) Couldn´t resolve host 'apt.sw.be'
    error: http://apt.sw.be/RPM-GPG-KEY.dag.txt: falló la lectura para importar(2).

    ResponderEliminar
    Respuestas
    1. Debido a que ya no está disponible esa url. Puede buscar en otro recurso el rpm para instalar ese repositorio (RPM Fusion).

      Eliminar