miércoles, 20 de noviembre de 2013

Script para traducir reglas en migración StoneGate a Checkpoint

"Se adjunta una script que puede ser utilizado como punto de partida para la traducción de reglas de firewall y NAT en las migraciones Stonegate a Checkpoint utilizando los ficheros XML y dbedit respectivamente"


Adjunto un Script que he hecho para traducir los ficheros XML exportados por los Stonegate a comandos dbedit para importarlos en Checkpoint (probado con R75), ya que en alguna migración de este tipo puede ahorrar gran parte del trabajo.

Lo hice en Shell de Linux porque, en principio solo iba a traducir objetos host, pero luego fui añadiendo cosas y más cosas… Al final, ya que no está muy bien programado que digamos, hace que el script tarde algo de tiempo en migrar ficheros XML de gran tamaño.

Aconsejo correrlo bajo un Linux de verdad, incluso máquina virtual, no desde Cygwin, ya que el tiempo de ejecución en ese entorno es insufrible.

Cosas que SI que hace

Migra objetos Host (si detecta que tiene IPs secundarias generará un grupo en el que incluirá todos los componentes host, uno por cada IP secundaria)
Migra objetos Routers (incluso con IPs secundarias)
Migra objetos  Networks
Migra objetos Address-range
Migra grupos de objetos
Migra servicios TCP
Migra servicios UDP
Migra grupos de servicios
Migra Headers de las reglas de firewall
Migra reglas de Firewall (las migra en un policy package llamado igual que el nombre del conjunto de políticas en Stonegate, no en el Standard )
Migra reglas de NAT (con la restricción que se incluye más abajo), incluso si en Stonegate tienen varios orígenes, destinos o servicios en una misma regla (lo detecta y genera grupos nuevos para ello)
Crea objetos que pueden ser de ayuda en la configuración de Anti-spoofing
Genera un fichero con los campos que encuentra y no migra
Indica en número de objetos migrados

Cosas que hace a medias

Añade un comentario en la configuración de dbedit si se utilizan elementos Alias en la configuración del Stonegate (para que puedan ser fácilmente localizados y cambiados a mano más tarde)
Corrige los nombres de los objetos de Stonegate para que cumplan los (exigentes) resquisitos de nombramiento de Checkpoint. Solo corrige los problemas que he he ido encontrado… no hace que se cumplan todas las reglas, por lo que se más que probable que si se utiliza el script se tenga que retocar esta parte
Se crean los servicios tcp, udp y rpc, así como los gurpos de estos que existen por defecto en Stonegate y no en Checkpoint. Sucede lo mismo que en el anterior punto, solo lo hace para los que he ido encontrado.
Se  hace un match de los servicios por defecto que existen en Stonegate y que también existen por defecto en Checkpoint pero que se nombran diferente. Al igual que las anteriores, solo para los que me he encontrado en mi migración.
Migra conjuntos de reglas subrule. En ese caso inserta las reglas subrule a partir de la regla que lo lanza y, en caso de que las reglas de subrule tengan ANY inserta el campo del “padre”, pero cuidado!, porque si el Stonegate está mal configurado (en las subrules se tienen objetos menos específicos que en la regla padre que lo lanza) se pueden estar abriendo más IPs de las pretendidas!!! (esto hay que revisarlo una a una)


Cosas que NO hace

No tiene en cuenta el port-forwarding con cambio de puerto de las reglas NAT
No configura las  deep-inspections de los servicios
No genera objetos gateway Checkpoint, por lo que las referencias a los servidores de gestión o gateways de la configuración de Stonegate se tienen que migrar a mano (o poner los mismos nombres de cluster y servidor de gestión en Checkpoint y haber creado antes dichos objetos  )
No migra los campos “expression”, ya que en Checkpoint estos no existen. Es importante que este trabajo se haga a mano antes de la importación
No tiene en cuenta las traslaciones de puerto en los NAT
No coloca los grupos por dependencias, es decir, si un grupo incluye otro grupo puede que durante la ejeción del dbedit salte un error de que xx componente no existe.
No modifica parámetros generales de la configuración de checkpoint
No genera rutas de enrutamiento ni nada de configuración de SO (ya que se limita a comandos dbedit)
No consolida los servicios que ya existen por defecto en los Checkpoint con los que ha creado el usuario en Stonegate, por lo que tras la migración se deberá hacer este trabajo manualmente (o mejor, haciendo una prueba y cambiando el txt del dbedit antes de meterlo en el SmartCenter). De no hacerse saldrán Warnings en la instalación de las políticas (otro modo de quitarlos es desmarcar Match fo “Any” en alguno de ellos)
Migrar configuración del Cluster (claro!! ), ni VPNs, ni…. bueno lo que no está puesto en lo que si hace

* NOTA1 : EL script dbedit que genera, en alguna ocasión contiene una linea adicional (en blanco) al final de fichero que, si no es borrada, dará un error a la hora de la importación

* NOTA2 : Solo lo he probado con dos configuraciones así que puede que si existe algún tipo raro de regla de firewall o de NAT falle la migración. Si se da ese caso…. el script no está bajo soporte…. :)