viernes, 23 de enero de 2009

IPSec entra en "Block Mode" en un Windows 2003 Server

ace unos días tuve que actualizar un servidor con Windows 2003 Server 64bit. En principio lo que era una tarea fácil se convirtió en toda un odisea cortesía de de Microsoft.

Empezó todo normal, entrada a Windows Update y descarga de parches. Una vez aplicados reinicio el servidor y ¡Oh! ¡Sorpresa!El servidor ha perdido toda conectividad de red.

Mmmmm... ¿El cable de red está suelto? No. La luz de "link" está encendida. Al arrancar el servidor me da la bienvenida con un mensaje de "Algún servicio ha fallado en el arranque, consulte el visor de sucesos blah, blah, blah"

Abro el "Visor de sucesos" y encuentro en el apartado de seguridad:

"The IPSec driver has entered Block mode. IPSec will discard all inbound and outbound TCP/IP network traffic that is not permitted by boot-time IPSec Policy exemptions".

Es decir que el servicio IPSec al fallar bloquea todo el tráfico IP. Bueno, la primera idea fue deshabilitar el servicio, la consecuencia de esto es que el servidor vuelve a tener conectividad IP pero la resolución de nombres no funciona. Es decir, si hay un servidor de correo puede recibir pero no enviar (al no poder resolver nombres).

Investigando un poco (desde otro PC claro) encuentro en el blog oficial del equipo de Microsoft donde describe que esto sucede a veces al aplicar el MS08-037 con los parches 951746 y 951748. Estos corrigen una vulnerabilidad del sistema de DNS . En el mismo post indican la solución de modificar una clave del registro añadiendo una excepción en unos puertos, concretamente en HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ReservedPorts:

  • 1645-1646 - Usado por IAS
  • 1701-1701 - Usado por L2TP
  • 1812-1813 - Usado por IAS
  • 2883-2883 - Usado por AUTD
  • 4500-4500 - Usado por IPSEC

Dicho y hecho, reinicio...

El tema se resiste, el tema de los puertos no surge efecto alguno, el IPSec sigue sin iniciarse y bloqueando todo el tráfico. Buscando más hay recomendaciones de quitar la actualización para conseguir que el IPSec vuelva. Pues nada, en el Panel de Control, "Agregar y quitar programas" (marcada la casilla de mostrar actualizaciones) y desinstalo. Reinicio...

Pues nada, a seguir buscando... Finalmente encuentro que la solución última es reinstalar el protocolo TCP/IP. La guía oficial la podéis encontrar aquí. Antes de hacer estos pasos, mejor apuntarse en un fichero de texto la configuración (IP, máscara, DNS...). Resumiendo un poco consiste en:

  1. Eliminar HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock y HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2
  2. En el archivo Nettcpip.inf localizado en %winroot%\inf modificar el valor de Characteristics reemplazando 0xa0 con 0x80, está bajo [MS_TCPIP.PrimaryInstall].
  3. En Conexiones de red, hacer clic con el botón secundario del ratón en Conexión de área local y seleccionar Propiedades.
  4. En la ficha General, hacer clic en Instalar, seleccionar Protocolo y hacer clic en Agregar.
  5. En la ventana Seleccionar el protocolo de red, hacer clic en Utilizar disco
  6. En el cuadro Copiar archivos del fabricante de , escribir c:\windows\inf y Aceptar.
  7. Seleccionamos Protocolo Internet (TCP/IP) y Aceptar. Este paso nos lleva a la pantalla Propiedades de conexión de área local, pero ahora el botón Desinstalar está disponible y podemos quitarlo.
  8. Reiniciamos el servidor en Modo de restauración de servicios de directorio
  9. Volvemos a las propiedades de la conexión de área local, en General, hacemos clic en Instalar, seleccionamos Protocolo->Agregar.
  10. En la ventana Seleccionar el protocolo de red, hacemos clic en Utilizar disco
  11. En el cuadro de texto Copiar archivos del fabricante de, escribimos "c:\windows\inf", Aceptar.
  12. Seleccionar Protocolo Internet (TCP/IP)->Aceptar.

Una vez reinstalado el TCP/IP reiniciamos y tendremos que volver a poner la IP, etc... Todo vuelve a la normalidad.

Total 3 horas para no hacer nada (el servidor sigue sin estar "parcheado a tope"), dejando usuarios sin servicio, etc... [IRONIC]No puedo describir lo contento que estoy con Microsoft y este parche ;)[/IRONIC]

No hay comentarios: