Archivo de Octubre 2008

NAP CON DHCP a Pasito

Octubre 28, 2008

 
Hola a todos

Como parte del proceso de mi proyecto en ItproMomentum, es que me decidí a implementar una red con NAP (Network Acces Protecction).

Pero Primero que todo ¿que es NAP?

La Protección de Acceso a Red (NAP, Network Access Protection) es una plataforma de aplicación de políticas incorporada dentro del sistema operativo Microsoft Windows que permite a los profesionales de TI configurar políticas (por ejemplo, políticas de actualización de versión del sistema operativo o de antivirus), de forma que se pueda restringir el acceso a la red a los clientes hasta que puedan demostrar que cumplen las normativas indicadas).

Segundo ¿ por que implementar NAP ?
Los administradores de TI hacemos esfuerzos muy grandes para proteger las empresas, implementando:

Firewalls Isa Server 2006 para prevenir el acceso de intrusos a nuestros servidores y estaciones de trabajo
Windows Server Update Services para mantener nuestras estaciones de trabajo y servidores actualizadas
Antivirus y AntiSpyWare, para prevenir todo tipo de infecciones dentro de la empresa.

Pero que pasa si llega un usuario con un notebook infectado por un virus y el ni siquiera lo sabe, ya que su antivirus no esta actualizado o justo no tiene una actualización critica de seguridad. Conecta el cable de red a su portátil  y el DHCP le entrega una dirección ip de nuestra LAN o simplemente el se asigna una manualmente. Automáticamente el virus o programa maligno puede propagarse por nuestra red e incluso llegando a nuestra sala de servidores.

Con NAP podemos forzar a que cualquier computador que entre en la red compla con los requerimientos minimos de seguridad de nuestra empresa, como pueden ser:

Tener todas las actualizaciones criticas
Antivirus Instalado y Actualizado
Firewall Activado
Actualizaciones Automáticas Activadas

Que software se ocupara para implementar NAP?

Virtual Server R2 en hambiente Virtual
Windows Server 2008
XP Pro Service Pack 3 
Windows Server 2003 R2 Sp2 o 2008

Diagrama de la red de prueba

DiagramaRed

  1. Primero que todo instalar el controlador de Dominio en Windows 2003 llamado prueba.cl usando el comando dcpromo y siguiendo el Wizard al pie de la letra, Ojo no olvidar instalar DNS
  2. Instalar Windows Server 2008 por defecto
  3. Unir Windows Server 2008 al dominio pueba.cl, siguiendo los siguientes pasos
    1. Inicio
    2. Panel de Control
    3. Sistema
    4. Cambiar Configuración
    5. Presionan el botón cambiar
    6. 2008aDominio
    7. Reiniciar la máquina
    8. Iniciar Sesión como miembro del dominio PRUEBA\Administrador
  4. Instalar NPS en Windows Server 2008

    Ahora vamos a Inicio -> Administrador del Servidor, hacemos click en el menu de funciones y hacer click en el icono Agregar Funciones

    Roles1

    Seleccionamos Servidor de acceso y directiva de redes (Network Policy and Acces Services) 

    NPS1 NPS2
    NPS3 NPS4 
    Reiniciar la máquina

  5. Configurar SHVs (“System Health Validators”)
    1. inicio ejecutar nps.msc
    2. En el nodo Validadores de mantenimiento del sistema, hacer doble click en “Validadores  de mantenimiento de seguridad de Windows
      nps1 
    3. Presione el botón configurar y habilite el firewall y las actualizaciones automáticas, tanto en la pestaña de Windows Vista como en la de XP

      image

  6. Configurar servidores que proporcionaran “sanción” a nuestros Desktops, estos pueden ser Wsus… En este Step by Step no tenemos Wsus :(
  7. Configurar Directivas de Mantenimiento
    1. Dar click derecho del ratón sobre el nodo “Directivas de Mantenimiento” en el menú Nuevo y y le damos en nombre de Cumple
      Seleccionar “El cliente Supera todas las comprobaciones de SHV” y habilitar el checkbox del Validador de Seguridad
      nps2 
    2. Dar click derecho del ratón sobre el nodo “Directivas de Mantenimiento” en el menú Nuevo y y le damos en nombre de NO Cumple
      Seleccionar “El cliente no Supera todas las comprobaciones de SHV” y habilitar el checkbox del Validador de Seguridad
      nps3
  8. Configurar Políticas de Red
    1. Deshabilitar todas las políticas por defecto
    2. Con el botón derecho del mouse sobre el nodo “Directivas de red”, presionar el menú nuevo
    3. Especificar el nombre de la Política como Cumple Acceso Completo
      nps4
    4. En la pantalla de Especificar Condiciones, presionar el botón agregar y seleccionar Directivas de Mantenimiento
      image
    5. Cuando nos pregunte por la directiva de mantenimiento, seleccionamos Cumple
      nps6
    6. En la pantalla de especificar permisos de Acceso, seleccionar Acceso Concedido
    7. En la pantalla de configurar métodos de autenticación, solo dejamos Realizar solo comprobación de mantenimiento de quipos
    8. En la pantalla de configurar opciones, debemos configurar el cumplimiento NAP, para Permitir Acceso Completo a la red
    9. Finish
    10. Ahora realizaremos lo mismo que del paso 2 al nuevo, solo que en este caso
      1. En el paso 1 le damos el nombre de la politica como No Cumple
      2. En el paso 5 seleccionaremos la directiva de mantenimiento “No Cumple”  
      3. En el paso 8 seleccionamos Permitir Acceso Limitado
    11. Finish
  9. Instalar DHCP en Windows Server 2008

    DHCP1 DHCP2
    DHCP3 DHCP4
    DHCP5 DHCP6
    DHCP7 DHCP8

  10. Configurar los Alcances en el DHCP
    1. ejecutar el comando dhcpmgmt.msc
    2. En la consola Dhcp expanda el nodo IPV4
    3. Presione con el botón derecho del mouse sobre el alance(“Scope”) que realizo en el paso 9 (“Red Nap1″) y seleccione propiedades
    4. En la pestaña de protección de acceso a la red, habilite la protección de acceso a la red como muestra la siguiente figura
      scope1
    5. Expanda el alance(“Scope”) Red Nap1 y presione con el botón derecho del mouse sobre Opciones de Ámbito y seleccione Configurar Opciones
    6. Seleccione la pestaña Opciones Avanzadas
    7. En clase de Usuario, seleccione “Clase de Protección a la red predeterminada”
    8. Seleccione la opción 005 “Servidores DNS” y agrege el servidor 192.168.200.10
    9. Seleccione la opcion 015 “Nombre del Dominio DNS” y agregue restringido.prueba.cl
    10. Aplicar y  Aceptar
  11. Unir Vista y XP al Dominio
    1. Primero que todo, asegúrese que la configuración ip de los clientes sea correcta por DHCP 
    2. Usar el mismo procedimiento que en el paso 3 para vista
  12. Habilitar el Cumplimiento NAP en XP
    1. Inicio-> ejecutar->services.msc
    2. Dejar el servicio habilitado y automático
      napClientXP
    3. Configurar el cliente por dhcp
      1. netsh nap client set enforcement id=79617 admin=”ENABLE”
        1. DHCP = 79617
        2. RAS = 79618
        3. IPSec = 79619
        4. TS Gateway = 79621
        5. EAP = 79623
  13. Habilitar el Cumplimiento NAP en Vista
    1. Inicio-> ejecutar->services.msc
    2. Dejar el servicio habilitado y automático
      napClientXP
    3. Configurar el Cumplimiento nap por dhcp
    4. Ejecute napclcfg.msc
      NPSClient1 NPSClient2
  14. Lo mas importante Probar si las cosas funcionan
    1. Iniciamos Sesión En Windows XP Sp3
    2. En el panel de Control seleccionamos el icono Centro de Seguridad
    3. Desactivamos el Firewall
    4. Renovamos nuestra ip con el dhcp con el comando ipconfig /release y después el comando ipconfig /renew  y deberíamos ver algo así
      BlogoNoCumple confip
      XPnoCompliant 
  15. Pero en unos segundos mas, deberíamos ver algo así
    BlogoCumple confip2
    XPCompliant

Eso es todo

Espero les sirva este paso a paso

configuracion dns en windows 2003 server

Octubre 26, 2008

Un servidor DNS nos va a servir para la resolución de nombres cuando queramos acceder a las web que tenemos alojadas en nuestra intranet. Si el volumen de sitios web es grande, instalando un DNS podremos utilizar una misma IP y tener multitud de webs en un mismo servidor IIS diferenciados por nombre. Si disponemos de IP suficientes esta opción nos servirá para acceder a los webs por un nombre y no por una dirección IP que son más difíciles de recordar.

La misma filosofía se aplica si el servidor lo tenemos en Internet, si instalamos un servidor DNS con una sola IP que nos proporcione nuestro proveedor podremos alojar multitud de dominios en un mismo servidor IIS.

No voy a explicar lo que es un servidor DNS, ni que hace, ni quien lo inventó, aquí trataremos exclusivamente la instalación y la configuración. Doy por supuesto qué se sabe que es un servidor DNS.

El artículo lo he realizado con Windows Server 2003 Enterprise, IIS 6.0 y DNS Server que viene incorporado en Windows Server 2003 pero sirve como guía para instalarlo en Windows 2000 server. La idea es explicar paso a paso las acciones a realizar a la hora de instalar el servidor DNS y relacionarlos con los sitios web. Voy a basarme en una intranet pero el artículo sería similar si lo aplicáramos para un servidor en Internet.


Instalación del servidor DNS. Para instalar un DNS Server vamos a Inicio > Panel de control > Agregar o quitar programas, una vez ejecutada esta opción aparece una ventana donde seleccionaremos de las opciones que aparecen a la izquierda, agregar o quitar componentes de Windows, buscamos en la ventana que nos aparece la opción servicios de red, la seleccionamos y pulsamos el botón detalles, de la nueva ventana que aparece seleccionamos la opción sistema de nombres de dominios (DNS), la seleccionamos (imagen 1) y aceptamos todas las pantallas y pulsamos siguiente. Este proceso de instalación pedirá el CD de Windows debido a que necesita instalar varios componentes.

Una vez terminado el proceso de instalación podemos acceder al DNS desde Inicio > herramientas administrativas > DNS, hacemos clic en DNS y aparecerá la imagen 2, a partir de ahora hay que configurarlo.


Configuración del servidor DNS.
Para configurar el DNS y que nos resuelva las IP en nombres lo primero que deberemos crear es una zona de búsqueda inversa. Para realizar esta acción nos pondremos sobre esta rama de la consola del DNS y con el botón derecho seleccionamos nueva zona, nos aparece un asistente donde asignaremos: 1. Tipo de zona: Primaria (imagen 3) 2. Id. De red: Será nuestra IP, en mi caso y para los ejemplos 172.20.0(imagen 4) Y las siguientes pantallas las dejamos tal y como las pone el asistente.

para crear los nombres de dominio pulsaremos con el botón derecho sobre zonas de búsqueda directa y seleccionamos nueva zona, aparece un asistente donde asignaremos: 1. Tipo de zona: Zonal principal. La zona secundaria se utiliza para añadir dominios que ya tienen una zona principal creada en otro servidor DNS, de esta forma cuando creamos una zona secundaria todos los registros que tengamos en la zona principal se replicarán a ésta. Pero no es nuestro caso. 2. Nombre de zona: Aquí ponemos nuestro nombre de dominio, por ejemplo, “barriosesamo”.

Para crear los subdominos pulsamos sobre la nueva zona creada (barriosesamo) , imagen 5, y vemos que a la derecha nos aparecen los datos de este domino, pulsamos con el botón derecho sobre el nombre de dominio (imagen 6) y seleccionamos #Host nuevo (A) y aparecerá una ventana similar a la imagen 7, ahí pondremos el nombre de subdominio, es el ejemplo “epi”, y la IP que tiene asignada, normalmente la de la maquina y lo añadimos, si ahora abrimos una consola (cmd.exe) y probamos hacer ping a epi.barriosesamo (nuestro dominio de intranet) que acabamos de crear veremos que nos responde afirmativamente (imagen 8) . Si queremos crear más solo tenemos que repetir los pasos, yo en las pruebas he creado los siguiente por si queréis repetirlo


Y las siguientes pantallas las dejamos como las pone el asistente.
Para crear el segundo nombre de domino repetimos los pasos.

Con ésto ya tenemos dado de alta nuestro nombre de dominio para la intranet ahora queda crear los nombres de los subdominos con los que crearemos la dirección web, es decir, accederemos a nuestro web a través de

Nombre_Subdominio.Nombre_dominio


Para crear los subdominos pulsamos sobre la nueva zona creada (barriosesamo) , imagen 5, y vemos que a la derecha nos aparecen los datos de este domino, pulsamos con el botón derecho sobre el nombre de dominio (imagen 6) y seleccionamos #Host nuevo (A) y aparecerá una ventana similar a la imagen 7, ahí pondremos el nombre de subdominio, es el ejemplo “epi”, y la IP que tiene asignada, normalmente la de la maquina y lo añadimos, si ahora abrimos una consola (cmd.exe) y probamos hacer ping a epi.barriosesamo (nuestro dominio de intranet) que acabamos de crear veremos que nos responde afirmativamente (imagen 8) . Si queremos crear más solo tenemos que repetir los pasos, yo en las pruebas he creado los siguiente por si queréis repetirlo.

- epi.barriosesamo
- blas.barriosesamo
- coco.barriosesamo
- bart.simpson
- homer.simpson

Configuración del IIS. Ya tenemos el DNS funcionando, enlazado con nuestro servicio TCP/IP y los dominios dados de alta en el DNS, ahora nos queda configurar el IIS para que acepte estos nombres de dominio en lugar de nuestra IP y poder crear las webs que necesitemos sin necesidad de que todas estén dentro del wwwroot. Para crear los nuevos webs podéis seguir este artículo que lo explica paso a paso, así no tengo que repetirlo aquí y vamos directos al grano. Una vez creado el web pulsamos sobre el botón derecho y seleccionamos propiedades, en la pantalla que aparece donde pone la dirección IP pulsamos el botón avanzadas y sobre la nueva pantalla seleccionamos la IP, ahí sale una ventana donde le pondremos la IP, el puerto y las cabeceras. Donde pone valor del encabezado host tenemos que poner nuestro nombre de domino, por ejemplo pondremos epi.barriosesamo (imagen 10). Podemos poner tantos webs como queramos y repetir este proceso por cada web nuevo que deseemos instalar. Una muestra de cómo podría quedar con varios webs instalados la tenéis en la imagen 11.

Con este último paso ya tenemos todo configurado y sólo queda probarlo. Para eso vais al Internet Explorer y ponéis http://epi.barriosesamo y debería apareceros la pagina principal de vuestro web, en mi caso imagen 12.

Top 9 -Software profesional gratuito de Microsoft

Octubre 9, 2008

 

Microsoft ofrece una gran variedad de programas gratuitos para los profesionales de la tecnología, todos ellos  versiones completas y grandes capacidades. Esta es mi selección de los mejores:

Bases de datos gratuitas

1)      SQL Express 2008 es una versión gratuita para usar y para redistribuir basada en el motor de SQL Server. Bastante poderosa ( con las siguientes restricciones: 1 CPU, usa solo 1 GB de Memoria RAM y opera con máximo 4 GB de de base de datos). Si requieres escalar se transporta fácilmente a las otras versiones de SQL. Incluye las capacidades de administración, seguridad, programabilidad, integración e interoperabilidad y reporteo. Visita el blog de SQL Express para más información.

2)      SQL Compact 2008 es una versión muy ligera para dispositivos móviles, aplicaciones web o de escritorio muy simples. Esta restringida a solo conectarse con un Workstation y a 4 GB de base de datos. Incluye las capacidades de Integración e interoperabilidad y de deployment.

Herramientas de desarrollo gratuitas

3)      Diversas herramientas de desarrollo incluyendo Visual Basic 2008 Express SP1, Visual C# 2008 Express SP1, Visual C++ 2008 Express SP1, Visual Web Developer 2008 Express SP1 y Popfly.

Para vitalización

4)      Tenemos varias ofertas para hacer vitalización y todas ellas son gratuitas, Virtual PC, Virtual Server y Hyper V que también es gratis si ya tienes Windows 2008.

Herramientas de seguridad y actualización

5)      Para manejar y distribuir actualizaciones en múltiples maquinas puedes bajar WSUS 3 SP1.

6)      Software para remover programas maliciosos (MSRT) que te permite revisar maquinas Windows vista, XP, 2000 y Windows Server 2003 para encontrar y remover software específico y común como Blaster o Sasser.

7)      Examen gratuito de computadoras OneCare Exam , identifica y elimina software malicioso y mejora el rendimiento de tu pc.

Búsqueda para empresas

8)       Search Server Express es un poderoso motor empresarial de organización y presentación de la información de la intranet sin límite de documento y con múltiples funciones avanzadas como conectores federardos.

Aplicaciones personales

9)      Las aplicaciones personales están agrupadas en Windows Live incluyendo Skydrive con 5GB gratuitos de almacenamiento, Office Live con un workspace para trabajo de equipos o incluso con presencia gratuita para empresas pequeñas en Office Live Small Business y Live Mesh que permite sincronizar todos tus documentos en múltiples computadoras y dispositivos (algo verdaderamente revolucionario!)

Para IT Pros

Si te subscribes a Technet Plus (costo aproximado de $349 dólares) tienes acceso a todo el software de Microsoft para tu uso personal de forma gratuita además de otros beneficios muy interesantes como incidentes de soporte técnico.

Si eres estudiante

Vía el programa de Dreamspark, ofrecemos software gratuito para estudiantes incluyendo Windows Server, SQL server y diversas herramientas de desarrollo (detalles)

 

 

Identificando índices duplicados en SQL Server

Octubre 7, 2008

Un problema común que se puede encontrar en SQL Server son los índices duplicados parcial o totalmente. Los índices son por regla general buenos para mejorar el rendimiento de una base de datos, pero el exceso de índices en una base de datos puede causar que SQL Server gaste mucho tiempo actualizándolos cuando no necesariamente hará uso de ellos.

Este es el caso de los índices duplicados, estos nos pueden causar los siguientes problemas:

  • Degradación del rendimiento que proviene del overhead causado por el mantenimiento de updates, inserts y deletes
  • Incremento en las actividades del log de transacciones (llenando los logs, discos y haciendo que Log Shipping falle)
  • Incremento en el tamaño de los backups (los índices hacen los backups mas grandes, requiriendo mas espacio en disco, creando tiempos de mantenimiento mas altos y consumiendo más energía para poder realizarlos, además de impactar el rendimiento del servidor mientras este se realiza).

¿Pero que es un índice duplicado y como lo detecto?

Digamos que tenemos la tabla de empleados, la cual posee la siguiente estructura:

Nombre de columna Tipo de dato
Codigo_Empleado Integer
Nombre Varchar(128)
Fecha_Nacimiento SmallDateTime
Sexo_Masculino Bit
Numero_Identificacion_Personal Varchar(16)

Y ahora digamos que tenemos dos índices creados para esa tabla:

1. IX_General: Indexa las columnas Codigo_Empleado y Nombre
2. IX_General_Identificacion: Indexa las columnas Codigo_Empleado, Nombre y Numero_Identificacin_Personal

En este caso, ambos índices indexan las columnas Codigo_Empleado y Nombre, por lo que se podría decir que uno de ellos solo causa trabajo extra al motor de base de datos. Ahora bien, ¿Como determino cual de los índices borrar?

En este punto, se necesita recurrir a la experiencia que se tenga del sistema, en general, se necesita determinar como se realizan las búsquedas en esta tabla. Por ejemplo, si siempre se busca información por Nombre, entonces lo mejor será dejar el índice IX_General, porque es mas pequeño y eficiente, pero si por otro lado, la búsqueda más común fuera por Numero_Identificacion_Personal, lo mejor será entonces quedarse con el índice IX_General_Identificacion, porque este índice incluye la columna que mas se utiliza, volviendo al otro índice obsoleto.

Tenga en cuenta que antes de borrar un índice, debe también verificar que no se estén utilizando sentencias con un index hint que la utilice, de otra forma la eliminación del índice provocará que su sentencia falle.

El siguiente procedimiento le ayudará a identificar los índices duplicados en su base de datos:

create procedure [dbo].[usp_duplicateindexes] @tablename varchar(255) as

 

set nocount on

 

print @tablename

 

–dump sp_helpindex into temp table

 

if object_id(‘tempdb..#helpindex’) > 0 drop table #helpindex

create table #helpindex

(

      index_name varchar (900) not null primary key,

      index_description varchar (1000) null,

      index_keys varchar (1000) null

)

 

insert #helpindex exec sp_helpindex @tablename

 

alter table #helpindex add inccols varchar(1000) null

 

declare cr cursor for

      select si.name, sc.name

      from sysobjects so

      join sysindexes si on so.id = si.id

      join sys.index_columns ic on si.id = ic.object_id and si.indid = ic.index_id

      join sys.columns sc on ic.object_id = sc.object_id and ic.column_id = sc.column_id

where so.xtype = ‘U’

and so.name = @tablename

and ic.is_included_column = 1

order by si.name, ic.index_column_id

 

declare @siname varchar(1000), @scname varchar(1000)

open cr

fetch next from cr into @siname, @scname

while @@fetch_status = 0

begin

      update #helpindex set inccols = isnull(inccols , ) + @scname + ‘, ‘ where index_name = @siname

      fetch next from cr into @siname, @scname

end

 

update #helpindex set inccols = left(inccols, datalength(inccols) - 2) where right(inccols, 2) = ‘, ‘

 

close cr

deallocate cr

 

if object_id(‘tempdb..#helpindex2′) > 0 drop table #helpindex2

 

create table #helpindex2

(

      index_name varchar (900) not null primary key,

      index_description varchar (1000) null,

      index_keys varchar (1000) null,

      inccols varchar(1000) null

)

 

insert into #helpindex2

 

select hi.index_name, hi.index_description, hi.index_keys, hi.inccols

from #helpindex hi

join #helpindex h2 on hi.index_keys=h2.index_keys

                    and hi.index_description=h2.index_description

                    and hi.index_name<>h2.index_name

if @@rowcount > 0

      select @tablename as “tablename”, * from #helpindex2 order by index_name, index_keys, inccols

 

if object_id(‘tempdb..#helpindex2′) > 0 drop table #helpindex2

if object_id(‘tempdb..#helpindex’) > 0 drop table #helpindex 

Para correrlo, utilice el siguiente comando:

sp_MSForEachTable ‘usp_duplicateindexes”?”’

Libros de Windows Server 2008 gratis

Octubre 7, 2008

Obtenga los siguientes libros gratis:

- Introducing Windows Server 2008 (ISBN: 9780735624214), por Mitch Tulloch con el Microsoft Windows Server Team
 
- Microsoft Windows PowerShell Step by Step (ISBN: 9780735623958), por Ed Wilson

Para accesar el e-book:

   1.  Vaya a: https://www.microsoftelearning.com/eLearning/enterCode.aspx
 
   2.  Entre el código de acceso: 8083-B6X3-0547
 
   3.  Lea y acepte el End User License Agreement
 
   4.  Haga click en Send
 
   5.  Ingrese al Microsoft Learning Web site con su Windows Live ID
 
   6.  Una vez que haya ingresado, haga click en My Learning para ver/bajar el e-book

Instalar Language Pack para WSS y MOSS

Octubre 7, 2008

1. Baje los archivos del sitio de Microsoft.

a. Si tiene MOSS va necesitar también los archivos de WSS

b. Recuerde bajar la versión correspondiente 32bits o 64bits

c. En cada página de descarga eliga el idioma que desea

d. Los links de descarga son los siguientes:

i. WSS Language pack http://www.microsoft.com/downloads/details.aspx?FamilyId=36EE1BF0-652C-4E38-B247-F29B3EEFA048&displaylang=en

ii. WSS Language pack SP1  http://www.microsoft.com/downloads/details.aspx?familyid=EF93E453-75F1-45DF-8C6F-4565E8549C2A&displaylang=en

iii. MOSS Language pack http://www.microsoft.com/downloads/details.aspx?FamilyId=2447426B-8689-4768-BFF0-CBB511599A45&displaylang=en

iv. MOSS Language pack SP1 http://www.microsoft.com/downloads/details.aspx?familyid=1F5C7D10-B4F9-482D-B0E5-9547A7F508E5&displaylang=en

2. Instale los archivos

a.Estos son los pasos de instalación

i. Instale el WSS Language Pack (no ejecute el  MOSS Configuration Wizard)

ii. Instale el MOSS Language Pack (no ejecute el  MOSS Configuration Wizard)

iii. Instale el WSS Language Pack SP1 (no ejecute el MOSS Configuration Wizard)

iv. Instale el MOSS Language Pack SP1

v. Ejecute el MOSS Configuration Wizard

 

Migrando una base de datos SQL Server 2005 a un nuevo cluster

Octubre 7, 2008

Hace poco se presentó una situación en la cual se tenía una aplicación que daba servicio a varios miles de clientes, la cual tenía que ser migrada a unos servidores nuevos, pero dentro de las restricciones de negocio que se tenían, las más importantes eran las siguientes:

1. Se debían reutilizar los IPs antiguos para maximizar la compatibilidad de los nuevos servidores (solo en instancias, el nombre del cluster en si podia ser diferente)
2. Se debía mantener el mismo nombre de la instancia de SQL Server
3. Se debía mantener el mismo nombre para el servidor virtual del SQL Server y de SSAS (mismo valor en el recurso network name del grupo)
4. Se contaba con un máximo de una hora para mantener la aplicación sin dar servicio

El plan (alto nivel) para lograr cumplir con esas restricciones fue el siguiente:

1. Instalar el nuevo cluster. Para esto, se usaron nombres nuevos en los servidores, pero esos servidores tenían IPs que eran parte de la misma subred que el cluster anterior, esto porque es un requerimiento del servicio de cluster a la hora de cambiar los números de IPs de las instancias de SQL Server y de SSAS. Cabe destacar que debe poner atención al COLLATION que tenía el antiguo cluster.
2. Se instaló el SQL Server utilizando el mismo nombre para la named instance (esto es importante ya que un named instance NO PUEDE SER RENOMBRADO)
3. Se hicieron múltiples pruebas para garantizar el funcionamiento correcto del nuevo cluster.
4. Se migraron los logins de SQL Server (http://support.microsoft.com/kb/246133). Los usuarios fueron reestablecidos utilizando un script que se explicará en un artículo futuro.
5. Se restauraron múltiples bases de datos incluyento msdb y model así como una copia para pruebas de las bases de datos de cliente.
6. Se copió la configuración de diferentes características de SQL Server como los proxy accounts, database mail, linked servers, roles y otros más.

Llegado el día de la migración, se pudo cumplir con la restricción de una hora gracias al trabajo de pruebas que se había realizado antenriormente. El proceso para mover todo fue el siguiente:

1. Hacer un detach de las bases de datos en el servidor viejo y detener los servicios de cluster. Renombrar el cluster viejo a un nombre temporal y utilizar IPs temporales en los grupos también para luego iniciar los recursos en los grupos y asegurarse que los cambios se propagen en la red (DNS principalmente)
2. Copiar las bases de datos al servidor nuevo usando robocopy
3. Hacer attach a las bases de datos y reconstruir la liga entre los logins y los usuarios de las bases de datos
4. Renombrar las instancias de SQL Server y SSAS y actualizar los IPs (http://msdn.microsoft.com/en-us/library/ms178083(SQL.90).aspx)
5. Reestablecer la replicación de datos

Todo funcionó apropiadamente y se cumplieron los requerimientos sin problemas, sin embargo existen varias notas que me gustaría compartir:

1. Debe asegurarse de que la replicación es destruída en el nuevo cluster antes de renombrarlo
2. A la hora de cambiar el IP y el nombre del cluster, siga los siguientes pasos:
- Detenga los servicios completos del grupo en el clúster, cambie el número de IP, reinicie el grupo y pruebe que el grupo se puede mover a todos los nodos que forman parte del cluster
- Detenga los servicios completos del grupo en el clúster, cambie el nombre del recurso de network name, reinicie el grupo y pruebe que el grupo se puede mover a todos los nodos que forman parte del cluster (en el caso de SSAS toma mucho mas tiempo que el renombrado sea aceptado, pero si funciona, notará que a pesar de renombrar el recurso, el servicio de SSAS no va a iniciar, pero solo debe esperar a que los cambios en el servidor viejo sean propagados dentro de la red)
3. Si por alguna razón el servicio de SQL Server no inicia en alguno de los cluster, inicielo manualmente forzando la configuración mínima (http://msdn.microsoft.com/en-us/library/ms180965.aspx)

Cómo instalar webpart en Sharepoint MOSS 2007

Octubre 7, 2008

Una vez que ya tiene generado el archivo del webpart siga las siguientes instrucciones para registrar el web part en sharepoint

1. Copiar el archivo webpart.wsp en algun directorio del servidor por ejemplo c:\

2. Abrir una consola de command prompt y cambiarse al siguiente directorio

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN>

3. Una vez en ese directorio ejecutar el commando

stsadm -o addwppack -force -filename c:\webpart.wsp

4. Despues vaya al Start->Administrative Tools->.NET 2.0 Framework Configuration

clip_image002

5. Se despliega la siguiente ventana

clip_image004

6. Expanda My Computer y haga botón derecho sobre el RunTime Security Policy y elija la opción Trust an Asembly

clip_image006

7. Elija la opción make changes to this computer y haga click en Next

clip_image008

8. Haga click en Browse y busque el webpart que desea registrar en este caso WepPart.dll que se encuentra por default en C:\Inetpub\wwwroot\wss\VirtualDirectories\80\bin\WebPartCumpleanos.dll

clip_image010

clip_image012

9. Una vez seleccionado el archivo haga click en Next

clip_image014

10. En la siguiente pantalla seleccione next

clip_image016

11. Mueve el slider Hacia Full Trust tal y como se muestra en la siguiente pantalla y haga clic en next

clip_image018

12. Haga click en Finish

clip_image020

13. Por último cierre la consola de configuración del NET Framework 2.0

Seguridad de TI y Seguridad Perimetral

Octubre 7, 2008

Hola amig@s:

Les comparto un documento publicado por el gobierno de USA, acerca de los conocimientos esenciales  en seguridad de las tecnologías de la información. No considera la ISO 27002, pero trata 14  áreas de conocimiento y las actividades (tomando en cuenta roles) a realizar para la gestión, diseño, implantación y evaluación de las mismas. Link: http://www.us-cert.gov/ITSecurityEBK/EBK2007.pdf

Este otro preparado por IBM, es parte de sus RedPapers y trata acerca de la seguridad perimetral. No es sumamente profundo, pero sí muy práctico. Link: http://www.redbooks.ibm.com/redpieces/pdfs/redp4397.pdf

Saludos!!

Problemas Timeout en acceso a tempdb en SQL Server 2005

Octubre 6, 2008

Hola como están !, bueno les cuento un problema que tuvimos con la base TempDB.

Escenario:

Software de base

Windows 2003 Standard Edition SP2
MS SQL Server 2005 SP2
TempDB 5 GB de Data y 1 GB de Log

Hardware

5 GB free space en HDD.
1.5 GB de RAM.
Intel Pentium III 1.3 GHZ Procesador.

Síntomas:

Inconvenientes en las aplicaciónes para ejecución de procesos temporales, por ejemplo: ordenar datos de indices en tempdb, generación explícita de objetos en tempdb, etc.
Al tratar de posicionarse sobre tempdb, es decir, USE tempdb; cancelaba por timeout.

Acciones tomadas:

Se chequeo errorlog de SQL Server y se detecto timeout para acceder a paginas de datos sobre la base tempdb.
Se procedio a realizar un chequeo de la base DBCC CHECKDB y el resultado fue correcto (“CHECKDB found 0 allocation errors and 0 consistency errors in database ‘tempdb’.”)
Se realizo un chequeo de consistencia a alto nivel de los hdd, los cuales no arrojaron errores.
Luego en una session donde pudimos acceder sobre tempdb ejecutamos un DBCC SHRINKFILE (tempdev, 500); el resultado fue que achico el archivo a 500 MB, luego se probo accediendo desde una consulta a tempdb y todo funciono correctamente.
Pero…al bootear el SQL Server la base tempdb volvio a ocupar los 5 GB que tenía asignado y volvieron a suceder los problemas descriptos anteriormente y nunca mas pudimos acceder a tempdb.
Tuvimos que levantar el SQL Server 2005 en “Single User Mode”, para poder acceder y ejecutar la sentencia:
“USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE
(NAME = tempdev,
SIZE = 500MB);
GO

“USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE
(NAME = templog,
SIZE = 100MB);
GO

Mas tarde se booteo el SQL Server 2005 y se accedio sin inconvenientes y hasta el momento no tuvimos problemas.
Se mando a realizar un chequeo de los discos o HDD a bajo nivel por el sector especializado y detectaron unos inconvenientes que fueron reparados. Igualmente luego les contare si tuvimos o no problemas al alcanzar o superar los 5GB sobre estos discos.