GPO de Preferencias de Directorio Activo de Windows Server 2008 R2.

Aprovechando que estoy con ello, vamos a darle un repasito a las Preferencias de Directorio Activo.

¿Que son las preferencias? son un conjunto de configuraciones iniciales que necesita un usuario para su trabajo cotidiano, como pueden ser carpetas de usuario, entradas de registro, accesos directos, configuraciones de energia, ubicaciones de red, impresoras, etc. Se trata de ofrecer un método simple y amigable para las configuraciones que tradicionalmente se realizaban mediante un logon script.

A diferencia de la configuración de directiva de grupo, las preferencias no se exigen. Los usuarios pueden cambiar las preferencias después de su implementación inicial.

En principio pensaba que solo era posible utilizarlas si tenias Windows 7 como cliente y Windows Server 2008 como Controladores de Dominio. Error, si no tenemos Windows 7 como cliente, antes que un equipo pueda recibir las configuraciones de preferencias tenemos que descargarnos e instalar Group Policy Preference Client Side Extension (GPPCSE) para Windows XP SP2 o Windows Vista. Esto viene detallado en este KB943729.

Buen fin de semana.

Inter-Site Change Notifications” en los servicios de Active Directory.

Os cuento cómo provocar la replicación de los cambios en Directorio Activo cada cinco segundos entre Sites distintos. 

Situación inicial: Bosque y dominio único con tres Sites distintos, Madrid, Santander y Torrevieja. Por defecto la configuración de Directorio Activo Site & Services es la siguiente:



Hay que añadir que por desconocimiento habiamos configurado la topologia de AD en anillo y no era realmente asi, tenía que ser centralizada.

La replicación de cambios en Directorio Activo está configurada de la siguiente manera:

  • Intra-Site.- Dentro de cada Site, cada cambio se replica al resto de Controladores de dominio del mismo Site utilizando una replicación denominada ‘Normal’, que es 5 segundos después de realizar dicho cambio. 

 

  • Inter-Site.- Entre cada Site, cada cambio se replica al resto de Controladores de dominio de otros Sites conforme a lo definido en el Site-Link creado. En nuestro caso es cada 180 minutos.
 
Question: Ya que las comunicaciones entre los diferentes Sites es buena, la finalidad es provocar que tengan la misma latencia las replicaciones Intra-Site y las Inter-Site, o sea, 5 segundos después de haberse realizado un cambio. ¿Os parece viable?

En nuestro caso, además habíamos definido en Directorio Activo que tanto la línea de comunicación entre Madrid y Torrevieja como la línea entre Madrid y Santander fuese la misma (el site link definido), teniendo el mismo peso, y realmente no era así, cada línea de comunicaciones era muy diferente de la otra. Había que definir dos tipos de Site-Links distintos con una ponderación relacionada directamente proporcional a dicho ancho de banda.

Primero.- Reflejar la topología de red tal y como queriamos. Teníamos configurada la opción de IP Site Link en el protocolo IP, o sea, teníamos definido “enlazar todos los vinculos a sitios”. Desmarcando dicha opción solucionamos este punto
 



Segundo.- Provocar dicha replicación Intra-Site = Inter-Site = 5 segundos. Abrimos la consola Adsi Edit, editamos el contexto de nomencaltura “configuración, bajamos hasta Sites, Inter-Site Transports, IP y en el atributo Optiones ponemos el valor “1“:


Prueba superada.

Bibliografía
MSDN
Technet
Social Technet.

Migración de una Entidad Certificadora de Servidor. Parte II – Importacion.

Hoy continuamos con la importación de los datos de la Entidad Certificadora (CA) de Windows Server 2003 en un Windows Server 2008 R2.

Procederemos de la siguiente manera:

  • Comprobaremos que los servicios de la CA Legacy están parados.- Sobre todo para que no emita ningún certificado.
  • Instalaremos los servicios de Entidad Certificadora (CA) en el Servidor que va a ser destino.
  • Añadimos el Rol desde el Server Manager:
  • Elegimos el tipo de servicio, Certification Authority.
  • Seleccionaremos si la CA es Enterprise o StandAlone. En nuestro caso es Enterprise:
  • Elegimos si es Root CA o Subordinada.- En nuesto entorno de una única CA por lo que será Raiz de todas maneras:
  • Importaremos el certificado de la CA.- En este punto seleccionaremos que ya tenemos un certificado con clave privada para importar, el que hicimos backup en el Post anterior:
Seleccionamos el fichero en cuestión:
 Nos aparecere el Certificado a Importar:
  • Directorios de instalación.- Pues nada, las rutas por defecto:
  • Review.- Y, para finalizar la página de confirmaicón de todo lo que hemos seleccionado:
  • Reinicio de los Servicios.- Si no nos pregunta que reinicimos los servicios, lo haremos nosotros.
  • Importaremos el Backup realizado.-Desde la consola de CA “Restore CA….” nos lanza el Wizard de restauración, indicándonos que tendrá que parar los servicios:
Asistente de rigor:
 
Indicamos qué es lo que queremos restaurar, la clave privada y/o la base de datos así como la ruta donde extraer la información:

Password asignada en la Parte I:.

 Y fin:
 

Nos informa si queremos iniciar servicios o incluir otro tipo de backups que tengamos:

  • Aplicaremos las claves de registros.- Aplicaremos las claves de registro, en el caso de ser necesarias, ya que es donde se guarda la configuración de la CA. Ejecutamos el fichero de registro que copiamos en el backup del Paso I. Nos informa de lo peligroso que estamos haciendo y le decimos que si:

Nos vuelve a informar que se ha añadido la información al registro:

** OJO => En nuestro caso no ha sido necesario aplicarlas, primero por ser diferentes versiones de sistema operativo y, segundo, porque la mayoría de los parámetros de configuración eran los mismos.

Nos faltaría realizar las comprobaciones pertinentes de que, por un lado, todos los certificados emitidos por la CA antigua siguen funcionando correctamente, por otro, que podemos emitir nuevos certificados que sirven a su función, Que vemos todas las plantillas que se publican en Directorio Activo, todos los certificados revocados, certificados emitidos, clave pública de la CA, listas de revocación, puntos de acceso, etc., :

Podríamos haber instalado el rol de Portal Web de Certificados, etc., pero lo he dejado, para otro dia.

Hasta la próxima.

Bibliografía del TechNet:
TechNet 1
TechNet 2
TechNet 3
TechNet 4

Migración de una Entidad Certificadora de Servidor. Parte I – Exportación.

Muy pocas veces nos encontramos en la tesitura de tener que migrar una Entidad Certificadora (CA) de un servidor, ya sea porque es antiguo, con pocos recursos, con demasiados roles o con un Sistema Operativo obsoleto, a un nuevo servidor, moderno.

Nuestro caso es el de migrar una CA de un servidor Windows Server 2003 a un Windows Server 2008 R2. Lo dividimos en dos partes, primero exportamos y luego importamos.

Exportar: Partimos del KB298138 de Microsoft como base.

Necesitamos:

  • Realizar un Backup de la CA.
  • Exportar la configuración del registro.

Desde la consola de gestión de la CA, lanzamos una copia de seguridad de la misma:

Una vez nos aparece el Wizard, seleccionamos siguiente, y nos aparece la siguiente pantalla, donde seleccionaremos la exportación de la Clave Privada, la base de datos y los logs:

Ponemos una password para securizar la copia de seguridad:

Para terminar realizamos una copia de seguridad de la configuración del registro de la CA. Desde una línea de comando tecleamos “Regedit” y buscamos la siguiente entrada:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCertSvcConfiguration

Donde pulsaremos exportar, por ejemplo, a la misma carpeta que hemos creado antes.

Ya tenemos toda la información necesaria para exportar la CA. La copiamos al nuevo servidor y esperamos al siguiente Post.
Un saludo,

Migración de WebSites – De IIS6 a IIS7.

Estoy involucrado en un proyecto de migración de websites desde una plataforma IIS5 e IIS6 a otra con IIS7.5, vamos de Windows 2000 y Windows Server 2003 a una Windows Server 2008R2, de x32 a x64. Me centraré en la migración de IIS6 a IIS7 porque como sabreis Windows 2000 ni está soportado ni nada de nada, aunque haya cienes y cienes de ellos todavía funcionando.

Buscando en el portal IIS.Net encontré el Web Platform Installer 3.0 que instalé y, sobre todo, varias herramientas que contiene y que me vienen como anillo al dedo :
  • Web Deployment Tool.- para el despliegue de Sites.
  • Web Farm Framework.- para la creación de una granja de publicadores.

 

También en este portal descubrí un procedimiento de migración muy sencillo que ahora os resumo:

Tipo de migraciones que podemos realizar con esta herramienta:
  • Migrate 1 or 1,000 Web sitesfrom IIS 6.0 to IIS 7 including all the configuration settings, content andcertificates
  • Migrate a single application
  • Migrate an entire server(all Web sites, application pools, etc.) from IIS 6.0 to IIS 7
  • Migrate a custom manifestcomprised of sites, application pools, assemblies, COM objects, registry keys,content and more from IIS 6.0 to IIS 7
 Preprequisitos:
  • .NET Framework 2.0 SP1 osuperior.
  • Web Deployment Tool 1.1
 Migración:
  • Part 1 – View your site’sdependencies
1. Get the dependencies of the Web site by running the followingcommand: msdeploy-verb:getDependencies -source:metakey=lm/w3svc/1
2. Review the output of the dependencies and look for any scriptmaps or installed components in use by the site. For example, if WindowsAuthentication is in use by the Web site, you will see <dependencyname=”WindowsAuthentication” />.
3. If your site is inheriting any script maps, these will not belisted in the dependencies and you should also review the script maps for yoursite manually.
4. Compile a list of the components needed on the destination.
  • Part 2 – Configure thetarget
1. Review the list of dependencies and install them on thedestination server.
For example, let’s assume you had the following in use for yourWeb site:
·        ASP.NET
·        Windows Authentication
·        Anonymous Authentication
Based on this analysis of your dependencies, you would installthe corresponding components and modules.

  • Part 3a – Migrate your siteto the target by using a package file
1. Always make a backup of the destination server. Even if youare just testing, it allows you to easily restore the state of your server.
%windir%system32inetsrvappcmd add backup “PreWebDeploy”
2. Run the following command on the source server to create apackage (compressed) file of the server:
msdeploy -verb:sync -source:metakey=lm/w3svc/1-dest:package=c:Site1.zip > WebDeployPackage.log
3. Copy the package file to the destination server.
3. Run the following command on the destination server tovalidate what would happen if a sync operationwere run:
msdeploy -verb:sync -source:package=c:Site1.zip-dest:metakey=lm/w3svc/1 -whatif > WebDeploySync.log
4. After verifying the output, run the same command againwithout the whatif flag:
msdeploy -verb:sync -source:package=c:Site1.zip-dest:metakey=lm/w3svc/1 > WebDeploySync.log
  • Part 3b – Migrate your siteto the target by using the Web Deployment Agent Service
If you don’t want to use a package, you can use the WebDeployment Agent Service (MsDepSvc, also called “remote service”) tosynchronize from IIS 6.0 to IIS 7.
1. Install the remote service on either the source or thedestination depending on whether you want to synchronize from a remote sourceor to a remote destination.
2. Start the service on the computer.
net start msdepsvc
3. Run the following command to do a “push”synchronization from the local source to a remote destination (replace Server1 withthe name of the remote computer). Run the command first with the whatif flag,then without it once you have confirmed that the command will do what you want.
msdeploy -verb:sync -source:metakey=lm/w3svc/1-dest:metakey=lm/w3svc/1,computername=Server1 -whatif > msdeploysync.log
4. Alternatively, run the following command to do a”pull” synchronization from the remote source to the localdestination (replace Server1 with the name of the remote computer). Run thecommand first with the whatif flag, then without it once you have confirmedthat the command will do what you want.
msdeploy -verb:sync-source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1-whatif > msdeploysync.log
You are now done migrating your site. To verify, test browsingto the web site on the destination server. For troubleshooting help, see Troubleshooting Web Deploy.

Pues, manos a la obra. Ejecutamos los siguientes comandos desde nuestro servidor W2K8R2IIS y después de unos minutos nos aparece el nuevo Site:


Depende de la programación y configuración del Site de origen el que funcione a la primera. Yo, de todas maneras, realizó un chequeo oportuno:
  • Verificar los Bindings.- 
  • Verificar los Applications Pools.-
  • Importar Certificados.- En el caso de que proceda.
  • Verificar el tipo de autenticación.- En mi caso me pedía usuario y password al conectarme aunque tuviese Autenticación Anónima. Tuve que seleccionar “Application pool identity”.
  • Igualar permisos.- Ya sea con un robocopy, un SubinAcl o un Icacls.



    Bibliografía.

    >Script para realizar Backup de una Entidad Certificadora.

    >Buenos dias,
    Últimamente estoy en un proyecto para montar una infraestructura PKI, Infraestructura de Clave Pública, en una plataforma con Microsoft Windows 2008 R2 y he creado este script para que se realice backup de la base de datos, certificados, templates y CSP. Creo que es bastante completo:

    Echo Backup Certification Authority, Certificates, Templates and CSP
    CD/
    cd backup
    Echo Y| del C:BackupBACKUPCADATABASE
    Echo Y|rd /S C:BackupBACKUPCADATABASEDataBase
    Echo Y| del C:BackupBACKUPCA
    Echo Backing up the Certification Authority and Certificates
    certutil -backup -p C:BackupBACKUPCADATABASE
    Echo Backing up the registry keys
    reg export HKLMSystemCurrentControlSetServicesCertSvcConfiguration C:BackupBACKUPCAregkey.reg
    Certutil –getreg CACSP > C:BackupBACKUPCACSP.txt
    Echo Documenting all certificate templates published at the CA
    Certutil –catemplates > C:BackupBACKUPCACATemplates.txt
    move \
    nombre del servidorbackupNEWCABACKUPCA \nombre del servidorbackupNEWCA”%date:/=_%”
    xcopy C:BackupBACKUPCA*.* \
    nombre del servidorbackupNEWCABACKUPCA /S /y

    Las últimas líneas del script son para copiarnos dicho backup en una carpeta que tenga por nombre la fecha del día en que se ejecuta este script y se mueva diariamente el último backup

    Espero que os sirva.
    Nos vemos.

    >¿Cómo resetear la password de Master o Administrator en entornos Windows?

    >Hoy por casualidad en el LinkeIn he visto que alguien preguntaba “He perdido mi password de Administrador del dominio, qué hago?”.

    Esto, normalmente, en cualquier entorno ya se Linux, Windows, Host, MainFrame, etc., es un problema importante, ya que el usuario con mas privilegios del mundo mundial en tu infraestructura no está controlado!!! Vamos, que has perdido tus superpoderes!!! Que ya no eres Superguerrero de nivel 4!!!.

    En algunas empresas dirian “estamos en crisis!” o “esto es una crisis!”……. o “qué es lo qué es?”.

    ¿Cómo solucionarlo? Aqui te dejo un par de videos tutoriales de Youtube y seguire buscando.

    Este primero es bastante interesante por su forma de solucionarlo:
    [youtube http://www.youtube.com/watch?v=Ar-VoO9ogHc]

    Este segundo es utilizando un producto denominado Active@ Change Password
    [youtube http://www.youtube.com/watch?v=YzzsDhc8w2Y]

    Hay otras formas de solucionar los problemas.

    Suerte a todos aquellos que hos haya pasado esto!!!.

    Robezno.

    Deshabilitar el estado de Hibernación de un Servidor.

    Hoy me he encontrado con problemas de espacio en Disco en un servidor y he descubierto que estaba habilitado el “estado de hibernación” del mismo!!!!!

    ¿Cómo deshabilitarlo?
    1. Abrimos una consola de comandos como administrador, si no lo somos.
    2 escribimos “powercfg -h off”
    3 Pulsamos Intro y ya está.

    Fácil, rápido y con espacio en disco.

    Nos vemos.

    Manejo de ficheros VHD con Windows 7 y Windows Server 2008 R2.

    Hola a tod@s,

    ¿Qué son los ficheros VHD? O mejor dicho con extensión .vhd. Es el acrónimo de Virtual Hard Disk, o sea, Disco Duro Virtual. Este es el formato que los diferentes productos de Virtualización de Microsoft, como Hyper-V o Virtual PC, utilizan para crear los discos duros.

    También recordar que es el formato en el que, a partir de Windows Server 2008, se guardan los Backups de los equipos utilizando Windows Server Backup, recordar una entrada antigua en el Blog.

    Bien, pues tenemos las siguientes opciones: crear, asignar y montar este tipo de ficheros ¿cómo?

    Lanzamos una consola de Gestión de discos de nuestro Windows 2008 o Windows 7 (por ejemplo desde la línea de comandos ponemos diskmgmt.msc). Esta es nuestra consola:

    En el menú Acción nos aparecen las nuevas opciones Crear VHD y Exponer VHD. Yo prefiero decir Asignar o montar VHD, creo que es más correcto.

    Creamos un VHD. En este caso indicamos la ruta de nuestro equipo en la que se ubicará el fichero VHD, el tamaño y el formato. Tenemos dos opciones, de Expansión dinámica o Tamaño fijo:

    En la consola de Discos ahora nos aparece el nuevo disco de 30 GB al que tenemos que

    Inicializamos disco, creamos un nuevo volumen, le asignamos unidad y le damos formato con el Wizard (un clásico):

    Nos aparece un mensaje de la detección de un nuevo dispositivo e instalación de los drivers necesarios en la barra de tareas, que si no os da tiempo a verlo, lo podéis verificar en el administrador de dispositivos, que se ha instalado un nuevo controlador de almacentamiento:

    En este otro caso asignaremos un fichero ya creado. Desde el Menu de Acción seleccionaremos “Exponer VHD”. Asignaremos el disco y, ojo, nos deja la posibilidad de montar dicho disco pero sólo en lectura:

    Aceptamos

    Y ya podemos trabajar con él. Muy sencillo.

    Para desconectar el disco virtual… podemos hacerlo de diferentes maneras:

    Desde el administrador de discos:

    ¡Ojo! Con seleccionar la opción de “Eliminar el archivo del disco duro virtual tras quitar el disco”. Queda muy claro lo que hace:

    Desde los dispositivos conectados:

    Muy interesantes, ¿verdad?. Podemos montar estas unidades de disco virtual y sacar información de ellas, corregirla, modificarla o borrarla y luego volver a asignarla a una Máquina Virtual.

    Nos vemos.

    Diagnóstico de Directorio Activo – DCDIAG.

    Los Controladores de Dominio (DC) son la piedra angular de Directorio Activo (AD) de Microsoft. Si los DC no funcionan correctamente, AD tampoco lo hará, los usuarios no podrán conectarse a sus equipos, las políticas no se ejecutarán, etc., etc. Vamos un caos. Y en seguida recibiremos todas las llamadas del mundo que harán nuestro trabajo más fácil y ameno.

    Una herramienta muy útil y gran desconocida es la “Utilidad de Diagnóstico de Directorio Activo” (dcdiag).

    Sintáxis del comando:

    dcdiag.exe /s:<Servidor de directorio>[:<Puerto LDAP>] [/u:<Dominio><Nombre de usuario> /p:*|<Contraseña>|""] [/hqv] [/n:<Contexto de nomenclatura>] [/f:<Registro>] [/x:archivoDeRegistroXML.xml] [/skip:<Prueba>] [/test:<Prueba>]

    Dcdiag lo podemos ejecutar diariamente/semanalmente aportándonos información rápida, directa y necesaria para saber en qué estado está nuestro Directorio Activo y dónde hay problemas, si los hay.

    • /H La clásica ayuda.
    • /S Servidor de AD contra el que ejecutamos el diagnóstico.
    • /N Nos permite especificar un “domain naming context (DNC)” o contexto de nombres de dominio. Cada DNC almacena objetos tales como usuarios, equipos, grupos. Etc.
    • /U Credenciales para ejecutar el Dcdiag (dominionombre de usuario)
    • /P Contraseña.
    • /A realiza el test en todos los DC del Site actual (en el caso de tener diferentes Sites).
    • /E Similar al anterior, realiza test a todos los DC de la empresa.
    • /Q Modo silencioso (quiet mode). Solo muestra mensajes de error.
    • /V Modo detallado (verbose mode).
    • /I Omite mensajes de error superfluos.
    • /C Realiza toda la batería de test excluyendo el test DcPromo y RegisterInDNS (que veremos después).
    • /F Redirige todos los resultados del test a un fichero.
    • /FIX Realiza correcciones de forma segura. (ojo yo igual no utilizaría esta opción).
    • /TEST Realiza uno de los test que más abajo detallo.

    Una vez visto las diferentes opciones/sintaxis que la utilidad tiene y los resultados de su ejecución, como ejemplo, paso a comentaros los test más importantes y los que nos aportan mayor información al administrador.

    • /Test:Advertising.- Comprueba si cada uno de los “Directory System Agent” (DSA) se informa a sí mismo de su estado.

      DSA es un conjunto de servicios y procesos que se ejecutan en un controlador de dominio. Su trabajo es proveer el acceso a la base de datos de AD, como por ejemplo LDAP.

    • /Test:CheckSDRefDom.- Esta prueba comprueba que todas las aplicaciones de las particiones de directorio tengan asignado el descriptor de seguridad de dominio adecuado.
    • /Test:CheckSecurityError.- Esta prueba localiza todos los errores que puedan estar relacionados con la seguridad. Este test no se realiza por defecto.
    • /Test:Connectivity.- Esta prueba testea los DC que están registrados en DNS, asi como si se accede a ellos por LDAP y RDP.
    • /Test:CrossRefValidation.- Busca referencias cruzadas que no son válidas de alguna manera. Este problema se suele solucionar usando el editor ADSI y eliminando el objeto referido.
    • /Test:CutOffServers.- La filosofía de este test es verificar/averiguar los partners/asociados a la replicación que están caídos.
    • /Test:DcPromo.- Este test nos permite realizarlo en un servidor antes de promoverlo a Controlador de Dominio. Muy útil pero poco conocido y usado.
    • /Test:DNS.- Estos test adicionales hace referencia al servicio de Domain Name Services (DNS). Después de todo AD depende completamente de dicho servicio. Estos test son:
      • /DNSBasic.- Test básico de DNS.
      • /DNSForwarders.- Chequea tanto los Forwarders como los Root Hints.
      • /DNSDelegation.- Chequea la delegación
      • /DNSDynamicUpdate.- Chequea qué parte del espacio de nombres DNS está autorizado.
      • /DNSRecordRegistration.- Comprueba que registros pueden ser dados de alta en el servidor DNS.
      • /DNSAll.- Está claro. Todos los test mencionados.
    • /Test:SysVolCheck.- Realiza una comprobación básica sobre varias particiones de AD, incluyendo las zonas Forest DNS, Domain DNS, la partición de configuración, la partición de dominio y la partición de esquema.
    • /Test:FrsEvent.- Comprueba si el servicio de replicación de ficheros (FRS) experimenta algún error. Importante, ya que por un malfuncionamiento de FRS los DC pueden estar desincronizados, causando la no aplicación de políticas, por ejemplo.
    • /Test:LocatorCheck.- Hace una comprobación para asegurarse que los DC con funciones FSMO son conocidos y, sobre todo, accesibles.
    • /Test:IntersiteTest.- Realiza una serie de test para ver si hay algún problema con los DC BridgeHead (Cabeza de Puente), por si hay algún problema de replicación entre Sites.
    • /Test:KCCEventTest.- Esta prueba comprueba que el Knowledge Consistency Checker (KCC) está funcionando y si está produciendo errores, algo así como un comprobador de coherencia.

    Existen más test, pero solo los nombro:

    • /Test:KnowsOfRoleHolders
    • /Test:MachineAccount
    • /Test:NCSecDesc
    • /Test:NetLogons
    • /Test:ObjectsReplicated
    • /Test:OutboundSecureChannels
    • /Test:RegisterInDns
    • /Test:Replications
    • /Test:RidManager
    • /Test:Services
    • /Test:SystemLog
    • /Test:Topology
    • /Test:VerifyReferences
    • /Test:VerifyEnterpriseReferences

    Hay test para todo….

    Un saludo,