viernes, 22 de junio de 2012

Centos 5 y 6 ManagementPack para Scom 2012

Vamos a ver como crear un Management Pack de Centos 5 y Centos 6 para System Center Operations Manager 2012.
Ha cambiado algunas cosillas desde el 2007 R2 y pretendo ahorraros los quebraderos de cabeza que he estado pasando hasta dar con la solucion a cada problema que iba saliendo, hasta tenerlo fino fino.
Por cierto, esto por supuesto que no esta soportado por microsoft, pero funciona bastante bien.
Primero que nada desde la consola del SCOM instalamos los MP de Red Hat 5, 6 y el Operating System Library, para ello en la pestaña de Administracion le damos al boton derecho sobre ManagementPacks y le damos a "Import Management Pack"


Nos saldra un recuadro, pinchamos en "add" y seleccionamos la opcion "add from disk..."



y seleccionamos la carpeta de ManagementPacks del CD de Scom 2012, ya que ahora mismo estan mas actualizados los managementspack de RedHat en el CD que online, no coments xD

Tenemos que escoger los siguientes ManagementsPacks:
  • Red Hat Operating System Libary
  • Red Hat Enterprise Linux Server 5 Operating System
  • Red Hat Enterprise Linux Server 6 Operating System


Ahora le damos a "install" y ya tendremos el primer paso.

Una vez los tenemos instalados pasaremos a la fase 2, tenemos que exportar los MP a XML para poder modificarlos, aqui es donde viene el cambio desde el 2007 R2 (o al menos no sabia que se pudiera hacer antes asi)
Primero que nada creamos una carpeta en c: llamada MP o como vosotros querais, luego para exportar los MP tenemos que ejecutar el siguiente comando en PowerShell del SCOM:

get-SCOMManagementPack -Name Microsoft.Linux.RedHat.Library | Export-SCOMManagementPack -Path c:\mp

Una vez hecho esto, veremos en nuestro directorio el fichero del MP ya en XML, repetimos esto con cada uno de los otros MP y nos quedara el directorio con todos los XML dentro.


Ahora renombramos los ficheros y donde pone RedHat y RHEL lo sustituimos por centos.
Tenemos que modificar los siguientes textos en el archivo de Libreria y en los archivos del MP especifico de Centos 5 y Centos 6:


Texto Original
Text Reemplazado
Library XML file
CentOS.5 XML file
RHELCentOSX
x86i386X
x64x86_64X
RedHatCentOSXX
Red HatCentOSXX
Enterprise Linux ServerLinuxXX


Una vez realizados estos cambios "genericos" vamos ya a los cambios especificos que tendremos que realizar en cada fichero.
En Microsoft.Linux.centos.Library.xml tenemos que buscar "Monitoring --> Discoveries --> Discovery con el ID “Microsoft.Linux.CentOS.Computer.Discovery”. y cambiamos los parametros de FilterProperty y FilterValue por estos:

<FilterProperty> //*[local-name()="Caption"] FilterProperty>
<FilterValue> CentOS FilterValue>

Luego en el mismo fichero tenemos que modificar la siguiente cadena,
Texto Original:

<DataSource ID="DS" TypeID="Unix!Microsoft.Unix.WSMan.TimedEnumerate.Filtered.Equal.DiscoveryData">

Texto Modificado:

<DataSource ID="DS" TypeID="Unix!Microsoft.Unix.WSMan.TimedEnumerate.Filtered.ContainSubstring.DiscoveryData">

Como podeis observer unicamente cambiamos "Equal" por "ContainSubstring" para evitar que busque la cadena exacta y asi nos coja todas las CentOS.

Ahora vamos al fichero Microsoft.Linux.centos.6.xml y buscamos la siguientes cadenas:

/DataItem/WsManData/*[local-name(.)='SCX_OperatingSystem']/*[local-name(.)='Caption']
CentOS Linux release 6

y la sustituimos por esta:

//*[local-name()="Caption"]
CentOS release 6

En el fichero Microsoft.Linux.centos.5.xml tenemos que hacer exactamente lo mismo solo que en vez de release 6 sera release 5.

Una vez tenemos todo esto procederemos al "sellado" del MP, para ello tenemos que generar una "key file" con el comando sn.exe que lo podeis encontrar en el .Net Framework 2.0 SDK.
Una vez lo tenemos ejecutamos sn.exe -k key.snk y nos generara el fichero con la Key para poder sellar el MP.



Ahora vamos a sellar el MP con esta Key que hemos generado, para ello necesitamos la herramienta "mpseal.exe" que esta en el directorio "SUPPORTTOOLS\AMD64" del DVD de instalacion, la copiamos a nuestra carpeta c:\mp y desde ahi "operamos", tenemos que ejecutar el siguiente comando, la unidad D: es el DVD de instalacion del SCOM 2012

mpseal Microsoft.Linux.centos.Library.xml /i D:\MANAGEMENTPACKS /Keyfile key.snk /Company "Microsoft"


Ahora ya tenemos generado el fichero "Microsoft.Linux.CentOS.Library.mp", solo nos falta sacar de este fichero el public key token para sustituirlo en los MP particulares que hacen referencia a esta libreria.
Para esto utilizaremos otra vez el comand sn.exe:


 Ahora con el Public key token editamos el Microsoft.Linux.centos.6.xml y buscamos la siguiente cadena:

        Microsoft.Linux.CentOS.Library
        7.3.2026.0
        31bf3856ad364e35

Sustituimos el PublickeyToken que vemos ahi por el que nos ha devuelto el comando sn.exe

Con esto ya tenemos el MP de la Libreria y los XML de Centos 5 y 6.

Ahora solo tenemos que importarlas desde la consola del SCOM:


Ya tenemos los MP importados en nuestro SCOM 2012, ahora nos falta "crear" el agente para Centos, para ello vamos a la carpeta donde estan todos los agentes de Linux (C:\Program Files\System Center 2012\Operations Manager\Server\AgentManagement\UnixAgents) y copiamos el de redhat "scx-1.3.0-206.rhel.6.x64.rpm" y lo llamamos "scx-1.3.0-206.centos.6.x86_64.rpm" esto para 64 bits, para 32 copiamos el "scx-1.3.0-206.rhel.6.x86.rpm" y lo llamamos "scx-1.3.0-206.centos.6.i386.rpm"
Para que nos coja los cambios rapidamente reiniciamos los servicios "System Center Management" y "System Center Management Configuration"

Con esto ya estamos preparados para empezar a agregar nuestras Centos Favoritas!

Primero que nada en la Centos tenemos que instalar el paquete redhat-lsb que es una dependencia del agente del SCOM 2012, una vez con esto instalado nos vamos a la consola de administracion, Discovery Rules boton derecho "Discovery Wizard" y seleccionamos "Linux Computers"


En la siguiente ventana que nos aparece le damos a "add" y ahi tenemos que poner todos los datos del servidor, IP o DNS y un usuario que tenga permisos por SSH.
MUCHO OJO CON LAS CONTRASEÑAS, DURANTE LA ELABORACION DE ESTE TUTORIAL DETECTE UN BUG, SI TIENES ALGUNO DE ESTOS CARACTERES $%& EN LA CONTRASEÑA TE DA UN ERROR DESCONOCIDO Y TE PUEDES VOLVER LOCO, ME COSTO BASTANTE DARME CUENTA DE QUE ERA LA CONTRASEÑA...


Ahora le damos a save y en la siguiente pantalla que nos aparece seleccionamos "All management servers resource pool" en "select target resource pool" y le damos a "Discover"



Si no pasa nada "raro", como fallo con la resolucion DNS o cualquier otra cosa parecida nos deberia salir que ha descubierto el equipo y que lo seleccionemos para instalar el agente y "manejarlo"



Si nos da algun problema con la firma del certificado, podemos consultar aqui para solucionarlo:
Una vez acabe el proceso nos dira "success" y ya lo tenemos listo, la primera fase....



Ahora nos vamos a "unix/linux" computers y ahi nos aparecera nuestro linux, no os asusteis si todavia no pone "Centos" es normal, lleva su tiempo y aun tenemos que hacer unas "cosillas" xD



Ahora tenemos que desplegar las RunAs accounts, esto se podria haber hecho antes pero bueno...
Empezamos creando un nuevo "Resource Pool" y le vamos a llamar "Linux Monitoring Pool"


Ahora vamos a "Administration" y en la pestaña de "unix/linux Computers" con el boton derecho seleccionamos "Change Resource Pool" y elegimos el nuevo que hemos creado.



Ahora nos vamos a "Unix/linux Account" dentro de "Run as configuration" y creamos una "Monitoring account", ponemos la descripcion y luego le decimos el usuario root y que no utilize elevacion de privilegios.


Vale ya tenemos la cuenta creada, ahora hay que asociarla a los perfiles, seleccionamos la opcion de "profiles" que esta justo encima y en el campo de buscar ponemos "Linux" los 3 que aparecen hay que pinchar doble click sobre ellos y asociarle la run as account que hemos creado antes al equipo linux que corresponda.


una vez hecho esto, solo hay que esperar un rato y nos aparecera nuestra queria Centos en el panel "Administration" en la pestaña de "unix/linux Computeres" donde antes nos aparecia "Unknown"
Con esto y un bizcocho ya teneis vuestra Centos Monitorizada con SCOM 2012.

He colgado en CodePlex el Management Pack de Centos 5 y 6 que me cree, ya que no encontre ninguno por ahi https://scxmpcentos56.codeplex.com/

UPDATE: Al final tuve que crear un MP para la CentOS 6.0 ya que el "caption" es diferente a la 6.X y no lo detectaba el discovery, tambien esta subido en codeplex.

Gracias a Omar Lopez esto ha sido posible ya que el ha sido mi guia espiritual de SCOM 2012 xD

Os dejo algunos links que me han sido muy utiles:


Espero que os sea de utilidad!!!!

Un saludo



lunes, 20 de febrero de 2012

VPN de TMG 2010 a Cisco ios

Forefront TMG 2010 soporta multiples protocolos para establecer VPNs SITE-TO-SITE incluidos PPTP, L2TP, e IPSEC.
Para establecer una VPN con Cisco IOS, ASA o PIX el unico soportado es IPSEC.
Aqui vamos a ver como realizar una conexion SITE-TO-SITE entre un Firewall TMG 2010 y un Router Cisco. 

El escenario seria el siguiente:

Configurando el TMG 2010 Firewall

Abrimos la consola de administracion de TMG 2010 y seleccionamos "Directiva de acceso Remoto VPN", una vez ahi seleccionamos la pestaña de "Sitios Remotos" y en el panel de tareas seleccionamos "Crear conexion VPN de sitio a sitio"


Nos aparecera un Wizzard donde nos pide una serie de datos para configurar la VPN, primero que nada le tenemos que poner una descripcion.



En el siguiente paso seleccionamos "Modo de tunel del protocolo de seguridad IP (IPSEC)"


En el siguiente paso nos pide la direccion ip publica del ASA remoto y la ip publica del TMG local.


Para VPN punto a punto la mejor solucion es utilizar certificados pero dado que es mucho mas complejo muchos administradores optan por una clave compartida (pre-shared keys), elegir una clave que sea lo suficientemente segura, que contenta numeros y letras, podeis recurrir a algun generador de contraseñas.


Hay que añadir el rango de direcciones del sitio remoto, en nuestro caso 192.168.2.0


Hay que crear una regla de enrutamiento para la redes internas que queremos que vean desde el sitio remoto. El wizard por defecto te crea esta regla automaticamente.


Ahora necesitamos una regla del firewall para permitir la comunicacion entre ambas sedes.
Si es un sitio de confianza seleccionaremos todo el trafico saliente, si no es de confianza podemos selecionar que puertos queremos abrir.


Revisar la configuracion y darle a finalizar



No apliqueis la configuracion todavia. La configuracion por defecto de encriptacion seleccionados por TMG son incompatibles con Cisco IOS/ASA/PIX
Para cambiarlos, tenemos que darle a boton derecho en el nuevo sitio que nos ha creado y darle a propiedades, seleccionamos la pestaña "Conexion" y luego en "Configuracion de IPsec"


Para la Fase I hay que cambiar el Algoritmo de cifrado a "3DES", el algoritmo de integridad a "SHA1" y Autenticar y generar una clave nueva cada "86400" segundos.


Para la Fase II hay que cambiar el Algoritmo de cifrado a "3DES", el Algoritmo de integridad a "SHA1" y en configuracion de claves de sesion, generar nueva clave cada "4608000 KB" o 228800 segundos.



Una vez completado esto le damos a aceptar y aplicamos los cambios en la consola del TMG 2010.

Configurando Cisco IOS 12.4.X

Nos conectamos al Router como adminitrador y entramos en el modo de configuracion.
Para configurar los parametros de la Fase I, establecer una politica de ISAKMP y fijar los parametros para usar una pre-shared key, usaremos 3des/sha para la integridad de la encriptacion, especificaremos el uso de Diffie-Hellman Group 2 (1024-bit). Por defecto ya tiene Autenticar y generar una nueva clave cada 86400 segundos, en caso de que pongamos el comando "lifetime 86400" cuando hagamos un "sh run" no nos aparecera reflejado en la configuracion.

----------------------------------------------------------------------------------
crypto isakmp policy 11
 encr 3des
 authentication pre-share
 group 2
----------------------------------------------------------------------------------

Ahora configuramos la pre-shared key y el destino del tunel

----------------------------------------------------------------------------------
crypto isakmp key A3das34rfnporfmefmun!$ address 90.202.51.100
----------------------------------------------------------------------------------

Ahora configuramos el "transform" del Ipsec que sera combinado posteriormente con el resto de la politica de Ipsec con el comando crypto-map. En este caso "TMG2010" es simplemente un nombre que luego nos servira para asociarlo a un crypto-map.

----------------------------------------------------------------------------------
crypto ipsec transform-set TMG2010 esp-3des esp-sha-hmac
----------------------------------------------------------------------------------

Ahora crearemos el crypto-map, donde lo relacionaremos con el Transoform-set, el destino del tunerl y le pondremos el nombre "CENTRAL" que utilizaremos luego para activarlo en la interfaz Wan del router.

----------------------------------------------------------------------------------
crypto map CENTRAL 11 ipsec-isakmp
 set peer 90.161.68.12
 set transform-set TMG2010
 set pfs group2
 match address 120
----------------------------------------------------------------------------------

Ahora creamos la access-list 120 que es la que pusimos en el crypto-map y nos indica que todo el trafico desde la red 192.168.2.0/24 y con destino a la red 192.168.0.0/24 lo enviara a traves del tunel.

----------------------------------------------------------------------------------
access-list 120 permit ip 192.168.2.0 0.0.0.255 192.168.0.0 0.0.0.255
----------------------------------------------------------------------------------
En nuestro caso tenemos la salida a internet con NAT, asi que crearemos un route-map para evitar que nos intente natear lo que va hacia la VPN de la siguiente manera:

----------------------------------------------------------------------------------
route-map nonat permit 10
 match ip address 100
----------------------------------------------------------------------------------

Ahora creamos la access-list 100 en la cual denegamos el trafico que va hacia la red 192.168.0.0/24 que es el otro extremo de la VPN y el resto lo permitimos

----------------------------------------------------------------------------------
access-list 100 deny   ip 192.168.2.0 0.0.0.255 192.168.0.0 0.0.0.255
access-list 100 permit ip 192.168.2.0 0.0.0.255 any
----------------------------------------------------------------------------------

Una vez realizado esto, lo aplicamos sobre nuestra interfaz WAN

----------------------------------------------------------------------------------
ip nat inside source route-map nonat interface FastEthernet0/0 overload
----------------------------------------------------------------------------------

Ahora ya podemos aplicar el crypto-map a la interfaz wan

----------------------------------------------------------------------------------
interface FastEthernet0/0
 ip address dhcp
 ip nat outside
 ip virtual-reassembly
 duplex auto
 speed auto
 crypto map CENTRAL
----------------------------------------------------------------------------------

Ahora con un simple ping a una ip del otro extremo de la VPN deberia levantarnos el tunel sin problemas, podeis ver si el tunel se ha levantado o no con el comando "sh crypto isakmp sa"

Si ocurriese algun problema en la negociacion del tunel, podeis debugearlo con el comando "debug crypto isakmp"

Espero que os haya servido de ayuda!