Directorio Activo en Linux
Contenido
- 1 Introducción:
- 2 Qué saber antes de empezar: Breve introducción al Directorio Activo
- 3 Recursos
- 4 SLES 11
- 5 Bienvenido a Samba 4
- 5.1 Videos demostrativos
- 5.2 Una nota sobre las versiones alfa
- 5.3 Paso 1: Descarga Samba4
- 5.4 Paso 2: Compilar Samba4
- 5.5 Paso 3: Instalar SAMBA 4
- 5.6 Paso 4: Aprovisionamiento de Samba4 (script de configuración)
- 5.7 Paso 5: Arrancando SAMBA 4
- 5.8 Paso 6: Pruebas Samba4
- 5.9 Paso 7: Crear un recurso compartido en smb.conf
- 5.10 Paso 8: Configurar DNS
- 5.11 Paso 9: Prueba de kerberos
- 6 Unir clientes Windows al dominio:
- 7 Administrar el dominio desde un cliente windows.
- 8 Configurando perfiles móviles para Windows 7
- 9 Añadir Unidad Organizativa al dominio.
- 10 Implementando políticas de grupo en un dominio con SAMBA 4.
- 10.1 Instalando la consola de Administración de políticas de grupo.
- 10.2 Conectándonos a un controlador de dominio de Windows como controlador adicional
- 10.3 Unir SAMBA4 a un dominio como controlador de dominio adicional.
- 10.4 Conectándonos a un dominio existente como Controlador de Dominio.
- 10.5 Lanzando SAMBA
- 10.6 Ldapcmp.
- 10.7 Actualizaciones DNS.
- 11 Conozcamos un poco el Directorio Activo de Windows
- 11.1 Uso de herramientas de diagnóstico para un Controlador de Dominio para Windows 2000, Windows 2003 o Windows 2008,
- 11.2 Realizar un diagnóstico del DC
- 11.3 Tareas periódicas a llevar a cabo en un DC
- 11.4 Problemas comunes relacionados y tareas que podemos revisar
- 11.4.1 Los clientes Windows 2000 en adelante tardan en validarse mucho tiempo para el inicio de sesión.
- 11.4.2 Las políticas de grupo no se aplican
- 11.4.3 Los DC’s de diferentes Sites, y del mismo dominio dejan de replicar
- 11.4.4 Los usuarios no inician sesión
- 11.4.5 Los clientes validan o acceden a recursos de servidores de otra subred en lugar de acceder a los de la suya
- 11.5 Eliminación de metadatos en el AD
- 12 Informa de tu éxito / fracaso.
- 13 Fuentes
Introducción:
Por todos es conocida la hegemonía de sistemas operativos propietarios en las empresas, altos costos en licenciamiento, altos gastos de mantenimiento preventivo (suites de anti- virus, los “parches de los martes”, etc.), a simple vista es incomprensible que utilicemos algo que nos cueste dinero y nos de problemas pero la estrategia por parte de la empresa que crea y mantiene dichos sistemas operativos es clara y funcional, inundar nuestras empresas / hogares con la parte cliente de su sistema operativo para así obligar al lado “servidor” a ser “de la casa”, nos encontramos con empresas multinacionales con facturas millonarias en licencias o lo que es peor, organismos públicos gastando dinero de las arcas del estado en licencias y caros sistemas de prevención de desastres (virus, etc.) con la disculpa de no existir alternativas reales libres a la infraestructura ya creada.
La comisión Europea Anti-monopolio obligó a la empresa Microsoft© (dueña de los sistemas operativos propietarios que nos atañen) a liberar sus extensiones propietarias bajo una serie de acuerdos de no divulgación, dicha liberación permitirá a los desarrolladores de el proyecto SAMBA la implementación de su sistema allá donde exista una red con clientes propietarios y estando a la altura de las circunstancias, cabe destacar que la gente de Samba basaba sus investigaciones en el análisis de paquetes y la ingeniería inversa, al poseer dichas extensiones SAMBA ha empezado desde 0 la creación del prometedor SAMBA 4 que es el núcleo de este artículo.
El escenario de este artículo es el de crear un PDC (controlador de dominio principal) a la altura de un Windows 2003 , dicho PDC podrá convivir y promocionarse con cualquier servidor de la casa Microsoft© (como Windows 2008) y cualquier cliente (Windows 7....) no debemos de olvidar nunca la juventud del desarrollo de SAMBA4 y debemos de recordar siempre su estado ALPHA, la gente de “samba” recomienda encarecidamente la NO PUESTA EN PRODUCCIÓN del mismo. Una vez creado el dominio con SAMBA 4, conectarle máquinas Windowos.
Lo que se busca en este artículo es una versión funcional y estable de Samba4 para "congelarla" y ponerla en producción.
La convivencia de SAMBA4 con BIND9 (o incluso 10) es obligada (como es lógico), es muy importante que BIND este correctamente instalado y configurado con soporte para actualizaciones dinámicas para que se puedan crear los registros PTR y A, (entre otras cosas) para ello debemos compilarlo con soporte GSSAPI dado que sin ello no podremos actualizar dichos registros.
Es importante tener una serie de conocimientos técnicos sobre la utilización de Linux en general, el funcionamiento de un servidor DNS (RFC 1035) así como el funcionamiento del protocolo SAMBA y sus comandos, el funcionamiento de un Directorio Activo de Microsoft©, herramientas de compilación en Linux y de administración de servidores Windows, recomiendo encarecidamente perder todo el tiempo que sea posible en la correcta configuración de BIND (Named), ¡una vez que funciona lo replicaremos con los ojos cerrados!
Samba 3.5 hacía ya funciones parecidas a un Directorio Activo, pero samba 3.5 + LDAP NO ES un directorio activo, SAMBA4 es realmente una alternativa (la única) con las ventajas y potencia del Software Libre.
Qué saber antes de empezar: Breve introducción al Directorio Activo
Antes de poder montar una infraestructura de red basada en los servicios de directorio de Directorio Activo, es necesario tener claro los conceptos y funciones principales que hacen posible que dicha tecnología sirva para implementar una solución y no un problema. Es por eso que hay que conocer muy bien los conceptos básicos que se interrelacionan entre sí a la hora de hacer funcionar el Directorio Activo. A continuación se expone una breve lista y una pequeña descripción de lo que una persona debe conocer antes de implementar dicha solución; sería muy recomendable que se repasaran dichos términos/tecnologías en la propia ayuda del sistema o en la web de Microsoft© para poder comprender mejor el funcionamiento de lo que se va a explicar:
Directorio Activo, ¿qué es?
El Directorio Activo es el servicio de directorio de Microsoft©…pero, ¿qué es un servicio de directorio?. Un servicio de directorio es como una base de datos para guardar gran cantidad de información y poder consultarla, agruparla, modificarla, etc.; haciendo un ejemplo, es como si fuera una agenda donde vamos a guardar y organizar la información que para nosotros es necesaria y útil.
Por tanto, en el Directorio Activo guardaremos la información útil para la empresa, y después poder hacer diversos tipos de acciones sobre dicha información:
DNS
El servicio de DNS sirve para la resolución de nombres de máquina a una dirección IP y viceversa. Además, para el Directorio Activo, es su base, o mejor dicho, son sus cimientos; si el DNS no está bien configurado o tiene problemas, entonces nuestro diseño de Directorio Activo no funcionará adecuadamente y nos dará más problemas que soluciones, ya que el Directorio Activo usa el servicio de DNS para poder dejar información que después las estaciones de trabajo tendrán que poder consultar para interactuar correctamente con el servicio de directorio (validación, consultas, búsquedas, etc.).
Maestros de Operaciones (FSMO) y Global Catalog
A pesar de que a partir de Windows 2000 Server se ha cambiado el modelo de réplicas basado en “maestro-esclavo” como había en NT4 (el servidor que hacía de PDC actualizaba los cambios y después replicaba a los BDC que pudiera haber) a “multi-maestro” (cualquier DC puede actualizar los datos y después replicarlos con el resto de DC’s), hay que tener en cuenta que ciertas operaciones “críticas” e incluso cotidianas sólo pueden ser llevadas a cabo por determinados DC que lleven alguno de los roles especiales. Esos roles sirven para concretar unas funciones específicas a llevar a cabo por un DC, por lo tanto, es muy importante comprender la función de éstos y las consecuencias que puede haber en caso de una caída (en el apartado A.3 Implicaciones de un DC, FSMO o Global Catalog caído se puede ver más detalladamente una lista de posibles implicaciones).
Global Catalog:
FSMO:
Sitios (sites)
Un site es simplemente una agrupación de sub-redes lógicas, mediante la cual, el servicio de directorio será capaz de generar internamente y de manera transparente la topología de replicación entre servidores de subredes con buena comunicación entre sí, dar la posibilidad de establecer horarios e intervalos de replicación entre DC’s de diferentes subredes que no tengan tan buena comunicación y aprovechar así mejor el ancho de banda, o para poder resolver mejor las peticiones de un cliente (así, por ejemplo, es posible que un cliente quiera consultar un servidor que sea "Global Catalog" (catálogo global); según la subred a la que pertenezca el cliente, y si esta está definida en algún "site", el servicio de directorio será capaz de proporcionar a ese cliente una respuesta informándole de los servidores de "Global Catalog" a los que más “fácil y rápidamente” puedan conectar para llevar a cabo su petición, y evitar así, por ejemplo, responderle con un GC que pudiera estar en una subred con un ancho de banda muy bajo).
Digamos que estos 4 puntos descritos son los pilares básicos que deben conocerse y entenderse para poder llevar a cabo una correcta implementación basada en una solución de Directorio Activo (por supuesto, por debajo hay mucho más que se puede ver mirando muchos de los enlaces o documentación aquí adjunta o en la web de Microsoft©). |
Si alguna función o parte de estos 4 puntos falla, por la causa que sea, supondrá un problema ya que podremos empezar a experimentar ciertos y diversos “comportamientos extraños” con nuestro Directorio Activo.
Problemas tan diversos como la imposibilidad de que un usuario inicie sesión, que un DC deje de replicar con otro, no poder abrir una consola de gestión, o que no podamos unir máquinas al dominio pueden darse si no implementamos correctamente nuestro Directorio Activo.
Es importante recalcar que la mayor parte de los problemas más comunes o cotidianos, se suelen deber en gran parte a una mala configuración DNS, tanto del servidor como en la parte cliente, de ahí que sea necesario recalcar que si no entendemos bien el funcionamiento de un DNS ni su implicación y relación estrechísima con el Directorio Activo, tendremos entonces muchos problemas en muchas partes que afecten a los clientes; por ejemplo, no se aplicarán correctamente las políticas de grupo; los clientes no podrían localizar servidores para hacer consultas y peticiones como puede ser un servidor para el inicio de sesión; la réplica entre DC’s falla debido a que no son capaces de conectar correctamente entre sí, etc...
La definición de "sites" también es importantísima, ya que con ella podemos evitar que un cliente de una sede, por ejemplo, se valide en un DC de otra sede de otro país teniendo un DC en su misma subred u otra más accesible. O evitar que un DC de una sede replique con otro de otra sede en horas de trabajo, restando y degradando así el ancho de banda, seguramente más necesario a esas horas para otro tipo de operaciones. Es común también pensar que si en una subred remota no hay ningún DC, no es necesario definirla porque no va a afectar a nuestro diseño ya que mucha gente piensa que los "sites" sólo son útiles de cara a los DC’s para replicar entre sí. Nada más lejos de la realidad.
Como hemos explicado, los "sites" no sólo sirven para que los DC’s repliquen a horas e intervalos establecidos… si no para que clientes de esa subred puedan localizar servicios en subredes más próximas o con mejor ancho de banda que otras posibles que pueda haber sin tener que generar tráfico de red innecesario o siquiera obtener una respuesta adecuada. Un ejemplo claro como hemos dicho antes, puede ser una oficina pequeña de 5 puestos de trabajo, que no tengan ningún DC en esa oficina. Para iniciar sesión tendrán que localizar un DC, y por tanto, preguntarán al DNS por un servidor válido para ello; si no hay una definición de "sites" correcta, es posible que el "DNS" le responda cualquier servidor que pueda estar en una sede remota con un ancho de banda pésimo… con lo cual ya tenemos un problema grave; en cambio, si hay una definición de "Sites" adecuada, el "DNS" habrá registrado mediante el servicio de directorio qué DC’s pueden ser los más “óptimos” para esa pequeña red remota a la hora de proporcionarles el inicio de sesión.
Otro ejemplo menos visto puede darse en el acceso a un recurso de DFS que puede estar replicado en varios servidores. Con la definición de "sites", un cliente podrá saber qué servidor es el más “próximo” o propicio para acceder a dicho DFS; sin la definición de "sites" y "subredes", no.
Recursos
Físicos
- HP Proliant ML110 G6
- 4 GB RAM
- 250 GB Disco Duro (S-ATA)
Lógicos
- SuSe Linux Enterprise Server Versión 11.
- Kernel 2,6,27,19-5-xen (64)
- Xen 3.3.1. (*)
- Hypervisor 3.3.1.
- Xen Tools 3.3.1.
- Samba 4 (Version 4,0,0alpha4-GIT-606a447)
- Bind 9.7.2-P2 (versión con soporte GSSAPI y OpenSSL)
- Squid 2.7 (estable)
- Servidor DHCP (ISC)
- Amanda (Backup) 2.5.2
- Kerberos 5 (Cliente)
- OpenLDAP (Cliente)
- OpenSSL (Cliente)
- (*)
Usaremos XEN para virtualizar los clientes Windows XP, usamos Windows XP SP3 que nos permite una versión de evaluación durante 30 días, suficientes para someterlos a las baterías de pruebas pertinentes y no tener que adquirir la licencia. Necesitamos un procesador que permita instrucciones de virtualización, dicho soporte es indispensable para una virtualización total de windows (kernel propietario y cerrado) no así para una virtualización de Linux que su kernel es parcheable. (mas ventajas de Linux... )
SLES 11
Este desarrollo se ha creado para una empresa la cual por políticas internas usa SLED para sus estaciones y SLED para sus servidores, (todos sabemos quien es SuSe...)
Yo particularmente soy usuario de Debian por que estoy acostumbrado a su gestor de paquetes y su estabilidad, pero eso es otro tema.
Archivo:Http://t1.gstatic.com/images?q=tbn:ANd9GcSnRU2XNcMpHJh1h3lI8GsT5rHT8IV7BvvdW7dvARzRIFNNYK5i
Cabe destacar que SLES tiene un gestor de paquetes muy bueno y liviano que es el “zypper” (para mi gusto un "intento" de APT), el uso de YaST queda para otros menesteres mas sencillos dado que lo fácil lo puede llegar a convertir en difícil, pero eso es un tema de gustos y criterio.
En el caso de "SLES" para tener un entorno de desarrollo que nos permita compilar correctamente los programas que necesitaremos mas adelante es imprescindible instalar los siguientes paquetes (en este caso usamos YaST).
YaST:
Archivo:Http://t0.gstatic.com/images?q=tbn:ANd9GcTw0TR6IRpTh bvpu-xs1180eN29BmoLyyAny6BkHNMmRcjHjDj
Nos vamos a Software, Instalar y desinstalar, en filtro buscamos PATRONES y en “compilador y herramientas C” seleccionamos todo, después buscamos “Desarrollo de Kernel” y dentro de ese patrón el paquete “Kernel-Source” , con esto debería de ser suficiente para compilar programas desde sus fuentes.
Contenido
- Samba4 “HOWTO”
- Video-tutorial de este HOWTO.
- Una nota sobre las versiones alfa
- Paso 1: Descargue Samba4
- git
- rsync
- Compilar Samba4
- Instale Samba4
- Samba4, (provision) script de configuración.
- Lanzando Samba4
- Pruebas Samba4
- smbclient
- Crear un recurso compartido en smb.conf
- Paso 8: Configurar DNS
- Paso 9: Prueba de kerberos
- Paso 10: Kerberos: Configurar actualizaciones dinámicas de DNS
- Nota acerca de la compatibilidad del sistema de archivos
- Prueba de su sistema de ficheros
- Configurar un cliente de Windows para unirse a un Samba 4 de Active Directory
- Paso 1: Configurar DNS Marco para Windows
- Paso 2: Configurar la fecha y la hora y zona horaria
- Paso 3: Unir el cliente de Windows en el dominio
- Visualización del Directorio Activo creado por Samba 4 desde Windows XP Pro
- Paso 1: Instalación de herramientas de administración remota de Windows en Windows.
- Windows7
- Windows Vista
- Windows XP Pro
- Paso 1: Viendo el contenido del directorio de samba cuatro activos
- Gestión de Samba 4 Active Directory de Windows XP Pro
- Paso 1: Añadir usuarios de Active Directory en Samba 4
- Configuración de perfiles móviles (Windows 7)
- Añadiendo UO (Unidad Organizativa) en un dominio de SAMBA 4.
- Implementación de directivas de grupo (GPO) en un dominio SAMBA 4.
- Instalación de la Consola de administración de directivas de grupo.
- Unirse a un controlador de dominio de Windows como un adicional de DC en un dominio.
Bienvenido a Samba 4
(Fuente Wiki de SAMBA4 traducida al castellano y modificada en la parte de configuración de DNS).
Videos demostrativos
Archivo:Http://t1.gstatic.com/images?q=tbn:ANd9GcSWXJ5WhoV3H0XR-QVdmb2DaXkusMi0a-Q3 xZEoCnBiDz-y6eJ
Una nota sobre las versiones alfa
SAMBA4 se está desarrollando muy rápidamente. Esta guía ha sido recientemente actualizada para reflejar los cambios realizados hasta septiembre de 2010 en preparación para el lanzamiento-alpha13 Samba4.
Paso 1: Descarga Samba4
Si has descargado el código Samba4 a través de un archivo comprimido en “tarball” desde el sitio web “samba.org”, el paso 1 ya se ha completado.
Para hacer pruebas con la versión descargada, puedes continuar con el Paso 2.
Ten en cuenta que en este ejemplo la carpeta se llama «samba-master», en tu caso el nombre se basará en el del archivo comprimido (por ejemplo:
samba-4.0.0alpha13
de samba-tar 4.0.0alpha13.tar.gz
).
También ten en cuenta que el código samba4 se encuentra en el source4 /
(es un subdirectorio),
Hay dos métodos para descargar la versión de samba actual:
- a través de git
- a través de rsync
Si no tienes “rsync” o “git”, debes de instalar uno de ellos, te recomendamos utilizar el método de “git” para la descarga de Samba, ya que hace más fácil obtener actualizaciones, y permite también integrar los parches de prueba de los desarrolladores de Samba más fácilmente en caso de problemas.
GIT
$ git clone git://git.samba.org/samba.git samba-master; cd samba-master
Esto creará un directorio llamado "samba-master" en el directorio actual.
Ahora actualizamos a la última versión:
git pull
rsync
$ rsync -avz samba.org::ftp/unpacked/samba_4_0_test/ samba-master
Ten en cuenta que el comando rsync anterior te saldrá del repositorio “git”, antes debemos a hacer algunos cambios para que puedas actualizarla usando “git”:
$ cd samba-master/ $ rm .git/refs/tags/* $ rm -r .git/refs/remotes/ .git $ git config remote.origin.url git://git.samba.org/samba.git $ git config --add remote.origin.fetch +refs/tags/*:refs/tags/* (esta línea es opcional) $ git fetch
NOTA : Si la da el error: "refs/heads/master does not point to a valid object!" puedes omitirlo sin problema.
Puedes actualizar a la versión más reciente en un futuro con:
$ git pull
Si obtienes un error como este:
fatal: Unable to create '[...]/samba_master/.git/index.lock': File exists.
Hay que eliminar el archivo «.lock» y ejecutar git pull
de nuevo.
Paso 2: Compilar Samba4
Recomendaciones de dependencias:
Los paquetes previos a samba son los siguientes:
$ libacl-devel libblkid-devel gnutls-devel readline-devel python-devel gdb pkgconfig
NOTA: Solo los paquetes de SAMBA tienen un “script” de configuración. Si has usado git o rsync deberás de hacerlo a mano.
$ cd samba-master/source4 $ ./autogen-waf.sh
Ejecutar
$ cd samba-master/source4 $ ./configure.developer $ make
El comando anterior configura e instala en la ruta /usr/local /samba Si deseas instalar «SAMBA» en otra ruta debes de usar la opción -- prefix
cuando lánzes configure.developer
.
La razón de usar configure.developer
en lugar de configure
para las versiones alfa de SAMBA4 es que va a incluir información de depuración extra que nos ayudará a diagnosticar problemas en caso de errores. Con esta opción podremos someter a SAMBA-4 a diversas pruebas.
Después de instalar «SAMBA», es recomendable ejecutar:
$ make quicktest
Que se ejecutará un corto (aproximadamente 5 minutos) conjunto de pruebas para validar la instalación de Samba. make quicktest
es una forma rápida de comprobar que la instalación pasa las pruebas básicas, dado que a veces se cuelan errores en los repositorios GIT ...
La salida de ' '
debe terminar en un TODO OK
". Si no es así debemos de ver si nos faltan dependencias o hay fallos en el sistema.
Paso 3: Instalar SAMBA 4
Ejecutar como un usuario con permisos de escritura en el directorio de instalación (que por defecto es /usr/local/samba). Utilice la opción -- prefix
para configure.developer
arriba para cambiar esta ubicación.
$ make install
Para el resto de esta guía se asume que ha instalado Samba4 en la ubicación predeterminada, que es /usr/local/samba.
Paso 4: Aprovisionamiento de Samba4 (script de configuración)
El script provision
crea una base de datos de usuario básico (crea los archivos de configuración, los .conf de diversas aplicaciones como Named, Kerberos, etc.), y se utiliza cuando se va a configurar el servidor Samba4 en su propio dominio.
Si por el contrario quieres configurar tu servidor de Samba4 como un controlador de dominio adicional en un dominio existente, por favor visite la página [«Samba4 unirse a un dominio» que está en la wiki de samba4, en (samba.org) http://wiki.samba.org/index.php/Samba4_joining_a_domain]
En los ejemplos siguientes se asume el nombre de dominio es "dos00000.local" y su "short" (también conocido como NT4) o nombre corto de dominio es: "dos00000". Vamos a suponer que el nombre de host servidores Samba es "bulled".
Por lo que:
- Nombre de dominio DNS: dos00000.local
- Nombre corto (NT4): dos00000
- Nombre del Host: bulled
Se debe ejecutar como un usuario con permisos de escritura (lo que significa que puede tener que ejecutar este comando con sudo o incluso como root).
$ cd samba-master/source4 $ ./setup/provision --realm=dos00000.local --domain=dos00000 --adminpass=P@SSW0RD --server-role='domain controller'
Si obtiene un error como este:
tdb_open_ex: could not open file /usr/local/samba/private/sam.ldb.d/DC=dos00000,DC=local,DC=COM. ldb: Permission denied ldb:
Esto significa que no hemos usado "sudo" por lo que deberíamos de usar "sudo" para el comando anterior.
Nota: Si falla el "provision" puedes probar a borrar el "smb.conf" y volver a lanzarlo.
Hay muchas otras opciones que puede pasar al comando 'provision', ejecutarlo con la opción “- help” para ver una lista de las mismas.
Paso 5: Arrancando SAMBA 4
Para lanzar Samba4 como un servidor de producción, basta con lanzar el ejecutable samba
como root.
# samba
Si se ejecuta Samba4 en modo «estándar», (que es el adecuado para producción):
O podemos usar un script adaptado de «SAMBA 3», yo uso el siguiente:
<código>
! /bin/sh ### BEGIN INIT INFO # Provides: samba4 # Required-Start: $network $remote_fs $syslog # Should-Start: # Required-Stop: $network $remote_fs $syslog # Should-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Short-Description: Samba4 SMB/CIFS file server # Description: Samba SMB/CIFS file server ### END INIT INFO SMBD_BIN="/usr/local/samba/sbin/samba" SMB_CONF="/usr/local/samba/etc/smb.conf" PID_FILE="/usr/local/samba/var/run/samba.pid" . /etc/rc.status rc_reset # Check for missing binary if [ ! -x ${SMBD_BIN} ]; then echo -n >&2 "El demonio SAMBA4, ${SMBD_BIN} no esta instalado. " rc_status -s exit 5 fi # be extra carefull cause connection fail if TMPDIR is not writeable export TMPDIR="/var/tmp" test -f /etc/sysconfig/samba4 && \ . /etc/sysconfig/samba4 for setting in $SAMBA_SMBD_ENV; do pathcheck="${setting%%:*}" variable="${setting##*:}" test "${pathcheck}" != "${variable}" -a ! -e "${pathcheck}" && \ continue export eval ${variable} done case "$1" in start) echo -n "Lanzando el demonio de Samba 4 " if [ ! -f ${SMB_CONF} ]; then echo -n >&2 "El archivo de configuracion, ${SMB_CONF} no existe. " rc_status -s exit 6 fi checkproc -p ${PID_FILE} ${SMBD_BIN} case $? in 0) echo -n "- ¡OJO!: el demonio se esta ejecutando. " ;; 1) echo -n "- ¡OJO!: ${PID_FILE} existe. " ;; esac test -f /etc/sysconfig/language && \ . /etc/sysconfig/language export LC_ALL="$RC_LC_ALL" export LC_CTYPE="$RC_LC_CTYPE" export LANG="$RC_LANG" startproc -p ${PID_FILE} ${SMBD_BIN} -D -s ${SMB_CONF} unset LC_ALL LC_CTYPE LANG rc_status -v ;; stop) echo -n "Matando el demonio de SAMBA4 " checkproc -p ${PID_FILE} ${SMBD_BIN} || \ echo -n " ¡OJO!: el demonio no se esta ejecutando. " killproc -p ${PID_FILE} -t 10 ${SMBD_BIN} rc_status -v ;; try-restart|condrestart) if test "$1" = "condrestart"; then echo "${attn} Usa try-restart ${done}(LSB)${attn} en lugar de condrestart ${warn}(RH)${norm}" fi $0 status if test $? = 0; then $0 restart else rc_reset fi rc_status ;; restart) $0 stop $0 start rc_status ;; force-reload|reload) echo -n "Recargando el demonio de SAMBA 4 " checkproc -p ${PID_FILE} ${SMBD_BIN} && \ /usr/local/samba touch ${PID_FILE} || \ echo -n >&2 " Ojo!: el demonio no esta corriendo. " killproc -p ${PID_FILE} -HUP ${SMBD_BIN} rc_status -v ;; status) echo -n "Chequeando el demonio de SAMBA4 " checkproc -p ${PID_FILE} ${SMBD_BIN} rc_status -v ;; probe) test ${SMB_CONF} -nt ${PID_FILE} && echo reload ;; *) echo "Usa: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" exit 1 ;; esac rc_exit 118,1 Bot
</código>
Si está ejecutando Samba4 como desarrollador puede encontrar lo siguiente mayor utilidad:
# samba -i -M single
Con esto lanzamos "samba" con mensajes en la salida estándar, y ejecutando un solo proceso. Ese modo de funcionamiento hace que la depuración de "samba" con gdb sea particularmente fácil. Si desea lanzarlo bajo gdb, entonces el siguiente ejemplo puede ser útil:
$ sudo gdb --args bin/samba -i -M single
Tenga en cuenta que si está ejecutando cualquier proceso relacionado con SAMBA3 ( smbd y nmbd ) hay que detenerlo antes de comenzar el "samba" de Samba 4...
Asegúrese de poner el bin y / sbin de su nueva instalación en tu $ PATH para evitar la ejecución de la versión incorrecta. Usted puede ver la versión que está usando ejecutando "samba -V".
En nuestro caso para lanzar samba 4 deberemos de hacer
/usr/local/samba/sbin/samba -iM single -d 4
donde -d 4 es el modo «debug», cuanto mayor sea el número, mas información nos dará.
Para lanzar /
para SAMBA 4, habría que hacer:
/etc/init.d/samba4 start
o
/etc/init.d/samba4 stop
NOTA: En versiones anteriores de desarrollo de samba «samba» todavía se llamaba «smbd».
Paso 6: Pruebas Samba4
smbclient
Pruebe el siguiente comando:
$ smbclient -L localhost -U
Eso te mostrará una lista de acciones disponibles en el servidor. Por ejemplo
Sharename Type Comment --------- ---- ------- test Disk netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.0.0alpha12-GIT-5e755e9) ADMIN$ Disk DISK Service (Samba 4.0.0alpha12-GIT-5e755e9)
netlogon
y sysvol
son recursos necesarios para el funcionamiento del servidor de Directorio Activo.
Para probar que la autenticación está trabajando, debes de conectarte al recurso compartido netlogon utilizando la contraseña de administrador se establece anteriormente. (en nuestro caso P@SSW0RD).
$ smbclient //localhost/netlogon -Uadministrator%PASSWORD
Usted debe obtener un smb>
del sistema,(un intérprete de comandos) y el acceso a su directorio netlogon
.
Paso 7: Crear un recurso compartido en smb.conf
El "provision" creará un simple smb.conf . Para que el servidor sea útil tendrá que configurarlo para tener por lo menos una acción. Por emplo:
[test] path = /data/test read only = no
Tenga en cuenta que en las versiones alfa actual de Samba4 es necesario reiniciar Samba para que las nuevas acciones visibles.
NOTA: como recordatorio decir que el smb.conf del SAMBA4 está en “ /usr/local/samba/etc/smb.conf no confundirlo con el que está en /etc/smb.conf “por que este corresponde a la versión 3 de samba.
Paso 8: Configurar DNS
Archivo:Http://t1.gstatic.com/images?q=tbn:ANd9GcQeg1VWDVv7tXb6nGehk1jR3CXwgERvRRjJx-ZME5-sx15p75af
Nota del redactor: Este paso es el mas sensible y crítico, si no tienes un planteamiento claro de lo que vas a hacer o de su funcionamiento te recomiendo perder todo el tiempo que sea necesario en este tema. |
Una correcta configuración del servidor DNS es esencial para el correcto funcionamiento de Samba4.
Sin las entradas correctas del DNS, “kerberos” no funciona, que a su vez significa que muchas de las características básicas de Samba4 no funcionará.
Vale la pena pararse un tiempo extra para asegurarse que la configuración DNS es la correcta, como la depuración de los problemas causados por mala configuración del DNS puede llevarnos mucho tiempo y bastantes quebraderos de cabeza.
La forma más sencilla de configurar el DNS para Samba4 es usar el “script” "provision", si miras en “/usr/local/samba/private”, encontrarás un archivo llamado “named.conf” y otro llamado “dos00000.local.zone” (estos nombres son los del ejemplo, si has usado otros esto cambiará).
En mi caso particular me hice una instalación de NAMED (Bind 9.7) desde sus fuentes, con soporte a actualizaciones dinámicas y resolviendo perfectamente antes de hacer nada de SAMBA
Es muy IMPORTANTE tener el servidor BIND funcionando perfectamente con soporte GSSIAPI (para las actualizaciones inversas) cabe destacar que BIND soporta dichas actualizaciones desde su versión 9.5-rc1 , yo he optado en instalar la última estable de “bind” (de la web de ISC) dado que se comenta que existen graves vulnerabilidades en bind 9.5.x en relación a la denegación de servicio, de la cual intento escapar siempre que puedo.
Para configurar el BIND 9 correctamente nos bajamos su código fuente de la página de ISC (sus creadores) y hacemos la instalación típica (lógicamente debemos de disponer de todas las herramientas para dicha compilación lo cual se presupone que está).
# configure --with-openssl=yes --with-gssapi=/usr
NOTA: A este punto me costó muchísimo llegar, dado que lo compilaba con –with-gssapi=yes y no me daba errores hasta que intentaba hacer una actualización el DNS que no iba... editando con “vi” el ./configure del BIND (el script de configuración) me dí cuenta de que llamaba a unas librerías de gssapi que staban en /usr y /usr/lib... |
# make # make install
Una vez instalado nos encontramos que el “named.conf” que busca por defecto está en /etc/named.conf (como en otros bind's) pero este tipo de instalación NO GENERA un “named.conf” en ningún sitio. Los ejecutables del nuevo named están en “/usr/local/bin” y en “/usr/local/sbin” y el script del “bind 9.5” que sita en “/etc/init.d” ha sido renombrado a “/etc/init.d/bind95” para llamar “/etc/inint.d/bind” al ejecutable del 9.7 y poder hacer un start o stop típico . ( /etc/init.d/named start , stop...) para ver que versión es debemos de poner el -v después del ejecutable.
Yo en este punto dejé el Wiki oficial de SAMBA 4 de lado dado que me encontré con miles de problemas rozando la frustración en muchos casos.
La “wiki” de “SAMBA” nos dice que hagamos “includes” en nuestro /etc/named.conf , yo no los hice por que me daba, lo que decidí hacer es sustituir el “include” por su valor real, (he probado sin SeLinux ni AppArmor y no funcionaban los includes).
Yo una vez instalado el BIND 9.7 me cree un archivo de configuración desde 0 tal que así sustituyendo los “includes” por su contenido “real” (al mayor estilo windows, copia/pega).
vi /etc/named.conf
<código>
# Rafa Toucedo < rtoucedo@bit-bull.es > # All is GPL. options { directory "/var/lib/named"; ← directorio donde estarán las zonas dump-file "/var/log/named_dump.db"; statistics-file "/var/log/named.stats"; allow-query { localhost; 10.159.172.0/24; }; admitimos las consultas de nuestra red allow-transfer { localhost; 10.159.172.0/24; }; admitimos las transferencias a nuestra red allow-recursion { localhost; 10.159.172.0/24; }; admitimos recursividad de nuestra red <20> # Estas dos líneas de aquí abajo harán que nuestro named (bind) no funciones si no tiene el soporte GSSAPI (actualizaciones dinámicas del DNS) si comentamos estas dos líneas y nuestro named FUNCIONA es que no tiene soporte para actualizaciones dinámicas. tkey-gssapi-credential "DNS/dos00000.local"; tkey-domain "DOS00000.LOCAL"; # Ahora definimos los “reenviadores” (si los hay)en este caso dos servidores DNS de mi red: forwarders { 10.159.172.243; 10.159.172.242; }; }; # Esta sección es para información interna: view "internal" { match-clients { localhost; 10.159.172.0/24; }; zone "." in { type hint; file "root.hint"; }; # Definimos la zona “directa” del dominio (ojo, este caso es para un dominio INTERNO): zone "dos00000.local" in { type master; file "dos00000.local"; # ATENCION, según la WIKI de samba 4, si usamos el allow-update no podemos usar el “update-policy” necesario para las actualizaciones del DNS, en mi caso ha sido a la inversa... ##allow-update { none; }; ¡ojo! Está comentado! check-names ignore; # Desde aquí está comentado → /* update-policy { grant DOS00000.LOCAL ms-self * A AAAA; grant administrator@DOS00000.LOCAL wildcard * A AAAA SRV CNAME TXT; grant bulled$@DOS00000.LOCAL wildcard * A AAAA SRV CNAME; };*/ ← hasta aquí que termina el “comentario” allow-update { any; }; aceptamos actualizaciones allow-query { any; }; aceptamos consultas allow-transfer { any; }; aceptamos transferencias # desde aquí está comentado → /* allow-update { 10.159.172.0/24; }; allow-query { 10.159.172.0/24; };*/ ← hasta aquí. }; # Definimos nuestra zona inversa (para resolver nombre a partir de la ip y que se generen los necesarios registros PTR) zone "172.159.10.in-addr.arpa" in { type master; tipo MAESTRA (es un servidor MASTER, principal) file "172.159.10.db"; este archivo está en /var/lib/named allow-update { any; }; autorizamos actualizaciones allow-query { any; }; autorizamos consultas allow-transfer { any; }; autorizamos transferencias # Comentamos la política de actualización que nos dice la gente de samba que pongamos... /* update-policy { grant *.LOCAL wildcard *.172.159.10.in-addr.arpa. PTR; };*/ }; # definimos la zona del localhost zone "localhost" in { type master; maestro file "localhost.zone"; archivo situado en /var/lib/named }; # definimos la zona inversa de localhost zone "0.0.127.in-addr.arpa" in { type master; maestro file "127.0.0.zone"; archivo situado en /var/lib/named }; }; # metemos el include que contiene → include "/etc/named.conf.include";
</código>
NOTA: en este include lo que he metido es la llave TSIG necesaria para encriptar comunicaciones, en principio en este include se haya otro “include” hacia un archivo que contiene lo abajo escrito y el cual he sustituido por su contenido real.
#include "/etc/named.d/rafa"; key rafa { algorithm hmac-md5; secret"GD2qJHY8TvRHoNNtDOQVDnwpJ6K49/m67UoBAv5vR9UAYQOIDqhhRnfnND/OqO8Rg=="; };
Después de todo esto debes de reiniciar el servidor BIND y comprobar en los registros del sistema para cualquier problema.
Si sigues teniendo problemas de permisos comprueba que los archivos son de root y del grupo named. Y un + 755 a los mismos...
NO PODEMOS OLVIDARNOS de la llave, para ello es tan simple como realizar un enlace simbólico:
# ln -s /usr/local/samba/private/dns.keytab /etc/krb5.keytab
Pruebas de correcto funcionamiento del DNS.
NOTA:(por aquí ya he vuelto a la “wiki” oficial de Samba 4)
Ahora lo que necesitas para probar que DNS funciona correctamente. Comprueba que el archivo /etc/resolv.conf apunta correctamente a su servidor DNS local, a continuación, ejecuta los siguientes comandos:
(el contenido de mi /etc/resolv.conf)
nameserver 10.159.172.201 <- (esta es la IP del servidor) domain dos00000.local <- (este el nombre de mi dominio)
NOTA: no es necesario instalar un servidor LDAP dado que samba4 tiene una especie de servidor para tal fin en su interior...
$ host -t _ldap._tcp.dos00000.local SRV. _ldap._tcp.dos00000.local has SRV record 0 100 389 bulled.dos00000.local.
$ host -t SRV _kerberos._udp.dos00000.local. _kerberos._udp.bulled.dos00000.local has SRV record 0 100 88 samba.bulled.dos00000.local.
$ host -t A samba.bulled.dos00000.local. bulled.dos00000.local has address 10.0.0.1
Comprueba que tienes respuestas similares a las de arriba (ajustado por su nombre de dominio DNS y el nombre de “host”). Si te sale algún error a continuación, revisa cuidadosamente tu sistema de “logs” para encontrar y solucionar el problema.
Nota: En sistemas Debian puede suceder que la autogeneración de la zona siempre detecta y utiliza, como la dirección IP 127.0.1.1 del controlador de dominio. Eso funciona bien hasta que tengas una interface con esa ip, unas el primer cliente al dominio...
En /usr/local/samba/private/named.conf es posible que necesites cambiar 127.0.1.1 para reflejar la dirección IP real del servidor que está configurando.
Con esto deberíamos tener nuestro servidor DNS resolviendo de forma directa e inversa y con actualizaciones dinámicas, si esto NO ES ASÍ , SAMBA no funcionará
Paso 9: Prueba de kerberos
Una vez que el DNS está funcionando, debes probar que la orden interna del servidor de Kerberos para Samba4 está trabajando correctamente. La prueba más fácil es utilizar el comando kinit así:
$ kinit administrator@DOS00000.LOCAL Password: P@SSW0RD
Ten en cuenta:
Tienes que poner el "realm DOS000000.LOCAL» en letras mayúsculas . (si no NO funcionará)
Si KINIT funciona exitosamente puedes examinar el "ticket" de esta manera:
# klist -e Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: administrator@DOS00000.LOCAL Valid starting Expires Service principal 02/10/10 19:39:48 02/11/10 19:39:46 krbtgt/bulled.dos00000.local@bulled.dos00000.local Etype (skey, tkt): ArcFour with HMAC/md5, ArcFour with HMAC/md5
Para borrar el ticket podemos usar:
# kdestroy
Para ver la llave que usamos
# klist -k
Si encuentras que no tiene kinit o klist, puede ser necesario instalarlos. En sistemas basados en Debian (como Ubuntu) los paquetes se llaman krb5-config y krb5 por el usuario, en todos los sistemas linux (debian incluido) y no te olvides de los correspondientes paquetes de desarrollo (-dev).
ATENCIÓN: Si estás usando un cliente detrás de NAT entonces tienes que añadir lo siguiente al krb5.conf en el servidor controlador de dominio:
[kdc] check-ticket-addresses = false
Ejemplo de mi krb5.conf /etc/krb5.conf
-------------------------- Inicio -------------------------- [libdefaults] default_realm = DOS00000.LOCAL dns_lookup_realm = false dns_lookup_kdc = true clockskew = 300 [realms] DOS00000.LOCAL = { kdc = 10.159.172.201 88 ← ¡ojo! Hay que poner el puerto. default_domain = dos00000.local ## admin_server = 10.159.172.201 749 ← ¡ojo! Hay que poner el puerto (este no lo uso). } [logging] kdc = FILE:/var/log/krb5/krb5kdc.log admin_server = FILE:/var/log/krb5/kadmind.log default = SYSLOG:NOTICE:DAEMON [domain_realm] .dos00000.local = DOS00000.LOCAL dos00000.local = DOS00000.LOCAL [appdefaults] pam = { debug = false ticket_lifetime = 1d renew_lifetime = 1d forwardable = true krb4_convert = false proxiable = false minimum_uid = 1 external = sshd use_shmem = sshd } -------------------------- FIN --------------------------
Unir clientes Windows al dominio:
En el Windows XP apuntamos el DNS principal a la IP de nuestro SAMBA 4
Es IMPRESCIDIBLE que el servidor y el cliente tengan la hora prácticamente sincronizada (para ello podemos usar NTP...).
Para configurar la hora en Windows XP. (desde el “panel de control”).
La configuramos correctamente...
Conectar el cliente con Windows XP al dominio:
Buscamos el icono “Mi PC” y le damos al botón derecho y a propiedades.
Después le damos a “ Nombre del equipo” y “cambiar”.
Seleccionamos “Dominio” y escribimos el dominio, nos pedirá usuario y contraseña de administración del dominio. Usuario: Administrator (acabado en TOR) y la contraseña es: P@SSW0RD
Nos dirá que el equipo está correctamente unido al dominio y como buen Windows lo tendremos que reiniciar.
Administrar el dominio desde un cliente windows.
Windows7
Descargaremos las herramientas administrativas desde:
Vista
Descargaremos las herramientas administrativas desde:
Windows XP Pro
Descargaremos las herramientas administrativas desde:
ejecutamos “dsa.msc” desde Inicio → ejecutar:
Expandimos el árbol de nuestro dominio:
Añadir usuario dentro del Directorio Activo de SAMBA 4.
net newuser USERNAME
Desde el día 23 del 10 de 2010 disponemos del siguiente comando:
samba-tool newuser USERNAME
Si obtienes este error:
ImportError: No module named samba.netcmd
export PYTHONPATH=/usr/local/samba/lib/python2.6/site-packages/
Los comandos de SAMBA 4 os recuerdo que están en /usr/local/samba/bin y ./sbin
Para inspeccionar los ID , SID... usa wbinfo
$ bin/wbinfo --name-to-sid USERNAME S-1-5-21-4036476082-4153129556-3089177936-1005 SID_USER (1)
$ bin/wbinfo --sid-to-uid S-1-5-21-4036476082-4153129556-3089177936-1005 3000011
Si quieres cambiarlo usa:
$ bin/ldbedit -e emacs -H /usr/local/samba/private/idmap.ldb objectsid=S-1-5-21-4036476082-4153129556-3089177936-1005
Puedes ver los “records” así:
# record 1 dn: CN=S-1-5-21-4036476082-4153129556-3089177936-1005 cn: S-1-5-21-4036476082-4153129556-3089177936-1005 objectClass: sidMap objectSid: S-1-5-21-4036476082-4153129556-3089177936-1005 type: ID_TYPE_BOTH xidNumber: 3000011 distinguishedName: CN=S-1-5-21-4036476082-4153129556-3089177936-1005
(También se puedes usar las herramientas administrativas de Windows.).
Configurando perfiles móviles para Windows 7
Para esto necesitamos crear un recurso compartido para los perfiles, lo podemos llamar “profiles” , para esto tenemos que añadir en el smb.conf (que está en /usr/local/samba/etc/smb.conf) :
[profiles] path = /usr/local/samba/var/profiles read only = no
Ahora debemos de crear el directorio:
$ sudo mkdir /usr/local/samba/var/profiles
Ahora tenemos que seleccionar todos los usuarios (con la herramienta de administración de Windows) darle al “botón derecho” y a propiedades. En el “path” del perfíl debemos de poner la variable %username%
por ejemplo:
\\bulled.dos00000.local\profiles\%USERNAME%
Con esto los perfiles deberían de estar sincronizados con el servidor SAMBA.
Añadir Unidad Organizativa al dominio.
La unidad organizativa (UO), es una característica muy potente del directorio activo.
Es un tipo de contenedor que le permite arrastrar y soltar los usuarios (o equipos) en ella.
Podemos asociar varios tipos de directiva de grupo para una unidad organizativa, la configuración desplegará a todos los usuarios y ordenadores en la misma.
Con un único dominio (que puede tener muchas UO) y una UO secundaria que desees, se que puede reducir la carga administrativa, ya que son capaces de gestionar todo a través de una unidad organizativa.
Para crear una “UO”:
- Abrimos las herramientas administrativas de Windows.
- Botón derecho en el dominio
- Le damos a nuevo, unidad organizativa.
- Escribimos el nombre
- Veremos que aparece una unidad organizativa nueva con el nombre elegido.
- Podemos arrastrar usuarios dentro, hacer la prueba con un usuario tipo “demo” si no nos podemos quedar “atrapados” (cuidado con esto).
Normalmente creamos la unidad organizativa basándonos en la configuración de los departamentos de la empresa. Ten cuidado de no confundir a los grupos y unidades organizativas, los grupos se utilizan para controlar los permisos, OU se utilizan para la configuración de la implementación a todos los usuarios o equipos dentro de la OU.
Implementando políticas de grupo en un dominio con SAMBA 4.
El directorio Activo de SAMBA 4 , tiene soporte para las directivas de grupo, y puedes crear las sobre la marcha. La idea básica de las políticas de grupo es:
- Las directivas de grupo tienen 2 tipos de configuración, los equipos y usuarios.
- La configuración de equipo se aplican a las computadoras, la configuración de usuario se aplican a los usuarios.
- Vinculamos la directiva de grupo a una unidad organizativa en particular, y la directiva de grupo afectará a todos los equipos y usuarios en la unidad organizativa.
- . Para agregar una directiva de grupo, le damos a propiedades> OU-click derecho 'OU Demo'
- Seleccionamos la directiva de grupo.
- Presiona “nuevo nombre”, como 'GP Demo', o el que queramos.
- Pulse Editar para modificar la directiva.
- Aquí se demuestra la forma de bloquear el acceso de usuario desde el panel de control. Abrir "panel de control 'del árbol' Configuración de usuario'-> 'Plantillas de administración
- Haga doble clic en "Prohibir el acceso al Panel de Control '
- Pulse habilitado y, a continuación, pulse Aceptar. Ahora los usuarios, todo bajo 'OU Demo' no poder acceder al panel de control.
- Hacer demostración de usuario esté dentro de la "unidad organizativa Demo '(puedes arrastrar y soltar).
- Cerrar sesión y la sesión como usuario 'demo'.
- Verás que el usuario ' demo' de usuario no es capaz de acceder a panel de control
- Ten en cuenta que la configuración del usuario entrará en vigor una vez que se cierre la sesión y se vuelva a iniciar.
- La configuración del equipo se llevará a efecto cuando se reinicie el equipo
Para saber mas, busca en google “windows 2003, implementación de directorio activo”.
Instalando la consola de Administración de políticas de grupo.
La puedes descargar desde:
Esto es especialmente útil para cuando tienes grandes instalaciones y la gestión de muchas máquinas. (Es posible que necesite descargar el framework de. NET en primer lugar).
Conectándonos a un controlador de dominio de Windows como controlador adicional
Una vez que hayas creado un dominio con Samba4, puedes optar por unirlo a los controladores de dominio adicionales, ya sean controladores de Samba, o Windows.
Si deseas unirse a un nuevo controlador de dominio de Windows a un Dominio Samba, se debe usar la herramienta 'dcpromo' en la máquina Windows. Por favor, consulta las instrucciones normales para la instalación de dcpromo en Windows, con la excepción de que no debe marcar la casilla "servidor DNS" cuando se ofrece. En este momento, debe usar Windows para DNS, o el uso de Samba y bind9 para DNS. Mezclar los dos es factible, pero requiere de unos conocimientos realmente avanzados.
Unir SAMBA4 a un dominio como controlador de dominio adicional.
A partir de la versión alpha11, Samba4 tiene la capacidad de unirse a un dominio de Active Directory como un controlador de dominio adicional. El proceso a un dominio existente es un poco diferente al suministro de un nuevo dominio.
Este proceso es el equivalente del comando 'dcpromo' en los servidores de Windows.
Esta apartado se asume que la configuración e instalación de Samba en la ubicación por defecto
/usr/local/samba.
Se supone que se están uniendo a Samba a un dominio ya existente llamado "samba.example.com.”
Ten en cuenta que algunas de las características mencionadas en este apartado sólo están disponibles en versiones de Samba4 mas actuales, en versiones posteriores al 26 de febrero de 2010 .
También ten en cuenta que los siguientes pasos son los mismos independientemente de si se están uniendo a Samba a un dominio existente basado en Windows o un dominio existente basado en Samba.
Cómo prepararse para unir Samba como un controlador de dominio a un dominio existente
Es necesario construir Samba4 como de costumbre, pero no el paso del script “provision”
Tienes que quitar cualquier smb.conf existente en /usr/local/samba/etc/smb.conf
Debes de tener la configuración del dominio existente correctamente como su realm por defecto en /etc/krb5.conf, y usted debe tener estas opciones de configuración en /etc/krb5.conf:
[libdefaults] dns_lookup_realm = true dns_lookup_kdc = true default_realm = SAMBA.EXAMPLE.COM
A continuación, deben someterse a prueba para asegurarse de que el DNS y Kerberos están configurados correctamente para apuntar a su controlador de dominio existentes. Prueba de que todo es trabajo, lanza kinit como administrador de dominio:
kinit administrator Password: XXXXXXXX
Conectándonos a un dominio existente como Controlador de Dominio.
Ejecuta esto como root:
bin/net vampire samba.example.com -Uadministrator –realm=samba.example.com
También puedes usar una herramienta de samba 4 :
bin/samba-tool join samba.example.com DC -Uadministrator –realm=samba.example.com
Debe mostrar una serie de mensajes de depuración acerca de replicar los contenidos de dominio:
Partition[CN=Configuration,DC=sample,DC=example,DC=com] objects[1596] linked_values[1]
Deberías recibir un mensaje como este:
Joined domain V2 (SID S-1-5-21-3565189888-2228146013-2029845409) as a DC
En este punto tu tienes metido tu servidor de SAMBA4 en un dominio existente y puedes lanzar un Controlador de Dominio SAMBA
Lanzando SAMBA
Se lanza samba4 como un controlador de dominio de la misma manera que se inicia como un servidor normal, simplemente ejecuta el comando 'samba' desde el directorio sbin de su instalación. /usr/local/samba/sbin .
Cuando lanzes SAMBA como un nuevo DC en un dominio existente de Windows, puedes encontrarte mensajes de error como estos en el archivo del log..
UpdateRefs failed with WERR_DS_DRA_BAD_NC/NT \ code 0xc00020f8 for 5344d0a6-78a1-4758be69-66d933f1123._msdcs.samba.example.com \ CN=RID Manager$,CN=System,DC=samba,DC=example,DC=com
Esto es causado por el controlador de dominio de Windows que todavía no ha seguido su “comprobador de coherencia de réplica (KCC)”, que significa que no se han creado las conexiones al servidor Samba.
Para solucionar este problema, puedes ejecutar "repadmin / KCC" en el DC de Windows como administrador, o puede utilizar las herramientas de SAMBA ,así (dependiendo de la versión de tu samba).
bin/net drs kcc -Uadministrator windowsdc.samba.example.com
o:
bin/samba-tool drs kcc -Uadministrator windowsdc.samba.example.com
A continuación, debes comprobar que la replicación entre el controlador de dominio Windows y el controlador de dominio Samba funciona correctamente mediante el uso de:
net drs showrepl
o:
samba-tool drs showrepl
Default-First-Site-Name\Windows DSA Options: 0x00000001 Site Options: (none) DSA object GUID: 794640f3-18cf-40ee-a211-a93992b67a64 DSA invocationID: 794640f3-18cf-40ee-a211-a93992b67a64 ==== INBOUND NEIGHBORS ==== DC=samba,DC=example,DC=com Default-First-Site-Name\SAMBA via RPC DSA object GUID: 5344d0a6-78a1-4758-be69-b66d933f1123 Last attempt @ Fri Feb 26 17:25:41 2010 EST was successful. 0 consecutive failure(s). Last success @ Fri Feb 26 17:25:41 2010 EST CN=Configuration,DC=samba,DC=example,DC=com Default-First-Site-Name\SAMBA via RPC DSA object GUID: 5344d0a6-78a1-4758-be69-b66d933f1123 Last attempt @ Fri Feb 26 17:25:41 2010 EST was successful. 0 consecutive failure(s). Last success @ Fri Feb 26 17:25:41 2010 EST CN=Schema,CN=Configuration,DC=samba,DC=example,DC=com Default-First-Site-Name\SAMBA via RPC DSA object GUID: 5344d0a6-78a1-4758-be69-b66d933f1123 Last attempt @ Fri Feb 26 17:25:41 2010 EST was successful. 0 consecutive failure(s). Last success @ Fri Feb 26 17:25:41 2010 EST
Pruebas de replicación.
Para comprobar que la replicación funciona correctamente entre dos controladores de dominio, prueba a añadir un usuario en el controlador de dominio Samba utilizando la herramienta de línea de comandos o las herramientas de Windows GUI de administración.
A continuación, comprueba que el usuario se muestra en unos pocos segundos en el controlador de dominio de Windows.
Del mismo modo, intenta modificar un usuario en el controlador de dominio de Windows y comprobar que la modifica muestran correctamente en el servidor Samba.
Ldapcmp.
Es posible que desees utilizar “ldapcmp” para verificar los datos.
Actualizaciones DNS.
A partir de Samba4 alpha12 existe la capacidad de actualizar automáticamente los servidores DNS BIND o el propietario de Microsoft©.
Para que esto funcione correctamente entre Samba y Windows es posible que necesites un conjunto de parches para bind9.
Los parches se encuentran en el directorio examples/bind9-patches del código fuente Samba4.
Los parches se han presentado a los desarrolladores de bind9 y se incorporarán en la próxima versión de bind, pero mientras tanto debes de ser capaz de construir bind9 a sí mismo desde las fuentes y aplicar los parches.
La forma en que las actualizaciones automáticas de DNS funciona es que Samba periódicamente (cada 10 minutos) llama a la secuencia de comandos “samba_dnsupdate” que se instala junto con Samba. Esa secuencia de comandos lee un archivo de plantilla de nombres DNS para actualizar en la zona DNS de “/usr/local/samba/private/dns_update_list.”.
El contenido de este archivo se ve asi:
A ${DNSDOMAIN} $IP A ${HOSTNAME} $IP CNAME ${NTDSGUID}._msdcs.${DNSDOMAIN} ${HOSTNAME} SRV _kerberos._tcp.${SITE}._sites.dc._msdcs.${DNSDOMAIN} ${HOSTNAME} 88 SRV _ldap._tcp.${SITE}._sites.dc._msdcs.${DNSDOMAIN} ${HOSTNAME} 389 SRV _kerberos._tcp.dc.dc._msdcs.${DNSDOMAIN} ${HOSTNAME} 88 SRV _ldap._tcp.dc.dc._msdcs.${DNSDOMAIN} ${HOSTNAME} 389 SRV _gc._tcp.${SITE}._sites.${DNSDOMAIN} ${HOSTNAME} 3268 SRV _kerberos._tcp.${SITE}._sites.${DNSDOMAIN} ${HOSTNAME} 88 SRV _ldap._tcp.${SITE}._sites.${DNSDOMAIN} ${HOSTNAME} 389 SRV _gc._tcp.${DNSDOMAIN} ${HOSTNAME} 3268 SRV _kerberos._tcp.${DNSDOMAIN} ${HOSTNAME} 88 SRV _kpasswd._tcp.${DNSDOMAIN} ${HOSTNAME} 464 SRV _ldap._tcp.${DNSDOMAIN} ${HOSTNAME} 389 SRV _kerberos._udp.${DNSDOMAIN} ${HOSTNAME} 88 SRV _kpasswd._udp.${DNSDOMAIN} ${HOSTNAME} 464
Cuando se está ejecutando, Samba tiene que sustituir las variables de este archivo, y llamar al comando “nsupdate” del servidor DNS bind9 .
Puedes agregar tus propios nombres para “dns_update_list” si quieres, y Samba añadir los del servidor DNS. También puedes optar por no utilizar TSIG y en lugar de utilizar una clave de configuración de DNS fijarte en otro servidor bind9. Para ello tendrás que modificar el 'nsupdate', comando que ejecuta Samba, que es configurable a través del "comando nsupdate" opción smb.conf. El valor por defecto es "/usr/bin/nsupdate-g"
Las entradas de $IP de los registros se sustituyen con las direcciones IP de la interfaz que Samba detecta en tiempo de ejecución, basado en el "interfaces =" opción smb.conf.
Conozcamos un poco el Directorio Activo de Windows
Uso de herramientas de diagnóstico para un Controlador de Dominio para Windows 2000, Windows 2003 o Windows 2008,
A continuación se describen recursos y herramientas de los que un administrador de sistemas dispone a mano para poder llevar a cabo ante determinadas circunstancias tareas tan necesarias como pueden ser la verificación de las réplicas entre Controladores de Dominio, repaso de la sincronización horaria, chequeo de puertos necesarios para el Directorio Activo, registros necesarios en un servidor DNS, etc...
El documento es orientativo y hay que destacar siempre que su uso puede depender de las diferentes circunstancias y situaciones que se puedan dar a la hora de tener que realizar diagnósticos, chequeos y diferentes operaciones de mantenimiento sobre nuestro Directorio Activo y Controladores de Dominio que lo mantienen.
Realizar un diagnóstico del DC
Ante algún posible fallo relacionado con el AD, lo primero que podemos mirar es el resultado que se produce al ejecutar las siguientes herramientas de diagnóstico para el servicio de directorio (para poder hacer uso de ellas es necesario instalar las support tools del CD de Windows 2003):
Las puedes descargar de:
DCDIAG
Esta herramienta sirve para hacer una serie de test a los DC’s del dominio o bosque con el fin de poder encontrar algún error entre ellos. Un ejemplo de un dcdiag de un DC que esté funcionando correctamente puede ser el siguiente:
Una opción interesante para chequear con ésta herramienta es que el DC haya registrado correctamente en los DNS los registros necesarios para que sea reconocido y anunciado en el AD como un DC válido:
dcdiag /test:registerindns /dnsdomain:FQDN /v
ej:
dcdiag /test:registerindns /dnsdomain:Laboratorio.test /v
La salida del comando si está correcto será:
Domain Controller Diagnosis Performing initial setup: Done gathering initial info. Doing initial required tests Testing server: Default-First-Site-Name\DCLAB1 Starting test: Connectivity ......................... DCLAB1 passed test Connectivity Doing primary tests Testing server: Default-First-Site-Name\DCLAB1 Starting test: Replications ......................... DCLAB1 passed test Replications Starting test: NCSecDesc ......................... DCLAB1 passed test NCSecDesc Starting test: NetLogons ......................... DCLAB1 passed test NetLogons Starting test: Advertising ......................... DCLAB1 passed test Advertising Starting test: KnowsOfRoleHolders ......................... DCLAB1 passed test KnowsOfRoleHolders Starting test: RidManager ......................... DCLAB1 passed test RidManager Starting test: MachineAccount ......................... DCLAB1 passed test MachineAccount Starting test: Services IsmServ Service is stopped on [DCLAB1] ......................... DCLAB1 failed test Services Starting test: ObjectsReplicated ......................... DCLAB1 passed test ObjectsReplicated Starting test: frssysvol ......................... DCLAB1 passed test frssysvol Starting test: frsevent ......................... DCLAB1 passed test frsevent Starting test: kccevent ......................... DCLAB1 passed test kccevent Starting test: systemlog ......................... DCLAB1 passed test systemlog Starting test: VerifyReferences ......................... DCLAB1 passed test VerifyReferences Running partition tests on : ForestDnsZones Starting test: CrossRefValidation ......................... ForestDnsZones passed test CrossRefValidation Starting test: CheckSDRefDom ......................... ForestDnsZones passed test CheckSDRefDom Running partition tests on : DomainDnsZones Starting test: CrossRefValidation ......................... DomainDnsZones passed test CrossRefValidation Starting test: CheckSDRefDom ......................... DomainDnsZones passed test CheckSDRefDom Running partition tests on : Schema Starting test: CrossRefValidation ......................... Schema passed test CrossRefValidation Starting test: CheckSDRefDom ......................... Schema passed test CheckSDRefDom Running partition tests on : Configuration Starting test: CrossRefValidation ......................... Configuration passed test CrossRefValidation Starting test: CheckSDRefDom ......................... Configuration passed test CheckSDRefDom Running partition tests on : laboratorio Starting test: CrossRefValidation ......................... laboratorio passed test CrossRefValidation Starting test: CheckSDRefDom ......................... laboratorio passed test CheckSDRefDom Running enterprise tests on : laboratorio.test Starting test: Intersite ......................... laboratorio.test passed test Intersite Starting test: FsmoCheck ......................... laboratorio.test passed test FsmoCheck
En caso de que el resultado no sea correcto habría que repasar los DNS que tiene configurado a nivel de la conexión de red para verificar que son los adecuados.
NETDIAG
Esta herramienta sirve para hacer una serie de test a nivel de red y conexiones en el DC que se lanza. Un ejemplo de un netdiag puede ser el siguiente:>
Computer Name: DCLAB1 DNS Host Name: dclab1.laboratorio.test System info : Windows 2000 Server (Build 3790) Processor : x86 Family 15 Model 2 Stepping 9, GenuineIntel List of installed hotfixes : KB819696 KB823182 KB823353 KB823559 KB824105 KB824141 KB824151 KB825119 KB828035 KB828741 KB833987 KB834707 KB835732 KB837001 KB839643 KB839645 KB840315 KB840374 KB840987 KB841356 KB841533 KB867460 KB867801 KB873376 Q147222 Q828026 Netcard queries test . . . . . . . : Passed Per interface results: Adapter : LAN-Desarrollo Netcard queries test . . . : Passed Host Name. . . . . . . . . : dclab1 IP Address . . . . . . . . : 192.168.102.101 Subnet Mask. . . . . . . . : 255.255.255.0 Default Gateway. . . . . . : 192.168.102.1 Dns Servers. . . . . . . . : 213.163.5.137 AutoConfiguration results. . . . . . : Passed Default gateway test . . . : Failed No gateway reachable for this adapter. NetBT name test. . . . . . : Passed [WARNING] At least one of the <00> 'WorkStation Service', <03> 'Messenger Service', <20> 'WINS' names is missing. WINS service test. . . . . : Skipped There are no WINS servers configured for this interface. Adapter : Virtual_Interna Netcard queries test . . . : Passed Host Name. . . . . . . . . : dclab1 IP Address . . . . . . . . : 10.1.1.1 Subnet Mask. . . . . . . . : 255.255.255.0 Default Gateway. . . . . . : Dns Servers. . . . . . . . : 10.1.1.1 10.1.1.2 AutoConfiguration results. . . . . . : Passed Default gateway test . . . : Skipped [WARNING] No gateways defined for this adapter. NetBT name test. . . . . . : Passed [WARNING] At least one of the <00> 'WorkStation Service', <03> 'Messenger Service', <20> 'WINS' names is missing. No remote names have been found. WINS service test. . . . . : Skipped There are no WINS servers configured for this interface. Global results: Domain membership test . . . . . . : Passed NetBT transports test. . . . . . . : Passed List of NetBt transports currently configured: NetBT_Tcpip_{91873FE9-2F61-4E21-947C-E99F39ABF65E} NetBT_Tcpip_{B8D698CD-89BC-4E98-B2A6-B5F1616783EE} 2 NetBt transports currently configured. Autonet address test . . . . . . . : Passed IP loopback ping test. . . . . . . : Passed Default gateway test . . . . . . . : Failed [FATAL] NO GATEWAYS ARE REACHABLE. You have no connectivity to other network segments. If you configured the IP protocol manually then you need to add at least one valid gateway. NetBT name test. . . . . . . . . . : Passed [WARNING] You don't have a single interface with the <00> 'WorkStation Service', <03> 'Messenger Service', <20> 'WINS' names defined. Winsock test . . . . . . . . . . . : Passed DNS test . . . . . . . . . . . . . : Passed [WARNING] Cannot find a primary authoritative DNS server for the name 'dclab1.laboratorio.test.'. [ERROR_TIMEOUT] The name 'dclab1.laboratorio.test.' may not be registered in DNS. [WARNING] The DNS entries for this DC cannot be verified right now on DNS server 213.163.5.137, ERROR_TIMEOUT. PASS - All the DNS entries for DC are registered on DNS server '10.1.1.1' and other DCs also have some of the names registered. PASS - All the DNS entries for DC are registered on DNS server '10.1.1.2' and other DCs also have some of the names registered. Redir and Browser test . . . . . . : Passed List of NetBt transports currently bound to the Redir NetBT_Tcpip_{91873FE9-2F61-4E21-947C-E99F39ABF65E} NetBT_Tcpip_{B8D698CD-89BC-4E98-B2A6-B5F1616783EE} The redir is bound to 2 NetBt transports. List of NetBt transports currently bound to the browser NetBT_Tcpip_{91873FE9-2F61-4E21-947C-E99F39ABF65E} NetBT_Tcpip_{B8D698CD-89BC-4E98-B2A6-B5F1616783EE} The browser is bound to 2 NetBt transports. DC discovery test. . . . . . . . . : Passed DC list test . . . . . . . . . . . : Passed Trust relationship test. . . . . . : Skipped Kerberos test. . . . . . . . . . . : Passed LDAP test. . . . . . . . . . . . . : Passed Bindings test. . . . . . . . . . . : Passed WAN configuration test . . . . . . : Skipped No active remote access connections. Modem diagnostics test . . . . . . : Passed IP Security test . . . . . . . . . : Skipped Note: run "netsh ipsec dynamic show /?" for more detailed information The command completed successfully
REPADMIN
Esta herramienta sirve para comprobar las réplicas entre los servidores. A continuación se muestra un ejemplo en el que se ven las réplicas establecidas y llevadas a cabo por el servidor “server1”:
repadmin /showrepl server1.microsoft.com Press Enter and the following output is displayed: repadmin /showrepl server1.microsoft.com Building7a\server1 DC Options : IS_GC Site OPtions: (none) DC object GUID : 405db077-le28-4825-b225-c5bb9af6f50b DC invocationID: 405db077-le28-4825-b225-c5bb9af6f50b ==== INBOUND NEIGHBORS ====================================== CN=Schema,CN=Configuration,DC=microsoft,Dc=com Building7b\server2 via RPC objectGuid: e55c6c75-75bb-485a-a0d3-020a44c3afe7 last attempt @ 2002-09-09 12:25.35 was successful. CN=Configuration,DC=microsoft,Dc=com Building7b\server2 via RPC objectGuid: e55c6c75-75bb-485a-a0d3-020a44c3afe7 last attempt @ 2002-09-09 12:25.10 was successful. DC=microsoft,Dc=com Building7b\server2 via RPC objectGuid: e55c6c75-75bb-485a-a0d3-020a44c3afe7 last attempt @ 2001-09-09 12:25.11 was successful
REPLMON
Es la utilidad gráfica del repadmin, y tiene las mismas funcionalidades pero de un modo más intuitivo y fácil de hacer e interpretar; puede comprobar el estado de la réplica entre las diferentes particiones del AD entre los diferentes DC’s implicados; forzar la sincronización entre ellos, ver errores de réplica o hacer testeos de los FSMO. A continuación se detallan las opciones más comunes y el uso de dicha herramienta. Para arrancarla basta ir a “Start - >Run: replmon”:
Para añadir un DC y empezar a hacer los diagnósticos, con el botón derecho sobre Monitored Servers elegimos la opción para añadir un DC:
Nos preguntará por cómo queremos añadir o buscar el DC, si por el nombre o a través del directorio; en nuestro ejemplo será a partir del directorio:
A continuación elegiremos el site del que forme parte el DC a chequear y al propio Dc como tal:
Tras ello veremos que aparece en pantalla el DC elegido y colgando de él todas las particiones del Directorio Activo que maneja y replica con el resto de DC’s implicados:
Si expandimos cada una de las zonas podremos ver el resultado de la última sincronización que se haya efectuado con el resto de DC’s; si la sincronización es correcta aparecerá una imagen de un servidor en gris; si no ha sido así, aparecerá marcado con un aspa roja; podemos ver un ejemplo de ello a continuación:
Si pinchamos sobre alguna de las particiones con error en la réplica podremos ver el log con el resultado de la operación:
Si queremos complementar más información sobre posibles errores entre los DC’s podemos mirar también el visor de sucesos para buscar más datos al respecto. A parte, puede ser interesante en circunstancias determinadas activar a nivel de registro que los datos a recolectar en el visor de eventos sean más detallados. Para ello:
How to configure Active Directory diagnostic event logging in Windows Server
Si lo que queremos es forzar la réplica de alguna de las particiones del AD con algún DC, basta con elegir dicha partición y con el botón derecho sobre ella seleccionar la opción de sincronizar con el DC elegido:
Una vez forzada la réplica podremos ver como hemos indicado antes en el log el resultado de la misma.
Para ver los controladores de dominio presentes, seleccionamos nuestro DC y con el botón derecho sobre él elegimos la opción para mostrar los DC’s.
Para ver los DC’s que sean además Global Catalog, hacemos lo mismo que anteriormente pero seleccionando dicha opción:
Si tuviéramos varios sitios y quisiéramos saber los DC’s designados como cabezas de puente para la replicación entre ellos podemos hacerlo de éste modo:
Si no hay ninguno (como en éste ejemplo) el mensaje que se devuelve será:
Si queremos ver los roles (si es que tiene) el DC o hacer testeos de los FSMO en el directorio, editamos las propiedades del Server monitorizado:
Para testear los FSMO, nos situamos en su pestaña y damos al botón del test:
Pulsamos en Query...
Si queremos ver qué “roles” o funciones definidas lleva éste DC, nos situamos sobre la pestaña de Server Flags:
Si queremos ver las replicaciones Intra-Site de éste DC con otros, nos situamos sobre la pestaña de Inbound Replication Connection:
Si queremos chequear que el KCC (el cual se encarga de generar y mantener el estado de las réplicas tanto intra como inter-site) esté funcionando adecuadamente:
Si queremos ver si hay algún error de objetos sin replicar entre los DC’s, también podemos ir al menú de “ActionàDomainàSearch DC for Replication Errors”:
Nos aparecerá la siguiente ventana en la que deberemos pulsar sobre el botón Run Search para que comience el test:
Indicamos el nombre del dominio & "OK",
Si hubiera algún error de réplicas aparecería en la pantalla anterior:
PORTQRY
Esta herramienta sirve para comprobar la conectividad entre los servidores mediante puertos TCP y UDP, por ejemplo, para verificar la conectividad al puerto 135 de un Server:
portqry /n 10.193.36.210 /p udp /e 135 Querying target system called: 10.193.36.210 Attempting to resolve IP address to a name... IP address resolved to RKTLABDC2 UDP port 135 (epmap service): LISTENING or FILTERED Querying Endpoint Mapper Database... Server's response: UUID: a00c021c-2be2-11d2-b678-0000f87a8f8e PERFMON SERVICE ncacn_np:\\\\RKTLABDC2[\\pipe\\000003b8.000] UUID: d049b186-814f-11d1-9a3c-00c04fc9b232 NtFrs API ncacn_np:\\\\RKTLABDC2[\\pipe\\000003b8.000] Total endpoints found: 69 ==== End of RPC Endpoint Mapper query response ==== UDP port 135 is LISTENING
A parte:
HOW TO: Use Portqry to Troubleshoot Active Directory Connectivity Issues:
NSLOOKUP
Se usa para hacer test de resolución de nombres en un servidor de DNS. Es muy recomendable hacer la verificación de que los registros de tipo SRV necesarios para que el AD funcione adecuadamente estén correctamente registrados en el DNS. Para ello, en un CMD escribimos nslookup, y a continuación set q=SRV.
Tras ello _ldap._tcp.dc._msdcs.ActiveDirectoryDomainName. Un ejemplo de ello:
C:\nslookup Default Server: dc1.example.microsoft.com Address: 10.0.0.14 set type=srv _ldap._tcp.dc._msdcs.example.microsoft.com Server: dc1.example.microsoft.com Address: 10.0.0.14 _ldap._tcp.dc._msdcs.example.microsoft.com SRV service location: priority = 0 weight = 0 port = 389 svr hostname = dc1.example.microsoft.com _ldap._tcp.dc._msdcs.example.microsoft.com SRV service location: priority = 0 weight = 0 port = 389 svr hostname = dc2.example.microsoft.com dc1.example.microsoft.com internet address = 10.0.0.14 dc2.example.microsoft.com internet address = 10.0.0.15
DSASTAT
Esta herramienta sirve para comparar y detector diferencias entre las bases de datos de directorio de los DC’s que pueda haber. Sirve de complemento a las anteriores.
Por ejemplo, para ver las diferencias que pueda haber entre 2 DC’s (dclab1 y dclab2, del dominio laboratorio.test), ejecutaremos lo siguiente en un CMD:
Dsastat –s:dclab1;dclab2 –b:DC=laboratorio,DC=test
El resultado será:
Stat-Only mode. Unsorted mode. Opening connections... dclab1...success. Connecting to dclab1... reading... **> ntMixedDomain = 0 reading... **> Options = Setting server as [dclab1] as server to read Config Info... dclab2...success. Connecting to dclab2... reading... **> ntMixedDomain = 0 reading... **> Options = ignored attrType = 0x3, bIsRepl 2.5.4.3 ignored attrType = 0xb, bIsRepl 2.5.4.11 BEGIN: Getting all special metadata attr info ... --> Adding special meta attrs, (3, cn) --> Adding special meta attrs, (6, c) --> Adding special meta attrs, (1376281, dc) --> Adding special meta attrs, (7, l) --> Adding special meta attrs, (591522, msTAPI-uid) --> Adding special meta attrs, (10, o) --> Adding special meta attrs, (11, ou) END: Getting all special metadata attr info ... No. attributes in schema = 1070 No. attributes in replicated = 1015 No. attributes in PAS = 151 Generation Domain List on server dclab1... > Searching server for GC attribute partial set on property attributeId. > Searching server for GC attribute partial set on property ldapDisplayName. Retrieving statistics... Paged result search... Paged result search... Svr[dclab1]. Entries = 64. Svr[dclab2]. Entries = 64. Svr[dclab1]. Entries = 64. Svr[dclab2]. Entries = 64. Svr[dclab1]. Entries = 64. Svr[dclab2]. Entries = 64. Svr[dclab1]. Entries = 64. 50 entries processed (7 msg queued, 0 obj stored, 0 obj deleted)... 100 entries processed (7 msg queued, 0 obj stored, 0 obj deleted)... 150 entries processed (7 msg queued, 0 obj stored, 0 obj deleted)... 200 entries processed (7 msg queued, 0 obj stored, 0 obj deleted)... 250 entries processed (7 msg queued, 0 obj stored, 0 obj deleted)... 300 entries processed (7 msg queued, 0 obj stored, 0 obj deleted)... 350 entries processed (7 msg queued, 0 obj stored, 0 obj deleted)... 400 entries processed (7 msg queued, 0 obj stored, 0 obj deleted)... Svr[dclab2]. Entries = 64. Svr[dclab1]. Entries = 6. Svr[dclab2]. Entries = 6. ...(Terminated query to dclab1. <No result present in message>) ...(Terminated query to dclab2. <No result present in message>) 450 entries processed (3 msg queued, 0 obj stored, 0 obj deleted)... 500 entries processed (3 msg queued, 0 obj stored, 0 obj deleted)... --> Svr[dclab1] has returned 256 objects... --> Svr[dclab2] has returned 244 objects... -=>>|*** DSA Diagnostics ***|<<=- Objects per server: Obj/Svr dclab1 dclab2 Total builtinDomain 1 1 2 classStore 1 1 2 computer 3 3 6 container 87 87 174 dfsConfiguration 1 1 2 dnsNode 59 59 118 dnsZone 6 6 12 domainDNS 1 1 2 domainPolicy 1 1 2 fileLinkTracking 1 1 2 foreignSecurityPrincipal 4 4 8 group 32 32 64 groupPolicyContainer 3 3 6 infrastructureUpdate 1 1 2 ipsecFilter 2 2 4 ipsecISAKMPPolicy 3 3 6 ipsecNFA 8 8 16 ipsecNegotiationPolicy 6 6 12 ipsecPolicy 3 3 6 linkTrackObjectMoveTable 1 1 2 linkTrackVolumeTable 1 1 2 lostAndFound 1 1 2 mSMQConfiguration 1 1 2 msDS-QuotaContainer 1 1 2 nTFRSMember 2 2 4 nTFRSReplicaSet 1 1 2 nTFRSSettings 1 1 2 nTFRSSubscriber 2 2 4 nTFRSSubscriptions 2 2 4 organizationalUnit 2 2 4 rIDManager 1 1 2 rIDSet 2 2 4 rpcContainer 1 1 2 samServer 1 1 2 secret 4 4 8 user 15 15 30 --- Total: 262 262 524 . . . . . . . . . . . . . . Bytes per object: Object Bytes builtinDomain 334 classStore 322 computer 4384 container 32694 dfsConfiguration 362 dnsNode 19328 dnsZone 2022 domainDNS 3350 domainPolicy 370 fileLinkTracking 332 foreignSecurityPrincipal 1528 group 25138 groupPolicyContainer 1642 infrastructureUpdate 366 ipsecFilter 1368 ipsecISAKMPPolicy 1614 ipsecNFA 4518 ipsecNegotiationPolicy 4208 ipsecPolicy 2368 linkTrackObjectMoveTable 424 linkTrackVolumeTable 390 lostAndFound 404 mSMQConfiguration 2162 msDS-QuotaContainer 412 nTFRSMember 1224 nTFRSReplicaSet 432 nTFRSSettings 416 nTFRSSubscriber 1456 nTFRSSubscriptions 756 organizationalUnit 974 rIDManager 318 rIDSet 564 rpcContainer 340 samServer 318 secret 1624 user 8870 . . . . . . . . . . . . . . Bytes per server: Server Bytes dclab1 63666 dclab2 63666 . . . . . . . . . . . . . . Checking for missing replies... No missing replies!INFO: Server sizes are equal. *** Identical Directory Information Trees *** -=>> PASS <<=- closing connections... dclab1; dclab2;
Tareas periódicas a llevar a cabo en un DC
Si nuestro Directorio Activo sufre contínuos cambios en la base de datos del metadirectorio (por ejemplo, adición/eliminación constante de cuentas de usuario, máquinas, políticas, etc) sería muy aconsejable una vez al mes llevar a cabo una defragmentación offline.
Si no es así, no es necesario a cabo nada en este respecto ya que la defragmentación online será suficiente.
Si no hay muchos DC’s o sites configurados, debería bastar una vez al mes realizar un diagnóstico de los DC’s empleando las herramientas de dcdiag, netdiag y replmon como se ha explicado arriba para hacer un chequeo del estado de las réplicas, FSMO’s y Global Catalog.
Comprobar al menos una vez a la semana que el DC con el rol de PDCEmulator encargado de sincronizar la hora lo haga adecuadamente.
Comprobar al menos una vez al mes con la herramienta dsastat que los DC’s entre sí no tengan diferencias en los objetos replicados.
Comprobar al menos una vez al mes que no hay errores con ID 5774, 5775 y 5781 por el servicio Netlogon en la parte de Sistema. Esos ID pueden suponer que el DC no ha registrado correctamente en el DNS los registros necesarios para anunciarse y actuar como DC. Para ello seguir el procedimiento siguiente.
Repasar al menos una vez al mes que los DC’s están al día en cuanto de parches de seguridad se refiere.
Si nuestro DC tiene software de antivirus, repasar diariamente que se encuentra actualizado adecuadamente.
NOTA: la periodicidad puede variar en función de muchas circunstancias y situaciones, por lo que se ha especificado es sólo a modo orientativo
Problemas comunes relacionados y tareas que podemos revisar
A continuación se hace una relación de los problemas más comunes que se suelen dar y las posibles soluciones o tareas que podemos llevar a cabo para intentar resolverlos. Cabe recalcar que son los problemas más comunes y las soluciones más comunes, lo cual quiere decir que puede ser que se produzcan por otros motivos diferentes (en cuyo caso podemos hacer uso de las herramientas explicadas para intentar detectar el punto de fallo y obrar en consecuencia, o podemos siempre acudir a los foros de soporte gratuito de MS
- http://www.microsoft.com/spanish/msdn/gruposnoticias.asp
- http://www.microsoft.com/spain/technet/comunidad/grupos/default.asp ) :
Los clientes Windows 2000 en adelante tardan en validarse mucho tiempo para el inicio de sesión.
La causa más común se deriva de una mala implementación o configuración del DNS, ya sea en el propio servidor o en la estación de trabajo.
Hay que repasar que los DC’s en su configuración de TCP/IP tienen los servidores DNS adecuados, y los adecuados son servidores de DNS internos en los cuales el Directorio Activo registra sus registros necesarios para el correcto funcionamiento de éste. Nunca deberá aparecer la IP de un DNS que no tenga este objetivo (por ejemplo, el de un ISP), ya que para eso deben configurarse los reenviadores
Las políticas de grupo no se aplican
La causa más común suele ser también la descrita en el punto anterior.
Si no fuera el caso, aunque no sea la temática de este documento (las políticas de grupo o GPO necesitan su propio documento debido a que también dan mucho juego), se dejan a continuación algunos enlaces que pueden ser de ayuda u orientación:
Los DC’s de diferentes Sites, y del mismo dominio dejan de replicar
Lo primero que deberemos verificar es que entre dichos DC’s haya conectividad por el puerto 135 TCP. Para ello podemos usar la herramienta Portquery.
Es importante tener en cuenta que los DC’s que lleven más de 60 días sin replicar ya no podrán hacerlo.
Si hay conectividad por el puerto 135 TCP, deberemos entonces repasar que hay resolución de nombres por el DNS, la sincronización horaria está correcta y repasar el visor de eventos para más información al respecto y ver si alguna de las herramientas descritas puede ayudar a averiguar más.
Los usuarios no inician sesión
Un usuario necesita acceder a un DC que sea Global Catalog para poder iniciar sesión (a partir de Windows Server 2003 ya no es imperativo; se necesita un DC que tenga habilitada la posibilidad del cacheo de membresía a grupos universales y que el usuario haya hecho logon a través de dicho DC).
También es importante repasar que la sincronización horaria es la adecuada entre la estación cliente y un DC de su dominio.
Los clientes validan o acceden a recursos de servidores de otra subred en lugar de acceder a los de la suya
Deberemos repasar que su subred esté asociada al Site adecuado, y en caso de no ser así, definirlo cuanto antes
Un DC con un FSMO ha caído y no puede volverse a poner en red.
El procedimiento adecuado en estos casos pasa primero por forzar el traspaso del FSMO de dicho DC a otro.
Tras ello, es importante eliminar la referencia de dicho DC en la metabase del Directorio Activo, ya que de lo contrario afectará al rendimiento y funcionamiento de nuestro servicio de directorio.
Una vez que se haya replicado este cambio, podemos verificar con la herramienta de replmon que los cambios se han llevado a cabo satisfactoriamente.
Eliminación de metadatos en el AD
Ante la caída de un DC en un dominio dado y si no hay posibilidad ninguna de restaurarlo debido por ejemplo a que el servidor ha sufrido una averigua irrecuperable, o simplemente el contenido de los discos se ha degradado, seguiremos el siguiente procedimiento:
Haga clic en Inicio, seleccione Programas, Accesorios y, a continuación, haga clic en Símbolo del sistema.
En el símbolo del sistema, escriba ntdsutil y, a continuación, presione ENTRAR.
Escriba metadata cleanup y, a continuación, presione ENTRAR. Según las opciones dadas, el administrador puede realizar la eliminación; pero para que ello sea posible se deben especificar parámetros de configuración adicionales.
Escriba connections y presione ENTRAR. Este menú se usa para conectar el servidor específico donde se produzcan los cambios. Si el usuario que ha iniciado sesión no tiene permisos administrativos, se pueden suministrar credenciales diferentes especificando las credenciales que hay que usar antes de realizar la conexión. Para ello, escriba set creds nombre_de_dominio nombre_de_usuario contraseña y, a continuación, presione ENTRAR. Para escribir una contraseña nula, escriba null en el parámetro correspondiente a la contraseña.
Escriba connect to server nombre de servidor y, a continuación, presione ENTRAR. Debe recibir la confirmación de que la conexión se ha establecido correctamente. Si se produce un error, compruebe que el controlador de dominio que se usa en la conexión está disponible y que las credenciales que ha suministrado tienen permisos administrativos en el servidor.
Nota: Si intenta conectar el mismo servidor que desea eliminar, cuando intente eliminar el servidor al que se hace referencia en el paso 15, puede aparecer un mensaje de error similar al siguiente:
Error 2094. No se puede eliminar el objeto DSA
Escriba quit y, a continuación, presione Entrar. Aparece el menú Metadata Cleanup.
Escriba select operation target y presione ENTRAR.
Escriba list domains y presione ENTRAR. Se muestra una lista de dominios en el bosque, cada uno con un número asociado.
Escriba select domain número y, a continuación, presione ENTRAR, donde número es el número asociado con el dominio del que es miembro el servidor que está quitando. El dominio que seleccione se usa para determinar si el servidor que se está quitando es el último controlador de dominio de ese dominio.
Escriba list sites y presione ENTRAR. Se muestra una lista de sitios, cada uno con un número asociado.
Escriba select site número y, a continuación, presione ENTRAR, donde número es el número asociado con el sitio del que es miembro el servidor que está quitando. Debería recibir una confirmación que enumere el sitio y el dominio que elija.
Escriba list servers in site y presione ENTRAR. Se muestra una lista de los servidores del sitio, cada uno con un número asociado.
Escriba select server número, donde número es el número asociado con el servidor que desea quitar. Aparece una confirmación donde se indica el servidor seleccionado, su nombre de host de Servidor de nombres de dominio (DNS) y la ubicación de la cuenta de equipo del servidor que desea quitar.
Escriba quit y presione ENTRAR. Aparece el menú Metadata Cleanup.
Escriba remove selected server y presione ENTRAR. Debe recibir la confirmación de que la eliminación se ha completado correctamente. Si aparece el mensaje de error siguiente:
Error 8419 (0x20E3) No se encontró el objeto DSA.
el objeto de configuración NTDS puede haberse quitado ya de Active Directory porque lo haya quitado otro administrador o como consecuencia de la replicación de la eliminación con éxito del objeto después de ejecutar la utilidad DCPROMO.
Nota: También puede ver este error cuando intenta enlazar con el controlador de dominio que se va a quitar. Ntdsutil tiene que enlazar con otro controlador de dominio distinto al que se va a quitar con la limpieza de metadatos.
Escriba quit en cada menú para salir de la utilidad Ntdsutil. Debe aparecer la confirmación de que la desconexión se ha completado correctamente.
Quite el registro cname de la zona _msdcs.dominio raíz del bosque en DNS. Suponiendo que el controlador de dominio (DC) se va a reinstalar y se va a volver a promover, se crea un nuevo objeto de configuración NTDS con un nuevo GUID y un registro cname coincidente en DNS. Es mejor que los DC que existan no usen el registro cname antiguo.
Es aconsejable eliminar el nombre de host y otros registros DNS. Si se supera el tiempo de concesión que queda en la dirección de Protocolo de configuración dinámica de host (DHCP, Dynamic Host Configuration Protocol) asignada al servidor sin conexión, otro cliente puede obtener la dirección IP del DC problemático. Ahora que se ha eliminado el objeto de configuración NTDS, puede eliminar la cuenta de equipo, el objeto miembro FRS, el registro cname (o Alias) del contenedor _msdcs, el registro A (o Host) en DNS, el objeto trustDomain para un dominio secundario eliminado y el controlador de dominio.
Use ADSIEdit para eliminar la cuenta de equipo. Para ello, siga estos pasos:
- Inicie ADSIEdit.
- Expanda el contenedor Domain NC.
- Expanda DC=su dominio, DC=COM, PRI, LOCAL, NET.
- Expand OU=Domain Controllers.
- Haga clic con el botón secundario del mouse (ratón) en CN=nombre de controlador de dominio y, después, haga clic en Eliminar.
Si aparece el error "No se puede eliminar el objeto DSA" cuando intenta eliminar el objeto, cambie el valor de UserAccountControl. Para cambiar el valor de UserAccountControl, haga clic con el botón secundario del mouse en el controlador de dominio en ADSIEdit y, después, haga clic en Properties. En Select a property to view, seleccione UserAccountControl. Haga clic en Clear, cambie el valor por 4096 y, después, haga clic en Set. Ya puede eliminar el objeto.
Nota: El objeto de suscriptor FRS se elimina cuando se elimina el objeto de equipo porque es un objeto secundario de la cuenta de equipo.
Use ADSIEdit para eliminar el objeto de miembro FRS. Para ello, siga estos pasos:
- Inicie ADSIEdit.
- Expanda el contenedor Domain NC.
- Expanda DC=su dominio, DC=COM, PRI, LOCAL, NET.
- Expanda CN=System.
- Expanda CN=File Replication Service.
- Expanda CN=Domain System Volume (SYSVOL share).
- Haga clic con el botón secundario del mouse en el controlador de dominio que está quitando y, a continuación, haga clic en Eliminar.
En la consola DNS, use MMC de DNS para eliminar el registro A en DNS. El registro A también se conoce como registro Host. Para eliminar el registro A, haga clic con el botón secundario del mouse en él y, después, haga clic en Eliminar. Elimine igualmente el registro cname (también conocido como Alias) en el contenedor _msdcs. Para ello, expanda el contenedor _msdcs, haga clic con el botón secundario del mouse en el registro cname y, después, haga clic en Eliminar.
Importante Si éste era un servidor DNS, quite la referencia a este DC debajo de la ficha Servidores de nombres. Para ello, en la consola DNS haga clic en el nombre de dominio en Zonas de búsqueda inversa y, después, quite este servidor de la ficha Servidores de nombres.
Nota: Si tiene zonas de búsqueda inversas, quite también el servidor de esas zonas.
Si el equipo eliminado era el último controlador de dominio de un dominio secundario y éste también se eliminó, use ADSIEdit para eliminar el objeto trustDomain del objeto secundario. Para ello, siga estos pasos:
- Inicie ADSIEdit.
- Expanda el contenedor Domain NC.
- Expanda DC=su dominio, DC=COM, PRI, LOCAL, NET.
- Expanda CN=System.
- Haga clic con el botón secundario del mouse en el objeto Dominio de confianza y, a continuación, haga clic en Eliminar.
Use Sitios y servicios de Active Directory para quitar el controlador de dominio. Para ello, siga estos pasos:
- Inicie Sitios y servicios de Active Directory.
- Expanda Sitios
- Expanda el sitio del servidor. El sitio predeterminado es Nombre-predeterminado-primer-sitio.
- Expanda Servidor.
- Haga clic con el botón secundario del mouse en el controlador de dominio y, a continuación, haga clic en Eliminar.
Además, deberemos tener en cuenta lo siguiente:
- Si el DC eliminado era un GC, habría que evaluar si algún servidor de aplicaciones que apuntara al GC caído deba configurarse o “re-apuntar” a un GC que esté presente y funcionando.
- Si el DC eliminado era un GC, habría que evaluar añadir/promocionar un nuevo GC en el Site, dominio, o bosque.
- Si el DC eliminado era responsable de algún FSMO, transferir dicha función a otro DC.
- Si el DC eliminado era un servidor de DNS, actualizar la configuración de los clientes DNS en todas las estaciones de trabajo, servidores miembro, u otros DC’s que pudieran hacer uso del servidor caído para la resolución de nombres. Si se requiere, modificar el ámbito de DHCP para reflejar el borrado del servidor DNS caído.
- Si el DC eliminado era un servidor de DNS, actualizar la configuración de los Reenviadotes y de las Delegaciones en cualquier otro servidor DNS que pudiera estar apuntando al DC eliminado para la resolución de nombres.
Transferir los FSMO mediante ntdsutil
Ante la caída de un DC en un dominio dado y si no hay posibilidad ninguna de restaurarlo, y después de haber leído el punto anterior , seguiremos el siguiente procedimiento.
En cualquier controlador de dominio, haga clic en Inicio, haga clic en Ejecutar, escriba ntdsutil en el cuadro Abrir y, a continuación, haga clic en Aceptar.
Nota: Microsoft recomienda que utilice el controlador de dominio que va a asumir las funciones FSMO.
Escriba roles y, a continuación, presione ENTRAR.
Nota: para ver una lista de los comandos disponibles en cualquiera de los símbolos del sistema de la herramienta Ntdsutil, escriba ? y, a continuación, presione ENTRAR.
Escriba connections y, a continuación, presione ENTRAR.
Escriba connect to server nombre del servidor , donde nombre del servidor es el nombre del servidor que desea utilizar y presione ENTRAR.
En el símbolo de server connections:, escriba q y, a continuación, presione ENTRAR de nuevo.
Escriba seize función, donde función es la función que desea asumir. Para ver una lista de las funciones que puede asumir, escriba ? en el símbolo de Fsmo maintenance: y presione ENTRAR o consulte la lista de funciones que aparece al principio de este artículo. Por ejemplo, para asumir la función Maestro RID escribiría seize maestro rid . La única excepción es la función Emulador PDC, cuya sintaxis sería "seize pdc" y no "seize emulador pdc".
Nota: las cinco funciones deben estar en el bosque. Si el primer controlador de dominio está fuera del bosque, asuma todas las funciones. Determine qué funciones van a estar en cada uno de los controladores de dominio restantes de forma que las cinco funciones no estén en un único servidor.
Microsoft© recomienda que sólo asuma todas las funciones cuando el otro controlador de dominio no vuelve al dominio; de lo contrario, repare con las funciones el controlador de dominio que no funciona.
Si el controlador de dominio original que tiene las funciones FSMO sigue en conexión, transfiera las funciones. Escriba transfer función.
Después de asumir o transferir las funciones, haga clic en q y presione ENTRAR hasta que salga de la herramienta Ntdsutil.
Nota: no ponga la función Maestro de infraestructuras en el mismo controlador de dominio que el catálogo global.
En el caso de nuestro domino, gctiberica.local, esto nos es indiferente, pudiendo estar el GC en el mismo DC que el Maestro de Infraestructuras sin ningún problema.
Para comprobar si un controlador de dominio es un servidor de catálogos globales:
Haga clic en Inicio, seleccione Programas, seleccione Herramientas administrativas y, a continuación, haga clic en Sitios y servicios de Active Directory.
Haga doble clic en Sitios en el panel izquierdo y vaya hasta el sitio apropiado o haga clic en Nombre-predeterminado-primer-sitio si no hay ningún otro sitio disponible.
Abra la carpeta Servidores y haga clic en el controlador de dominio.
En la carpeta del controlador de dominio, haga doble clic en Configuración de NTDS.
En el menú Acción, haga clic en Propiedades.
En la ficha General, busque la casilla de verificación Catálogo global para ver si está activada.
Informa de tu éxito / fracaso.
Samba4 todavía se está desarrollando (muy rápidamente). Sería interesante que si has implementado SAMBA4 hagas partícipe a la comunidad en la siguiente dirección:
Puedes colaborar con este documento en:
Por favor, ten en cuenta que Samba4 no está completa, por lo que debe implementar con cuidado hasta que esté listo para un lanzamiento no-alfa.
Fuentes
Guía de instalación de la SLES . (inglés):
Wiki de SAMBA 4 (es la mayoría del documento) (inglés):
Explicación de directorio activo y herramientas de diagnóstico (Windows) gracias a www.bujarra.com:
Configuración de las actualizaciones dinámicas he usado:
- www.google.es ;-)
- www.google.com/linux (inglés)
- http://www.netlinxinc.com/netlinx-blog/45-dns/136-how-to-implement-gss-tsig-on-isc-bind.html
Guías del BIND (DNS) (inglés):
Referencia de Kerberos: (inglés):
El bind 9.7 lo he obtenido de: