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 futuro 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 servicios 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. Pueden ver la lista de cambios y mejoras en el siguiente enlace.
SOTWARE QUE UTILIZAREMOS
Centos 6.4 32bits virtualizado en VirtualBox
Samba 4.1.0rc2
Bind 9.9.3
NTP 4.2.6p5
DHCP
Kerberos
Librerías de desarrollo (make, gcc, python, openssl, etc.)
Manos a la obra...
INSTALAR EL SISTEMA OPERATIVO
CentOS 6.4 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, deshabilitamos iptables y selinux para evitar inconvenientes hasta nuevo aviso.
[root@localhost ~]# sed -i 's/HOSTNAME=localhost.local/HOSTNAME=sambapdc01.mydomain.local/g' /etc/sysconfig/network [root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config [root@localhost ~]# iptables -F [root@localhost ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables: [ OK ] [root@localhost ~]# service iptables restart iptables: Flushing firewall rules: [ OK ] iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Unloading modules: [ OK ] iptables: Applying firewall rules: [ OK ] [root@localhost ~]# hostname sambapdc01.mydomain.local [root@localhost ~]# service network restart Shutting down interface eth0: [ OK ] Shutting down interface eth1: [ OK ] Shutting down interface loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: [ OK ] Bringing up interface eth1: [ OK ] [root@localhost ~]# logoutAl regresar, configuramos 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=none NM_CONTROLLED=no ONBOOT=yes TYPE=Ethernet DEFROUTE=yes IPADDR=10.0.2.15 NETMASK=255.255.255.0 GATEWAY=10.0.2.2Configurar 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=none 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.0Editamos el fichero resolv.conf para resolver nombres de Internet.
[root@sambapdc01 ~]# vi /etc/resolv.conf nameserver 8.8.8.8 nameserver 8.8.4.4 [root@sambapdc01 ~]# service network restart Shutting down interface eth0: [ OK ] Shutting down interface eth1: [ OK ] Shutting down interface loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: [ OK ] Bringing up interface eth1: [ OK ] [root@sambapdc01 ~]# rebootACTUALIZAR EL SISTEMA: Instalar dependencias, librerías de desarrollo y compilación, y otros servicios.
[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.3-1.el6.rf.i686.rpm [root@sambapdc01 ~]# yum update -y [root@sambapdc01 ~]# yum install -y man mlocate bash-completion nmap nano wget screen [root@sambapdc01 ~]# yum install -y dhcp python-dns 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 popt-devel libxml2-devel libattr-devel key-utils-devel cyrus-sasl-devel libidn-devel libsepol-devel [root@sambapdc01 ~]# rebootDESCARGAR, INSTALAR BIND9 Compilaremos una versión reciente y le podremos soporte DLZ (Dinamyc Loadable Zones) como requiere Samba 4
[root@sambapdc01 ~]# mkdir /usr/src/bind9 [root@sambapdc01 ~]# cd /usr/src/bind9 [root@sambapdc01 bind9]# wget ftp://ftp.ciril.fr/pub/isc/bind9/9.9.3/bind-9.9.3.tar.gz [root@sambapdc01 bind9]# tar zxvf bind-9.9.3.tar.gz [root@sambapdc01 bind9]# cd bind-9.9.3/ [root@sambapdc01 bind-9.9.3]# ./configure --sysconfdir=/etc/named --localstatedir=/var/named --with-gssapi=/usr/include/gssapi --with-dlopen=yes [root@sambapdc01 bind-9.9.3]# make && make install [root@sambapdc01 bind-9.9.3]# cd [root@sambapdc01 ~]# groupadd -g 25 named [root@sambapdc01 ~]# useradd -g named -u 25 -d /var/named -M -s /sbin/nologin namedDESCARGAR, INSTALAR NTP (MUY IMPORTANTE PARA QUE LOS SERVICIOS FUNCIONEN CORRECTAMENTE) 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 y con soporte signd. Lamentablemente la versión actual de CentOS no la provee, por lo que descargaremos el código fuente para compilarlo.
[root@sambapdc01 ~]# mkdir /usr/src/ntp4/ [root@sambapdc01 ~]# cd /usr/src/ntp4/ [root@sambapdc01 ntp4]# wget http://archive.ntp.org/ntp4/ntp-4.2/ntp-4.2.6p5.tar.gz [root@sambapdc01 ntp4]# cd ntp-4.2.6p5/ [root@sambapdc01 ntp-4.2.6p5]# ./configure --enable-ntp-signd [root@sambapdc01 ntp-4.2.6p5]# make && make installDESCARGAR, INSTALAR SAMBA4
[root@sambapdc01 ~]# mkdir /usr/src/samba4 [root@sambapdc01 ~]# cd /usr/src/samba4 [root@sambapdc01 samba4]# wget https://download.samba.org/pub/samba/rc/samba-4.1.0rc2.tar.gz [root@sambapdc01 samba4]# tar zxvf samba-4.1.0rc2.tar.gz [root@sambapdc01 samba4]# cd samba-4.1.0rc2/ [root@sambapdc01 samba-4.1.0rc2]# ./configure.developer && make && make install [root@sambapdc01 samba-4.1.0rc2]# cdAgregar la ruta de Samba4 al PATH
[root@sambapdc01 ~]# nano .bash_profile PATH=$PATH:$HOME/bin:/usr/local/samba/bin:/usr/local/samba/sbin [root@sambapdc01 ~]# source .bash_profileVerificamos que se instaló correctamente.
[root@sambapdc01 ~]# samba -V Version 4.1.0rc2HACER LA PROVISIÓN DEL DOMINIO CON SAMBA4
[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 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=mydomain,DC=local 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=mydomain,DC=local Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions See /usr/local/samba/private/named.conf for an example configuration include file for BIND and /usr/local/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 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-4230643479-790999145-160529251Antes de iniciar Samba4 por primera vez, configuramos BIND y Kerberos, los cuales son imprescindibles para su correcto funcionamiento.
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. Crear el fichero /etc/named/named.conf Quedando de la siguiente manera:
[root@sambapdc01 ~]# nano /etc/named/named.conf options { allow-query { localhost; 192.168.5.1; }; allow-update { 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";Editar el fichero named.conf de Samba4 para que use dlopen para Bind 9.9.0 en adelante.
[root@sambapdc01 ~]# nano /usr/local/samba/private/named.conf dlz "AD DNS Zone" { # For BIND 9.8.0 # database "dlopen /usr/local/samba/lib/bind9/dlz_bind9.so"; # For BIND 9.9.0 database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_9.so"; };Debemos generar el fichero rndc.key que corresponde a Bind, ya que al ser compilado y no de repositorios, no lo genera automáticamente.
[root@sambapdc01 ~]# rndc-confgen -a -r /dev/urandom wrote key file "/etc/named/rndc.key" [root@sambapdc01 ~]# chmod 766 /etc/named/rndc.keyEditar el fichero resolv.conf
[root@sambapdc01 ~]# nano /etc/resolv.conf domain mydomain.local nameserver 127.0.0.1INICIAMOS SAMBA PARA QUE EL MISMO CREE LA ESTRUCTURA DE ARCHIVOS Y CARPETAS NECESARIAS PARA SU FUNCIONAMIENTO. ESTO OCURRE AL INICIARLO POR PRIMERA VEZ.
[root@sambapdc01 ~]# samba -i -M single & samba version 4.1.0rc2 started. Copyright Andrew Tridgell and the Samba Team 1992-2013 samba: using 'single' process model Attempting to autogenerate TLS self-signed keys for https for hostname 'SAMBAPDC01.mydomain.local' TLS self-signed keys generated OK [root@sambapdc01 ~]# killall sambaIniciamos Bind
[root@sambapdc01 ~]# /usr/local/sbin/named -u named -d 3 &CONFIGURAR KERBEROS Editamos el fichero de configuración borrando todo y dejando solo lo siguiente.
[root@sambapdc01 ~]# nano /etc/krb5.conf [libdefaults] default_realm = MYDOMAIN.LOCAL dns_lookup_realm = false dns_lookup_kdc = trueCONFIGURAR 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 NTP Creamos el fichero ntp.conf para el servicio NTP, con el siguiente contenido
[root@sambapdc01 ~]# nano /etc/ntp.conf server 127.127.1.1 fudge 127.127.1.1 stratum 12 server 0.pool.ntp.org iburst prefer server 1.pool.ntp.org iburst prefer driftfile /var/lib/ntp/ntp.drift logfile /var/log/ntp ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/ restrict default mssntp restrict 127.0.0.1 restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noqueryCONFIGURAR SELINUX A continuación 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. Aplicar permisos y crear políticas de Selinux (por si lo habilitamos luego)
[root@sambapdc01 ~]# chgrp root /usr/local/samba/var/lib/ntp_signd/ [root@sambapdc01 ~]# chmod 750 /usr/local/samba/var/lib/ntp_signd/ [root@sambapdc01 ~]# chown named:named /usr/local/samba/private/dns.keytab [root@sambapdc01 ~]# chown named:named /usr/local/samba/private/named.conf [root@sambapdc01 ~]# chmod 644 /usr/local/samba/private/dns.keytab [root@sambapdc01 ~]# chmod 644 /usr/local/samba/private/named.conf [root@sambapdc01 ~]# chown named:named /usr/local/samba/private/dns [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 ~]# 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 ntpd_t /usr/local/samba/var/lib/ntp_signd [root@sambapdc01 ~]# chcon -u system_u -t ntpd_t /usr/local/samba/var/lib/ntp_signd [root@sambapdc01 ~]# chcon -u system_u -t ntpd_t /usr/local/samba/var/lib/ [root@sambapdc01 ~]# chcon -t ntpd_t /usr/local/samba/var/lib/ntp_signd/socketEs 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/lib/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 [root@sambapdc01 ~]# rebootAL REGRESAR PROBAMOS TODO PARA VERIFICAR QUE ESTAMOS BIEN
[root@sambapdc01 ~]# /usr/local/sbin/named -u named -d 3 & [root@sambapdc01 ~]# /usr/local/bin/ntpd & [root@sambapdc01 ~]# service dhcpd start Starting dhcpd: [ OK ] [root@sambapdc01 ~]# samba -i -M single & [1] 1287 samba version 4.1.0rc2 started. Copyright Andrew Tridgell and the Samba Team 1992-2013 samba: using 'single' process modelProbando Kerberos
[root@sambapdc01 ~]# kinit administrator@MYDOMAIN.LOCAL Password for administrator@MYDOMAIN.LOCAL: Warning: Your password will expire in 41 days on Thu Sep 5 16:42:14 2013 [root@sambapdc01 ~]# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@MYDOMAIN.LOCAL Valid starting Expires Service principal 07/25/13 17:01:47 07/26/13 03:01:47 krbtgt/MYDOMAIN.LOCAL@MYDOMAIN.LOCAL renew until 07/26/13 17:01:41Probando Samba4
[root@sambapdc01 ~]# smbclient -L localhost -U% Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.1.0rc2] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.1.0rc2) Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.1.0rc2] Server Comment --------- ------- Workgroup Master --------- ------- [root@sambapdc01 ~]# smbclient //localhost/netlogon -UAdministrator%'solucion.123' -c 'ls' Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.1.0rc2] . D 0 Thu Jul 25 16:41:45 2013 .. D 0 Thu Jul 25 16:42:22 2013 52475 blocks of size 131072. 33551 blocks availablePodemos visualizar los usuarios y grupos:
[root@sambapdc0a1 ~]# 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 [root@sambapdc01 ~]# samba-tool dns query 127.0.0.1 mydomain.local @ ALL Password for [administrator@MYDOMAIN.LOCAL]: Name=, Records=3, Children=0 SOA: serial=1, refresh=900, retry=600, expire=86400, minttl=0, ns=sambapdc01.mydomain.local., email=hostmaster.mydomain.local. (flags=600000f0, serial=1, ttl=3600) NS: sambapdc01.mydomain.local. (flags=600000f0, serial=1, ttl=900) A: 192.168.5.1 (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=sambapdc01, Records=1, Children=0 A: 192.168.5.1 (flags=f0, serial=1, ttl=900)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.1Probando el DNS Dinámico Editar el fichero smb.conf y agregar la siguiente línea en la sección [global]
[root@sambapdc01 ~]# nano /usr/local/samba/etc/smb.conf nsupdate command = /usr/local/bin/nsupdate [root@sambapdc01 ~]# samba_dnsupdate --verbose --all-names IPs: ['192.168.5.1', '10.0.2.15'] Calling nsupdate for A mydomain.local 192.168.5.1 Outgoing update query: ... ... ...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 4 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 6 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 0CREAR EL SCRIPT PARA EL DAEMON DE BIND9
[root@sambapdc01 ~]# nano /etc/rc.d/init.d/named9 #! /bin/bash # # bind9 Bring up/down bind9 service # # chkconfig: - 90 10 # description: Activates/Deactivates all bind9 interfaces configured to \ # start at boot time. # ### BEGIN INIT INFO # Provides: # Should-Start: # Short-Description: Bring up/down bind9 # Description: Bring up/down bind9 ### END INIT INFO # Source function library. . /etc/init.d/functions if [ -f /etc/sysconfig/bind9 ]; then . /etc/sysconfig/bind9 fi CWD=$(pwd) prog="bind9" start() { # Attach irda device echo -n $"Starting $prog: " /usr/local/sbin/named -u named sleep 6 if ps ax | grep -v "grep" | grep -q /sbin/named ; then success $"bind9 startup"; else failure $"bind9 startup"; fi echo } stop() { # Stop service. echo -n $"Shutting down $prog: " killall named sleep 6 if ps ax | grep -v "grep" | grep -q /sbin/named ; then failure $"bind9 shutdown"; else success $"bind9 shutdown"; fi echo } status() { /usr/local/sbin/named -V } # 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 0CREAR EL SCRIPT PARA EL DAEMON DE NTP4
[root@sambapdc01 ~]# nano /etc/rc.d/init.d/ntpd4 #! /bin/bash # # ntp4 Bring up/down ntp4 service # # chkconfig: - 90 10 # description: Activates/Deactivates all ntp4 interfaces configured to \ # start at boot time. # ### BEGIN INIT INFO # Provides: # Should-Start: # Short-Description: Bring up/down ntp4 # Description: Bring up/down ntp4 ### END INIT INFO # Source function library. . /etc/init.d/functions if [ -f /etc/sysconfig/ntp4 ]; then . /etc/sysconfig/ntp4 fi CWD=$(pwd) prog="ntp4" start() { # Attach irda device echo -n $"Starting $prog: " /usr/local/bin/ntpd sleep 2 if ps ax | grep -v "grep" | grep -q /bin/ntpd ; then success $"ntp4 startup"; else failure $"ntp4 startup"; fi echo } stop() { # Stop service. echo -n $"Shutting down $prog: " killall ntpd sleep 2 if ps ax | grep -v "grep" | grep -q /bin/ntpd ; then failure $"ntp4 shutdown"; else success $"ntp4 shutdown"; fi echo } status() { /usr/local/bin/ntpd --help } # 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 0Les damos los permisos necesarios
[root@sambapdc01 ~]# chmod 755 /etc/init.d/samba4 [root@sambapdc01 ~]# chmod 755 /etc/init.d/named9 [root@sambapdc01 ~]# chmod 755 /etc/init.d/ntpd4ACTIVAMOS LOS SERVICIOS PARA QUE INICIEN EN EL ARRANQUE DEL SISTEMA
[root@sambapdc01 ~]# chkconfig samba4 --level 345 on [root@sambapdc01 ~]# chkconfig dhcpd --level 345 on [root@sambapdc01 ~]# chkconfig named9 --level 345 on [root@sambapdc01 ~]# chkconfig ntpd4 --level 345 onCONFIGURAR 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 filtrar el contenido de navegación en la red local y mantener un cache de los datos de navegación de los usuarios.
[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 iptables: Saving firewall rules to /etc/sysconfig/iptables: [ OK ] [root@sambapdc01 ~]# chkconfig iptables --level 345 on [root@sambapdc01 ~]# service iptables restart iptables: Flushing firewall rules: [ OK ] iptables: Setting chains to policy ACCEPT: nat filter [ OK ] iptables: Unloading modules: [ OK ] iptables: Applying firewall rules: [ OK ] [root@sambapdc01 ~]# sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf [root@sambapdc01 ~]# sysctl -w && service network restartCOMPROBAR DESDE UN HOST DEL DOMINIO QUE EL SERVIDOR ESTA FUNCIONANDO
[root@rainbow ~]# nmap 192.168.5.1 Starting Nmap 6.25 ( http://nmap.org ) at 2013-06-24 08:57 AST Nmap scan report for 192.168.5.1 Host is up (0.030s 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 Nmap done: 1 IP address (1 host up) scanned in 0.46 secondsVISUALIZAR LOS ROLES DEL CONTROLADOR DE DOMINIO SAMBA4. Estos son:
- SchemaMasterRole: Es el único controlador de dominio encargado de las actualizaciones del Esquema del Active Directory
- DomainNamingMasterRole: Es el controlador de dominio responsable de realizar los cambios al espacio de nombres del directorio de todo el bosque
- RidAllocationMasterRole: Es el único responsable de procesar los requerimientos de identificadores relativos de todos los controladores de dominio dentro de un dominio dado. También es el responsable de quitar un objeto de su dominio y colocarlo en otro dominio durante la reubicación del objeto.
- PdcEmulationMasterRole: Es necesario para actualizar la hora en la empresa. Windows 2000/XP/2003/Vista incluyen el servicio W32time que es requerido por el protocolo de autenticación Kerberos.
- InfrastructureMasterRole: Cuando un objeto en un dominio hace referencia a otro objeto en otro dominio, este lo hace mediante el GUID, el SID y el DN del objeto que esta siendo referenciado. El Infrastructure Master es el controlador de dominio responsable de actualizar el SID y el Distinguished Name de un objeto en una referencia de objeto entre dominios.
[root@sambapdc01 ~]# samba-tool fsmo show InfrastructureMasterRole owner: CN=NTDS Settings,CN=SAMBAPDC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=mydomain,DC=local RidAllocationMasterRole owner: CN=NTDS Settings,CN=SAMBAPDC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=mydomain,DC=local PdcEmulationMasterRole owner: CN=NTDS Settings,CN=SAMBAPDC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=mydomain,DC=local DomainNamingMasterRole owner: CN=NTDS Settings,CN=SAMBAPDC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=mydomain,DC=local SchemaMasterRole owner: CN=NTDS Settings,CN=SAMBAPDC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=mydomain,DC=localAUNQUE FALTAN LAS CONFIGURACIONES SIGUIENTES 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 = yesEn 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/spoolEditamos el fichero de configuración de Samba4 y agregamos lo siguiente.
[root@sambapdc01 ~]# nano /usr/local/samba/etc/smb.conf [printers] path = /usr/local/samba/var/spool comment = All Printers browseable = Yes read only = No printable = YesPor 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 = NoNota: 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 successfullyLo 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/profilesEditamos 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 = NoEn Windows usando RSAT vamos a Active Directory Users and Computers, seleccionamos todos lo usuarios, 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 en el cliente Windows y abrimos el servidor CentOS (sambapdc01) desde Inicio > Ejecutar > \\sambapdc01, luego vamos a Propiedades de la carpeta profiles y en la pestaña Seguridad 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 probamos que nuestro servidor esté sincronizando el tiempo.
C:\>w32tm /resync /rediscover Enviando comando Resync a local computer... El comando se ha completado correctamente.
Estimados, quisiera compartir con ustedes mi desilusión, pues tras seguir al pie de la letra la presente guía, me encontré con que desde la mitad de ella en adelante, el sistema no responde de la manera en que la guía presume.
ResponderEliminarPor ejemplo: en la línea en que se pretende iniciar Samba por primera vez :
# samba -i -M single &
El sistema devuelve : "../source4/dsdb/dns/dns_update.c:294: Failded DNS update -NT_STATUS_IO_TIMEOUT"
Tras el anterior traspié, intenté seguir adelante con la guía, pero no avancé mucho más, ya que ni siquiera funcionó el paso de asignar los permisos para configurar SELinux:
Dónde se aplicó el comando :
chcon -t named_conf_t /usr/local/samba/private/dns.keytab
El sistema devuelve : "chcon: can't apply partial context to unlabeled file "/usr/local/samba/private/dns.keytab"
y así sucesivamente.
Es lamentable, pues tenía fé en esta guía, se veía detallada y completa, pero el resultado fue el mismo que con otras guías en otras distros. Ninguna funciona ni aún siguiendo los pasos al pie de la letra.
Perdí 1 semana probando con Ubuntu, Debian, CentOS y no conseguí llegar a buen puerto con ninguna.
Por ahora creo que no me queda otra más que seguir con Windows y Active Directory, que por muy mala fama que tenga entre los pingüinos, al menos las guías de Microsoft son a prueba de novatos, como yo.
Gracias por leerme
Saludos.
EliminarEsos errores son normales, el primero porque el DNS no ha sido iniciado y el segundo se advierte en la misma guía que sucederá.
Esta guía ha sido depurada durante más de un año y exitosa en sí misma, se ha usado en cursos y toda una comunidad lo confirma.
Pero si usted ya se rindió, no hay nada que hacer.
Claudio, agradezco el ánimo de compartir tus conocimientos y el darte el tiempo para contestar mi posteo anterior. Tal vez tenía tono de reclamo, pero créeme que no lo postee con ese ánimo, sino más bien buscando un desahogo tras tanto intento fallido por levantar un controlador de dominio AD con Linux (pasé 6 días enteros, y algunas noches también, siguiendo distintas guías). Soy menos que novato en Linux, y la verdad es que el sentimiento de frustración es enorme, ya que veo que no soy capaz de llevar a buen puerto este proyecto ni aún siguiendo las recetas de otros que ya lo han conseguido, siguiendo los mismos pasos. Es realmente frustrante la situación.
ResponderEliminarRespecto a tu respuesta anterior, dices que el primer error que mencioné, es normal pues no se ha iniciado el DNS. ¿Me faltó hacer algo para iniciar el DNS? creo haber seguido todos los pasos.
Te comento, que además de esos errores, se produjeron otros, como por ejemplo, en el paso para probar kerberos, al ejecutar el comando "kinit administrator@MYDOMAIN.LOCAL" el sistema devuelve "kinit: Cannot resolve servers for KDC in realm "MYDOMAIN.LOCAL" while getting initial credentials"
Y este último error fue mi piedra de tope en todas las guías que seguí. Nunca logré iniciar kerberos en forma exitosa.
Una vez más, agradezco la gentileza y el tiempo que te das para manetener este sitio, y para responder los posteos.
Te saluda un amigo desde Chile.
Esos errores son por el DNS. Debes ver /var/log/messages para estar pendiente de la causa por la cual Bind no inicia.
EliminarPor el tiempo no se preocupe, pues una semana no es nada. Nunca me rendí durante los 8 meses que me tomó llevar esta guía hasta este punto.
Saludos.
Estimado Claudio, buenas tardes, te agradezco por compartir tus conocimientos, me parece un excelente trabajo de tu parte.
ResponderEliminarMi pregunta es la siguiente, esta guía puede ser útil con la distro de Centos 64bist.
Saludos.
Prueba y cuéntanos...
EliminarEstimado claudio te saludo nuevamente, sucede que estaba configurando AD en la distro Centos x86_64 y al lanzar el servicio de BIND9 mediante las líneas.
ResponderEliminar[root@serverad ~]# /usr/local/sbin/named -u named -d 3 &
Me aparece lo siguiente, quisiera saber si esto es normal.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
[1] 1220
[root@serverad ~]# named: user 'named' unknown
[1]+ Salida 1 /usr/local/sbin/named -u named -d 3
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Saludos.
Se saltó la creación del usuario y grupo named. Debe crearlos para poder iniciar named correctamente.
EliminarHola estimado claudio, buenos días,
ResponderEliminarestuve siguiendo tu guía desde el primer día de la publicación y he tratado de configura el controlador de dominio paso por paso, pero en los tres intentos no ejecuta la línea.
kinit administrator@MYDOMAIN.LOCAL
y tambien aparece el siguiente mensaje.
"../source4/dsdb/dns/dns_update.c:294: Failded DNS update -NT_STATUS_IO_TIMEOUT"
Por favor revisa el código quizás has obviado un paso en el tutorial.
Mis más cordiales saludos.
Hola caparicio.
EliminarEs evidente que no has iniciado el daemon de Bind. Verifica que esté arriba. Ese es el principal inconveniente por el cual la prueba con kinit no es exitosa.
Saludos.
Buenas tardes Claudio, antes que nada agradecerte por este gran aporte y aprovecho para plantear mi problema, sabes de que instale todo segun la guia sin ningun problema e incluso realice las pruebas tambien sin ningun problema. Solo que al meter un cliente Windows XP al dominio me muestra el siguiente Error: No hay mas extremos disponibles desde el generador de extremos.
ResponderEliminarAnteriormente habia configurado un dominio con samba y openldap y si pude agregar este mismo cliente de Windows XP sin ningun problema.
Tendras alguna pista o recomendacion para mi problema?
Saludos
Hola Antonio. Nunca había visto ese error, evíame carpturas de pantalla para verlo. Prueba con otras versiones de Windows a ver que tal.
EliminarA donde te puedo enviar las imagenes?
EliminarEstas son mis configuraciones y pruebas
ResponderEliminar[root@servertest ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=servertest.jmasjrz.local
GATEWAY=172.16.11.170
[root@servertest ~]#
[root@servertest ~]# cat /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
[root@servertest ~]# nmap 172.16.11.170
Starting Nmap 5.51 ( http://nmap.org ) at 2013-10-10 08:21 MDT
Nmap scan report for servertest.jmasjrz.local (172.16.11.170)
Host is up (0.0000050s 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
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
[root@servertest ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
UUID=5f5aafdb-cb46-4c60-9a92-4dbcee9a9434
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
HWADDR=F8:D1:11:04:1A:BF
IPADDR=172.16.11.170
PREFIX=24
GATEWAY=172.16.11.1
DNS1=172.16.11.170
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
PEERDNS=no
USERCTL=no
NETMASK=255.255.255.0
[root@servertest ~]# cat /etc/resolv.conf
# Generated by NetworkManager
domain jmasjrz.local
nameserver 172.16.11.170
[root@servertest ~]# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
PATH=$PATH:$HOME/bin:/usr/local/samba/bin:/usr/local/samba/sbin
export PATH
[root@servertest ~]# samba -V
Version 4.1.0rc4
[root@servertest ~]# vim /etc/named.conf
options {
allow-query { localhost; 172.16.11.170; };
allow-update { localhost; 172.16.11.170; };
allow-transfer { localhost; 172.16.11.170; };
allow-recursion { localhost; 172.16.11.170; };
forwarders { 200.23.242.185; 200.23.242.177; };
tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";
};
include "/usr/local/samba/private/named.conf";
[root@servertest ~]# cat /usr/local/samba/private/named.conf
dlz "AD DNS Zone" {
# For BIND 9.8.0
#database "dlopen /usr/local/samba/lib/bind9/dlz_bind9.so";
# For BIND 9.9.0
database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_9.so";
};
[root@servertest ~]# cat /etc/krb5.conf
ResponderEliminar[libdefaults]
default_realm = JMASJRZ.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = true
[root@servertest ~]# service named9 status
BIND 9.9.4 (Extended Support Version) built with '--sysconfdir=/etc/named' '--localstatedir=/var/named' '--with-gssapi=/usr/include/gssapi' '--with-dlopen=yes'
using OpenSSL version: OpenSSL 1.0.0 29 Mar 2010
using libxml2 version: 2.7.6
[root@servertest ~]# service samba4 status
Samba version: 4.1.0rc4
Build environment:
Build host: Linux servertest.jmasjrz.local 2.6.32-358.18.1.el6.x86_64 #1 SMP Wed Aug 28 17:19:38 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Paths:
BINDIR: /usr/local/samba/bin
SBINDIR: /usr/local/samba/sbin
CONFIGFILE: /usr/local/samba/etc/smb.conf
NCALRPCDIR: /usr/local/samba/var/run/ncalrpc
LOGFILEBASE: /usr/local/samba/var
LMHOSTSFILE: /usr/local/samba/etc/lmhosts
DATADIR: /usr/local/samba/share
MODULESDIR: /usr/local/samba/lib
LOCKDIR: /usr/local/samba/var/lock
STATEDIR: /usr/local/samba/var/locks
CACHEDIR: /usr/local/samba/var/cache
PIDDIR: /usr/local/samba/var/run
PRIVATE_DIR: /usr/local/samba/private
CODEPAGEDIR: /usr/local/samba/share/codepages
SETUPDIR: /usr/local/samba/share/setup
WINBINDD_SOCKET_DIR: /usr/local/samba/var/run/winbindd
WINBINDD_PRIVILEGED_SOCKET_DIR: /usr/local/samba/var/lib/winbindd_privileged
NTP_SIGND_SOCKET_DIR: /usr/local/samba/var/lib/ntp_signd
[root@servertest ~]# ps -fe|grep ntpd
ResponderEliminarroot 2261 1 0 Oct09 ? 00:00:01 /usr/local/bin/ntpd
root 6923 6773 0 08:30 pts/0 00:00:00 grep ntpd
[root@servertest ~]# ps -fe|grep samba
root 2272 1 0 Oct09 ? 00:00:00 /usr/local/samba/sbin/samba
root 2274 2272 0 Oct09 ? 00:00:00 /usr/local/samba/sbin/samba
root 2275 2272 0 Oct09 ? 00:00:00 /usr/local/samba/sbin/samba
root 2276 2274 0 Oct09 ? 00:00:01 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root 2277 2272 0 Oct09 ? 00:00:05 /usr/local/samba/sbin/samba
root 2278 2272 0 Oct09 ? 00:00:00 /usr/local/samba/sbin/samba
root 2279 2272 0 Oct09 ? 00:00:00 /usr/local/samba/sbin/samba
root 2280 2272 0 Oct09 ? 00:00:00 /usr/local/samba/sbin/samba
root 2281 2272 0 Oct09 ? 00:00:00 /usr/local/samba/sbin/samba
root 2282 2272 0 Oct09 ? 00:00:36 /usr/local/samba/sbin/samba
root 2283 2272 0 Oct09 ? 00:00:00 /usr/local/samba/sbin/samba
root 2284 2272 0 Oct09 ? 00:00:00 /usr/local/samba/sbin/samba
root 2285 2272 0 Oct09 ? 00:00:11 /usr/local/samba/sbin/samba
root 2286 2272 0 Oct09 ? 00:00:01 /usr/local/samba/sbin/samba
root 2289 2276 0 Oct09 ? 00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root 6925 6773 0 08:31 pts/0 00:00:00 grep samba
[root@servertest ~]# ps -fe|grep named
named 2250 1 0 Oct09 ? 00:00:11 /usr/local/sbin/named -u named
root 6928 6773 0 08:31 pts/0 00:00:00 grep named
[root@servertest ~]#
[root@servertest ~]# cat /etc/ntp.conf
server 127.127.1.1
fudge 127.127.1.1 stratum 12
server 0.pool.ntp.org iburst prefer
server 1.pool.ntp.org iburst prefer
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp
ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/
restrict default mssntp
restrict 127.0.0.1
restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
[root@servertest ~]#
[root@servertest ~]# service ntpd4 restart
Shutting down ntp4: [ OK ]
Starting ntp4: [ OK ]
[root@servertest ~]# service named9 restart
Shutting down bind9: [ OK ]
Starting bind9: [ OK ]
[root@servertest ~]# service samba4 restart
Shutting down samba4: [ OK ]
Starting samba4: [ OK ]
[root@servertest ~]# kinit administrator@JMASJRZ.LOCAL
ResponderEliminarPassword for administrator@JMASJRZ.LOCAL:
Warning: Your password will expire in 40 days on Tue Nov 19 12:46:57 2013
[root@servertest ~]#
[root@servertest ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@JMASJRZ.LOCAL
Valid starting Expires Service principal
10/10/13 08:39:19 10/10/13 18:39:19 krbtgt/JMASJRZ.LOCAL@JMASJRZ.LOCAL
renew until 10/11/13 08:39:15
[root@servertest ~]# smbclient -L localhost -U%
Domain=[JMASJRZ] OS=[Unix] Server=[Samba 4.1.0rc4]
Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.1.0rc4)
Domain=[JMASJRZ] OS=[Unix] Server=[Samba 4.1.0rc4]
Server Comment
--------- -------
Workgroup Master
--------- -------
[root@servertest ~]#
[root@servertest ~]# smbclient //localhost/netlogon -UAdministrator -c 'ls'
Enter Administrator's password:
Domain=[JMASJRZ] OS=[Unix] Server=[Samba 4.1.0rc4]
. D 0 Tue Oct 8 13:46:51 2013
.. D 0 Tue Oct 8 13:46:59 2013
50396 blocks of size 2097152. 45880 blocks available
[root@servertest ~]#
[root@servertest ~]# wbinfo -u
Administrator
Guest
krbtgt
dns-servertest
[root@servertest ~]#
[root@servertest ~]# 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
[root@servertest ~]# samba-tool dns query 127.0.0.1 jmasjrz.local @ ALL
ResponderEliminarPassword for [administrator@JMASJRZ.LOCAL]:
Name=, Records=3, Children=0
SOA: serial=1, refresh=900, retry=600, expire=86400, minttl=0, ns=servertest.jmasjrz.local., email=hostmaster.jmasjrz.local. (flags=600000f0, serial=1, ttl=3600)
NS: servertest.jmasjrz.local. (flags=600000f0, serial=1, ttl=900)
A: 172.16.11.170 (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=servertest, Records=1, Children=0
A: 172.16.11.170 (flags=f0, serial=1, ttl=900)
[root@servertest ~]#
[root@servertest ~]# host -t SRV _ldap._tcp.jmasjrz.local.
_ldap._tcp.jmasjrz.local has SRV record 0 100 389 servertest.jmasjrz.local.
[root@servertest ~]# host -t SRV _kerberos._udp.jmasjrz.local.
_kerberos._udp.jmasjrz.local has SRV record 0 100 88 servertest.jmasjrz.local.
[root@servertest ~]# host -t A servertest.jmasjrz.local.
servertest.jmasjrz.local has address 172.16.11.170
[root@servertest ~]#
[root@servertest ~]# cat /usr/local/samba/etc/smb.conf
# Global parameters
[global]
workgroup = JMASJRZ
realm = jmasjrz.local
netbios name = SERVERTEST
server role = active directory domain controller
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate
nsupdate command = /usr/local/bin/nsupdate
[netlogon]
path = /usr/local/samba/var/locks/sysvol/jmasjrz.local/scripts
read only = No
[sysvol]
path = /usr/local/samba/var/locks/sysvol
read only = No
[root@servertest ~]#
[root@servertest ~]# samba-tool fsmo show
InfrastructureMasterRole owner: CN=NTDS Settings,CN=SERVERTEST,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=jmasjrz,DC=local
RidAllocationMasterRole owner: CN=NTDS Settings,CN=SERVERTEST,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=jmasjrz,DC=local
PdcEmulationMasterRole owner: CN=NTDS Settings,CN=SERVERTEST,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=jmasjrz,DC=local
DomainNamingMasterRole owner: CN=NTDS Settings,CN=SERVERTEST,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=jmasjrz,DC=local
SchemaMasterRole owner: CN=NTDS Settings,CN=SERVERTEST,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=jmasjrz,DC=local
Todo se ve bien. Debe ser el Windows que tiene algun problema. Lamentablemente ahi no puedo ayudarle.
EliminarBuenas tardes Claudio
ResponderEliminarAl parecer algo tiene la maquina virtual de XP. Realice pruebas con un equipo con windows 7 y entro al dominio sin ningun problema, solo que cuando te firmas tarda demasiado en entrar, voy a seguir haciendo pruebas haber si tiene algo que ver el AD de Samba o es el windows.
Por otro lado, ahora que ya tengo el dominio, como puedo establecer y aplicar politicas a los usuarios y grupos. Por ejemplo que todos los usuarios tengan el mismo wallpaper que yo como administrador quiero establecer. O que la longitud minima del password sea de 6 caracteres, etc.
De antemano gracias por tu apoyo y que estes bien.
Buenos dias Claudio
ResponderEliminarAqui reportandome de nuevo y aprovecho para comentarte sobre el problema que tengo para loguear un usuario al dominio de samba. Despues de haber seguido esta guia todo funciona a la perfeccion, solo que al firmarme al dominio con cualquier usuario tarda hasta 5 minutos. He buscado informacion al respecto en internet y al parecer es un problema muy recurrente y las soluciones que presentan no me han funcionado. Mi pregunta es:
Sabes algo al respecto para solucionar este problema?
Saludos.
Hola.
EliminarNunca me ha pasado eso. Yo presumo que tu problema se debe a que solo configuraste una interfaz de red. En la guía claramente uso dos interfaces, una para conectarme a internet y otra para el domonio. Además debes poner a andar el servicio DHCP como está en la guía para que los clientes puedan encontrar el servidor y debe ser el unico host en la red con este servicio para que no haya conflictos.
Saludos.
Buenas Tardes Claudio
EliminarAqui sigo buscando la solucion al problema de login, que tarda mucho en firmarse al dominio. Hice la prueba del dhcp pero siguio igual, aunque necesito configurarlo con ips estaticas.
Por otro lado buscando en internet, mencionan que uno puede activar el log de login del cliente en cuestion. Realice las configuraciones para generar el log y me arroja la siguiente informacion:
GPSVC(21c.a64) 15:44:28:245 UserPolicy: Waiting for machine policy wait for network event with timeout 0 ms
GPSVC(21c.a64) 15:45:31:476 GetUserGuid: Failed to get user guid with 1722.
GPSVC(21c.a64) 15:46:34:722 GetUserGuid: Failed to get user guid with 1722.
GPSVC(21c.a64) 15:50:49:080 ProcessGPOs: MyGetUserName failed with 1722.
GPSVC(21c.a64) 15:50:49:080 Opened query for NLA successfully
GPSVC(21c.a64) 15:50:49:080 ProcessGPOs: No WMI logging done in this policy cycle.
Como puedes observar, al momento de querer obtener el user guid es donde tarda, me hace suponer que es algo de configuracion de samba. Pero tu con tu experiencia que cres que pueda estar pasando?
Saludos.
Ponga las IP manuales. Como segunda opción configura todo de nuevo desde cero.
EliminarBuenos dias Claudio
EliminarPor fin encontre donde estaba el problema. Cambie la configuracion del firewall a como tu la planteas y ya funciono a la perfeccion. Ahora mi pregunta es en cuanto a mi configuracion de iptables original que es la siguiente y me gustaria saber que me falta configurar para que funciones bien el dominio ya que necesito dejar abiertos solo los puertos necesarios.
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Chain INPUT (policy DROP 1 packets, 78 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT tcp -- * * 172.16.11.0/24 0.0.0.0/0 tcp dpt:3128
2 0 0 ACCEPT udp -- * * 172.16.11.0/24 0.0.0.0/0 udp dpt:684
3 0 0 ACCEPT tcp -- * * 172.16.11.0/24 0.0.0.0/0 tcp dpt:636
4 0 0 ACCEPT tcp -- * * 172.16.11.0/24 0.0.0.0/0 tcp dpt:464
5 0 0 ACCEPT tcp -- * * 172.16.11.0/24 0.0.0.0/0 tcp dpt:445
6 0 0 ACCEPT tcp -- * * 172.16.11.0/24 0.0.0.0/0 tcp dpt:389
7 0 0 ACCEPT tcp -- * * 172.16.11.0/24 0.0.0.0/0 tcp dpt:139
8 0 0 ACCEPT udp -- * * 172.16.11.0/24 0.0.0.0/0 udp dpt:138
9 0 0 ACCEPT tcp -- * * 172.16.11.0/24 0.0.0.0/0 tcp dpt:138
10 0 0 ACCEPT tcp -- * * 172.16.11.0/24 0.0.0.0/0 tcp dpt:137
11 0 0 ACCEPT udp -- * * 172.16.11.0/24 0.0.0.0/0 udp dpt:88
12 0 0 ACCEPT tcp -- * * 172.16.11.0/24 0.0.0.0/0 tcp dpt:88
13 4 160 ACCEPT tcp -- eth1 * 172.16.11.81 0.0.0.0/0 tcp dpt:22 state NEW,ESTABLISHED
14 0 0 ACCEPT icmp -- * * 172.16.11.0/24 0.0.0.0/0
Eliminar15 0 0 ACCEPT tcp -- eth1 * 172.16.11.0/24 0.0.0.0/0 tcp dpt:53 state NEW,ESTABLISHED
16 0 0 ACCEPT udp -- eth1 * 172.16.11.0/24 0.0.0.0/0 udp dpt:53 state NEW,ESTABLISHED
17 0 0 ACCEPT tcp -- eth1 * 172.16.11.0/24 0.0.0.0/0 tcp dpt:953 state NEW,ESTABLISHED
18 0 0 ACCEPT udp -- eth1 * 172.16.11.0/24 0.0.0.0/0 udp dpt:953 state NEW,ESTABLISHED
19 0 0 ACCEPT tcp -- eth1 * 172.16.11.0/24 0.0.0.0/0 tcp dpt:25 state NEW,ESTABLISHED
20 0 0 ACCEPT tcp -- eth1 * 172.16.11.0/24 0.0.0.0/0 tcp dpt:110 state NEW,ESTABLISHED
21 0 0 ACCEPT tcp -- eth1 * 172.16.11.0/24 0.0.0.0/0 tcp dpt:143 state NEW,ESTABLISHED
22 0 0 ACCEPT tcp -- eth1 * 172.16.11.0/24 0.0.0.0/0 tcp dpt:587 state NEW,ESTABLISHED
23 0 0 ACCEPT udp -- eth1 * 172.16.11.0/24 0.0.0.0/0 udp dpt:123 state NEW,ESTABLISHED
24 0 0 ACCEPT tcp -- eth1 * 172.16.11.0/24 0.0.0.0/0 tcp dpt:3268 state NEW,ESTABLISHED
25 0 0 ACCEPT tcp -- eth1 * 172.16.11.0/24 0.0.0.0/0 tcp dpt:3269 state NEW,ESTABLISHED
26 0 0 ACCEPT tcp -- eth1 * 172.16.11.0/24 0.0.0.0/0 tcp dpt:135 state NEW,ESTABLISHED
27 0 0 ACCEPT udp -- eth1 * 172.16.11.0/24 0.0.0.0/0 udp dpt:135 state NEW,ESTABLISHED
28 0 0 ACCEPT tcp -- eth1 * 172.16.11.81 0.0.0.0/0 tcp dpt:10000 state NEW,ESTABLISHED
29 0 0 ACCEPT tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 state NEW,ESTABLISHED
30 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
31 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
32 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521
33 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
34 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- eth1 * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 6 packets, 576 bytes)
num pkts bytes target prot opt in out source destination
De antemano agradezco tu valioso apoyo y espero que esto le sirva a laguien mas.
Ya encontre el problema, aqui te envio mi iptables, en el cual solo comente la linea #iptables -P INPUT DROP lo que soluciono el problema.
EliminarPero en teoria este comando me deberia eliminar todas las demas politicas que yo no implemente, o Cual seria la forma correcta de solo dejar la politicas que aplique?
# Flush any existing rules, leaving just the defaults
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
# Set the default policies to allow everything while we set up new rules.
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
# Limit to eth0 from a specific IP subnet to access port 22 if required.
iptables -A INPUT -i eth1 -p tcp -s 172.16.11.81 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -s 172.16.11.0/24 -j ACCEPT
# Open port 53 for incoming DNS requests.
iptables -A INPUT -i eth1 -p tcp -s 172.16.11.0/24 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p udp -s 172.16.11.0/24 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -s 172.16.11.0/24 --dport 953 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p udp -s 172.16.11.0/24 --dport 953 -m state --state NEW,ESTABLISHED -j ACCEPT
# Open port 23 for incoming Telnet requests.
iptables -A INPUT -i eth1 -p tcp -s 172.16.11.0/24 --dport 23 -m state --state NEW,ESTABLISHED -j ACCEPT
# Open port 25 for incoming SMTP requests.
iptables -A INPUT -i eth1 -p tcp -s 172.16.11.0/24 --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -i eth1 -p tcp --sport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -s 172.16.11.0/24 --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -s 172.16.11.0/24 --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -s 172.16.11.0/24 --dport 587 -m state --state NEW,ESTABLISHED -j ACCEPT
# Open port for Samba requests.
ResponderEliminariptables -I INPUT -s 172.16.11.0/24 -p tcp --dport 88 -j ACCEPT
iptables -I INPUT -s 172.16.11.0/24 -p udp --dport 88 -j ACCEPT
iptables -I INPUT -s 172.16.11.0/24 -p tcp --dport 137 -j ACCEPT
iptables -I INPUT -s 172.16.11.0/24 -p tcp --dport 138 -j ACCEPT
iptables -I INPUT -s 172.16.11.0/24 -p udp --dport 138 -j ACCEPT
iptables -I INPUT -s 172.16.11.0/24 -p tcp --dport 139 -j ACCEPT
iptables -I INPUT -s 172.16.11.0/24 -p tcp --dport 389 -j ACCEPT
iptables -I INPUT -s 172.16.11.0/24 -p tcp --dport 445 -j ACCEPT
iptables -I INPUT -s 172.16.11.0/24 -p tcp --dport 464 -j ACCEPT
iptables -I INPUT -s 172.16.11.0/24 -p tcp --dport 636 -j ACCEPT
iptables -I INPUT -s 172.16.11.0/24 -p udp --dport 684 -j ACCEPT
iptables -A INPUT -i eth1 -p udp -s 172.16.11.0/24 --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -s 172.16.11.0/24 --dport 3268 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -s 172.16.11.0/24 --dport 3269 -m state --state NEW,ESTABLISHED -j ACCEPT
# Open port 135 for incoming RPC requests.
iptables -A INPUT -i eth1 -p tcp -s 172.16.11.0/24 --dport 135 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p udp -s 172.16.11.0/24 --dport 135 -m state --state NEW,ESTABLISHED -j ACCEPT
# Open port 10000 for incoming HTTP requests.
iptables -A INPUT -i eth1 -p tcp -s 172.16.11.81 --dport 10000 -m state --state NEW,ESTABLISHED -j ACCEPT
# Open port 443 for incoming HTTPS requests. (uncomment if required)
iptables -A INPUT -i eth1 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
# Accept any localhost (loopback) calls.
iptables -A INPUT -i lo -j ACCEPT
# Open port 3128 for incoming Proxy requests.
iptables -I INPUT -s 172.16.11.0/24 -p tcp --dport 3128 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -s 172.16.11.0/24 -p tcp --dport 80 -j DNAT --to 172.16.11.170:3128
iptables -t nat -A PREROUTING -i eth1 -s 172.16.11.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
#Connection from Public IP
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
# Connect to Oracle DB from local network
iptables -t nat -A PREROUTING -i eth1 -s 172.16.11.0/24 -p tcp --dport 1521 -j DNAT --to 172.16.11.16:1521
iptables -t filter -A INPUT -p tcp --dport 1521 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
# Allow any existing connection to remain.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -P INPUT DROP
iptables -P FORWARD DROP
# Accept any outbound requests from this server.
iptables -P OUTPUT ACCEPT
# Save the settings.
service iptables save
# Display the settings.
iptables -nL -v --line-numbers
Saludos
Que bueno que lo resolvió. Esto es una muestra de por qué las guías hay que seguirlas al pie de la letra para obtener los mismos resultados, estudiarla bien y luego hacer su propia implementación.
EliminarSaludos.
Looking up IPv4 addresses
ResponderEliminarMore than one IPv4 address found. Using 172.16.0.1
Looking up IPv6 addresses
No IPv6 address will be assigned
ldb: module schema_load initialization failed : No such object
ldb: module rootdse initialization failed : No such object
ldb: module samba_dsdb initialization failed : No such object
ldb: Unable to load modules for /usr/local/samba/private/sam.ldb: (null)
samdb_connect failed
VFS connect failed!
ERROR(): Provision failed - ProvisioningError: Your filesystem or build does not support posix ACLs, which s3fs requires. Try the mounting the filesystem with the 'acl' option.
File "/usr/local/samba/lib64/python2.6/site-packages/samba/netcmd/domain.py", line 398, in run
use_rfc2307=use_rfc2307, skip_sysvolacl=False)
File "/usr/local/samba/lib64/python2.6/site-packages/samba/provision/__init__.py", line 2052, in provision
raise ProvisioningError("Your filesystem or build does not support posix ACLs, which s3fs requires. Try the mounting the filesystem with the 'acl' option.")
utilizo centos 6.3 de 64 bits
Eliminarya se actualizo y esta en centos 6.4
ResponderEliminarHola es un excelente tutorial pero te comento que tengo un inconveniente todo sale superbien hasta que se llega al punto de kerberos donde me sale el sgte error que me puedes sugerir al respecto:
ResponderEliminaral ejecutar esto: kinit administrator@MYDOMAIN.LOCAL
kinit: Cannot resolve servers for KDC in realm "MYDOMAIN.LOCAL" while getting initial credentials
Hola,
ResponderEliminarLo que estoy haciendo es una migración de Samba_3.6.21 a Samba_4.1.2. El tutorial me ha sido de mucha ayuda, prácticamente la única diferencia al migrar ha sido a la hora de hacer la provisión, que he indicado los archivos de configuración y tdb que ya tenía. Una detalle que a alguien le puede ser útil es que si en el archivo smb de la versión 3 hay algo relativo aauditoría VFS es necesario comentar esas líneas y añadirlas a mano en el nuevo smb.conf porque en mi caso provocaba un segfault.
Una cosa que no me está funcionando como en Samba3 es la compartición [homes], antes entraba en \\servidor\homes y accedía a la carpeta home del usuario, ahora me funciona con \\servidor\nombre_de_usuario pero con \\servidor\homes me da un error *Uno de los dispositivos vinculados al sistema no funciona* ¿A alguien le ha pasado? ¿Sabe como resolverlo?
Gracias.
Saludos.
EliminarEs curioso pero no he migrado de un samba 3.x hacia la versión 4. Sin embargo estoy preparando una migración de Windows a Samba 4.
Trate de ver la lista de cambios desde la 3.6.21 hasta la 4.1.2 a ver si ajustaron algo respecto a eso. Verifique los permisos también.
Más info puede encontrar aqui https://wiki.samba.org/index.php/Samba4/samba-tool/domain/classicupgrade/HOWTO
Hola,
EliminarGracias por tu respuesta. Ya he dado con ello, para que funcione la compartición [homes] hay que configurar Winbind y en smb.conf:
[homes]
path=/home/%U
Saludos.
Hola a todos:
ResponderEliminarSiguiendo el tutorial he avanzado mucho en la configuración de un AD con samba4, pero me ha surgido un problema. Con samba3 para autorizar el acceso a un grupo en una compartición añadía la línea valid users = @grupoaccede, con samba4 me deniega el acceso. Me funciona si pongo el SID (S-1-5-21-xxx-xxx) en lugar del nombre del grupo, pero resulta muy confuso a la hora de hacer cambios.
Hola, muy interesante el articulo. Estoy probando samba y me da el siguiente error en bind al cargar en el log:
ResponderEliminarFeb 26 16:27:03 pdcsamba4 named[1704]: zone 'version.bind' allows updates by IP address, which is insecure
Feb 26 16:27:03 pdcsamba4 named[1704]: zone 'hostname.bind' allows updates by IP address, which is insecure
Feb 26 16:27:03 pdcsamba4 named[1704]: zone 'authors.bind' allows updates by IP address, which is insecure
Feb 26 16:27:03 pdcsamba4 named[1704]: zone 'id.server' allows updates by IP address, which is insecure
Feb 26 16:27:03 pdcsamba4 named[1704]: command channel listening on 127.0.0.1#953
Feb 26 16:27:03 pdcsamba4 named[1704]: command channel listening on ::1#953
Feb 26 16:27:03 pdcsamba4 named[1704]: the working directory is not writable
Feb 26 16:27:03 pdcsamba4 named[1704]: isc_log_open 'named.run' failed: permission denied
Feb 26 16:27:03 pdcsamba4 named[1704]: managed-keys-zone: loading from master file managed-keys.bind failed: permission denied
Feb 26 16:27:03 pdcsamba4 named[1704]: managed-keys.bind.jnl: open: permission denied
Feb 26 16:27:03 pdcsamba4 named[1704]: managed-keys-zone: journal rollforward failed: unexpected error
Feb 26 16:27:03 pdcsamba4 named[1704]: all zones loaded
Feb 26 16:27:03 pdcsamba4 named[1704]: running
Despues si intengo ejecutar:
samba_dnsupdate --verbose --all-names
me da este error el log:
Feb 26 16:47:15 pdcsamba4 samba[1118]: /usr/local/samba/sbin/samba_dnsupdate: update failed: REFUSED
Feb 26 16:47:15 pdcsamba4 named[1704]: samba_dlz: starting transaction on zone _msdcs.vesytech.local
Feb 26 16:47:15 pdcsamba4 named[1704]: client 192.168.10.15#20614: update '_msdcs.vesytech.local/IN' denied
Feb 26 16:47:15 pdcsamba4 named[1704]: samba_dlz: cancelling transaction on zone _msdcs.vesytech.local
Feb 26 16:47:15 pdcsamba4 samba[1118]: [2014/02/26 16:47:15.753590, 0] ../lib/util/util_runcmd.c:317(samba_runcmd_io_handler)
Sabes que puede ser??
Muchas gracias por tu articulo y tu ayuda.
Saludos
Hola David. Presumo que te has saltado sin querer algún paso de la guía. Verifica que Bind sea 9.9.3 o superior y que lo hayas compilado de sus fuentes.
EliminarSaludos.
Hola Claudio, gracias por la rapida respuesta. No estoy ahora en la ofi y no te puedon enviar la version, pero te aseguro que si que compile el bind de las fuentes. En cuanto pueda lo reviso.
EliminarTe pongo la version de bind:
Eliminar[root@pdcsamba4 bind-9.9.3]# named -V
BIND 9.9.3 (Extended Support Version) built with '--sysconfdir=/etc/named' '--localstatedir=/var/named' '--with-gssapi=/usr/include/gssapi' '--with-dlopen=yes'
using OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013
using libxml2 version: 2.7.6
Alguna otra cosa que pueda mirar??
Eso está bien. Revise el /usr/local/samba/private/named.conf para que esté como en la guía y que los permisos estén correctos como se indica también en la guía.
EliminarDespues de eso todo estaría bien, porque el Bind está iniciando bien.
Feb 26 16:27:03 pdcsamba4 named[1704]: all zones loaded
Feb 26 16:27:03 pdcsamba4 named[1704]: running
En el peor de los casos lo recomendable es empezar desde cero. Recuerde que esto es una guía para un escenario, si cambia un nombre o deja un paso sin hacer no funcionará como espera.
Parece que se ha arreglado añadiendo esto:
Eliminardirectory "/var/named";
al named.conf
Aunque sigue sin funcionar el
samba_dnsupdate --verbose --all-names
que sigue dando error de refused.
Gracias de todas formas por tus respuestas y por el blog en general.
Saludos.
Felicitaciones, un excelente tutorial, solo un comentario el archivo named.conf debe ser creado en /etc/named/named.conf, de lo contrario el daemon de bind no lo encuentra.
ResponderEliminarSaludos
Problemas al momento de hacer la provision del dominiocon samba4
ResponderEliminarHola mi amigo Claudio, te comento que tuve problemas al momento de seguir tu guia especificamente en esta parte, yo ejecuto el siguiente comando con mis datos
samba-tool domain provision --realm=mydomain.local --domain=MYDOMAIN --adminpass 'solucion.123' --server-role=dc --dns-backend=BIND9_DLZ
y me da el siguiente error, no se si esto es normal o esta bien seguir asi:
"/usr/local/samba/bin/samba-tool domain provision
Realm [SHEKAPAN-COS.LOCAL]: shekapan-cos.local
Domain [shekapan-cos]: shekapan-cos
Server Role (dc, member, standalone) [dc]: dc
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrator password:
Retype password:
ERROR(): Provision failed - ProvisioningError: guess_names: 'realm =' was not specified in supplied /usr/local/samba/etc/smb.conf. Please remove the smb.conf file and let provision generate it
File "/usr/local/samba/lib64/python2.6/site-packages/samba/netcmd/domain.py", line 398, in run
use_rfc2307=use_rfc2307, skip_sysvolacl=False)
File "/usr/local/samba/lib64/python2.6/site-packages/samba/provision/__init__.py", line 1988, in provision
sitename=sitename, rootdn=rootdn, domain_names_forced=(samdb_fill == FILL_DRS))
File "/usr/local/samba/lib64/python2.6/site-packages/samba/provision/__init__.py", line 595, in guess_names
raise ProvisioningError("guess_names: 'realm =' was not specified in supplied %s. Please remove the smb.conf file and let provision generate it" % lp.configfile)"
y bueno, pues no se como continuar con lo que nos muestras en tu cuadro de texto o no se si es esto lo que nos deberia de mostrar despues de ejecutar el comando correctamente
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 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=mydomain,DC=local
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=mydomain,DC=local
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
See /usr/local/samba/private/named.conf for an example configuration include file for BIND
and /usr/local/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 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-4230643479-790999145-160529251
Agradezco mucho tu ayuda, lo estoy haciendo ya que en el trabajo queremos migrar nuestro servidor windows a linux, estoy usando CentOS 6.5
Revise que la configuración de Kerberos esté correcta en el fichero /etc/krb5.conf
EliminarHola Claudio!!
ResponderEliminarComo puedo autenticarme con un usuario del Active Directory en el Servidor Centos 6.5. Me explico tengo los users en /etc/password y tambien los del Active directory, si quiero loguearme (autenticarme) en el mismo servidor donde esta el samba4 con los usuarios del active directory (jose,juan,maria) de manera grafica y a su vez poder loguearme con cualqueira de los usuarios locales (root,fermin), como puedo hacerlo??
Me puedo autenticar con los usuarios del Active Directory desde las PC clientes, pero no puedo hacerlo en el mismo Servidor.
Hola.
EliminarLos usuarios de Samba 4 no son parte del sistema Linux que hace de servidor de AD, por lo que no pueden loguarse en el mismo sistema donde samba está instalado.
Presumo que agregando el propio servidor Linux al AD de Samba4 daría la posibilidad de hacer login con sus propios usuarios.
Pero es solo una presunción.
Haga las pruebas y nos cuenta a ver qué tal.
Saludos....
Buenas noches Claudio!!
EliminarHe intentando de varias maneras de agregar el servidor al AD de Samba4, pero hasta el momento no me ha funcionado.
Este es el mensaje de error que lanza al momento de intentar agregar Centos 6.5 al AD al servidor:
[root@servidor ~]# net ads join -U Administrator -S servidor.dominio.local
Enter Administrator's password:
kinit succeeded but ads_sasl_spnego_krb5_bind failed: Invalid credentials
Failed to join domain: failed to connect to AD: Invalid credentials
El ultimo ejemplo que utilizo para agregar al AD es este:
http://kb.brightcomputing.com/faq/index.php?action=artikel&cat=13&id=7&artlang=en
He intentado buscar un buen manual para agregar Centos al AD, pero hasta ahora no lo he podido encontrar.
estimado Claudio, por favor ayudame es que tengo un impresora win compartida con linux mediante samba pero cuando manda a imprimir desde linux a la impresora el internet se cae y la impresion queda por la mitad
ResponderEliminarError writing spool: NT_STATUS_IO_TIMEOUT"
agradeciendo tu ayuda
whatsapp 3207913683
mail rafaolivella@gmail.com