viernes, diciembre 29, 2006

Conversores de configuraciones de firewalls (La historia de Object Filler)

Comencé a programar Object Filler casi por accidente en 2003. En aquel tiempo, como parte de mis actividades de ingeniería de pre-venta de Check Point, tres clientes de manera casi simultánea me pidieron migrar la configuración de sus equipos Cisco PIX a Check Point como parte de las pruebas que querían realizar (en producción, claro está) a la solución de firewall que en ese momento estaban por adquirir. Dado que en las 3 ocasiones el "experto" presente era yo, me tocó hace las migraciones a mí.

¡Qué dolor de dedos y qué dolor de cabeza!: Extraer las configuraciones, analizarlas, pasarlas a mano, probarlas y aplicarlas. Las primeras dos veces soporté mi calvario con la dignidad de un ingeniero resignado a su suerte. La tercera vez pensé que habría una manera de hacerlo mejor y mas rápido. Busqué en Internet (Google, Yahoo!, Webcrawler, Altavista - un Metacrawler manual pues) y nada. Pregunté entre otros colegas en Check Point y al parecer nadie a nivel mundial había tenido la idea de esa herramienta. Bueno, para ser justos, la gente de una compañía Solsoft había tenido la idea, pero era en gran escala y muy cara para cosas puntuales como lo que yo necesitaba. Así las cosas, y teniendo un pasado bastante obscuro como abogado del Software Libre y programador aficionado, pensé en hacer algo yo mismo.

Comencé primero programando un "secuenciador" de objetos: producir objetos (redes y hosts originalmente) de forma secuencial en un rango de direcciones IP definido. Elegí Lenguaje C para hacerlo mas bien por nostalgia. Y como producía solamente objetos en secuencia de "relleno", decidí llamarla "Object Filler". Inicialmente codifiqué las rutinas para probar si un texto era una IP, y dada una máscara de red decidir si pertenecía a un host, a una red o a un broadcast. Después fui añadiendo cosas. Justo ahora no recuerdo el orden exacto de cómo fue, pero comencé a añadir soporte a otros tipos de objeto (rangos, gateways), soporte alimentar la herramienta desde un archivo con formato predefinido (hosts, Comma Separated Values o CSV) hasta que finalmente dí el paso que me había motivado a escribir el código inicial: soportar como entrada al programa una configuración de Cisco PIX. De paso, ya que andaba en esas, decidí meter soporte a configuraciones de Netscreen.

Fiel a mis principios de que el conocimiento debe propagarse, decidí desde el inicio que la herramienta sería gratuita y estaría públicamente disponible. Desafortunadamente, mi contrato como empleado de Check Point dice que las creaciones que tenga mientas trabaje para Check Point, son de Check Point. Así pues, muy a mi pesar, no pude liberar el código al público. Sin embargo, al ser una herramienta no producida por Investigación y Desarrollo, no podía ser oficialmente soportada por la compañía. Pero en realidad, como era un juguete personal en ese momento, esto no me importaba. Quería que la herramienta fuera útil para mí y no tenía problema en compartirla con gente que también la encontrara útil. Punto.

Inicialmente no tenía dónde colgar (publicar) la herramienta, así que comencé por mandarla a gente conocida, colegas cercanos que creí la encontrarían útil. Así llegó a manos de Jeff Mousseau, en ese tiempo un ingeniero para Nokia en Canadá, a quien conocí por azares del destino mientras hacíamos un trabajo juntos. A Jeff le gustó la herramienta y me pidió autorización para colgarla en su sitio web http://www.digitalmigrations.com - en ese tiempo (por ahí de 2003/2004) muy famoso porque contenía documentos muy útiles de configuración de clusters de Nokia paso-a-paso y otras monerías bastante aprovechables por ingenieros de Check Point y de Nokia. Me sentí muy honrado por su petición y por supuesto accedí. Un par de años mas tarde, a raíz de que Jeff decide salir de Nokia, decide cerrar el sitio, lo cual dejó a la comunidad de seguridad en general sin un excelente sitio de información bastante útil. Y a mi herramienta la dejó sin casa.

Para ese entonces, y gracias a la popularidad del sitio, la herramienta era ya mas conocida y comenzaba a recibir uno que otro mensaje de correo electrónico agradeciéndome por la herramienta, haciendo consultas y también sugerencias. Así es que decidí crear Object Dumper, para poder vaciar la configuración de objetos a un formato CSV, mas fácil de leer y manipular.

Internamente, en ese entonces tenía un "padrino" de altas esferas en la compañía, quien me ayudó a obtener mucha información que de otro modo me hubiera sido muy difícil obtener por mi mismo. Gracias a Sharon Besser, pude conseguir comandos, estructuras de bases de datos y otras informaciones muy útiles.

Al quedar la herramienta sin casa, decidí buscarle alguna. Un ingeniero de Check Point Estados Unidos (Brian Linder) ofreció gentilmente un espacio en su sitio web para hospedar ahí a Object Filler - http://www.lindercentral.com/ofiller - también escribí (a sugerencia de algunos ingenieros de Check Point) a Dameon Welch-Abernathy, mejor conocido como PhoneBoy; quien era el propietario del popular www.phoneboy.com y hospedaba ahí la lista de preguntas frecuentes (FAQ) mas admirada, respetada y confiada de la comunidad Check Point. Dameon no dudó en decir que sí a mi solicitud de hospedar ahí las herramientas, y así quedó.

El tiempo avanza, pongo mas funcionalidad a las herramientas soportando nuevas operaciones, nuevos objetos y mejorando la documentación existente. La popularidad de las herramientas crece y no hay quien me ofrezca apoyo para pedir a Check Point que se de soporte oficial a las herramientas, inclusive de ingenieros dentro de la compañía, pero eso no puede suceder por varios motivos. Hay quien me sugiere hacerla shareware y cobrar por ella, pero aparte de que legalmente no podía por ser la compañía la propietaria legal de la herramienta, y no yo; pues no era posible. Tampoco quería: era una manera para mí de satisfacer mis ímpetus por crear algo y darle rienda a la creatividad en mis tiempos muertos o aburridos. Hay quien me escribe para solicitarme nueva funcionalidad, y cuando hay disponibilidad de la persona en cooperar para hacer pruebas y proporcionar información, yo encantado añado la funcionalidad a la herramienta. me escribe así gente de varios lados, enviándome muestras de configuración de otros firewalls para apoyarlos a convertir a Check Point. Así nace el soporte para Gauntlet, Sidewinder y Raptor. Así nace también la funcionalidad de añadir interfaces a varios tipos de objeto.

Phoneboy decide sacar su sitio del aire y moverlo al sitio del Grupo de Usuarios de Check Point (http://www.cpug.org) al cuidado de Barry Stiefel, lo cual me hace igual solicitarle permiso para seguir colgando las herramientas ahora de ese sitio, cosa a la que Barry igual accede. Pedro Paixao (mi amigo y Gerente de Ingeniería para Latinoamérica de Check Point, y por tanto mi jefe) me ofrece hospedar la herramienta igual en un sitio ex-profeso para la herramienta por sí, lo cual me gusta y acepto la propuesta. Así surge http://ofiller.chatscope.com y por primera vez la versión 2.2 de las herramientas, lanzada en Diciembre de 2005, pone a este sitio como el sitio principal para ellas.

El día de hoy, hace unos momentos solamente, he terminado de empaquetar la versión 2.4 de Object Filler y Object Dumper. Al día de hoy son la única herramienta que puede convertir de otros firewalls (de Cisco PIX a Check Point convierte políticas y objetos) a Check Point. Que permite descargar de SmartCenters y CMAs de Provider-1 configuraciones completas de objetos y reglas a texto, y reconstruirlas en el mismo u otro SmartCenter o CMA. La única que puede recuperar información de objetos de un gateway, para recobrar el SmartCenter en casos donde éste se ha dañado. Al tiempo, Cisco sacó a mediados de 2006 una herramienta llamada Cisco Security Conversion Tool (CSCT) para migrar de Check Point a Cisco, que es gratuita para sus socios certificados y no es tan completa (los release notes indican que hay varias cosas sin cubrir, como el caso de configuraciones complejas de NAT).Hay otra herramienta gratuita para migrar de Check Point a Juniper (http://www.sousa.se/pub/fw1_convert/) pero es compleja de usar y no es completa. De hecho, de acuerdo a un artículo de Network World de mayo de 2006, nadie tiene herramientas verdaderas para hacer esto y al parecer Solsoft es la única solución viable. Pero cara.

En fin, pocos competidores para mi herramienta, que por el precio que tiene (gratis) y la funcionalidad que tiene, me parece que es un producto ganador (como dirían los gringos, un Killer App). Nada mal ¿eh? - ¡Lástima que llegó muy tarde para mi proyecto de Plan Emprendedor en la Universidad! :-P

sábado, diciembre 23, 2006

El último viaje del año

Anoche (hoy poco después de media noche en realidad) llegué a casa del último viaje de trabajo del año. Un viaje a Culiacán, Sinaloa (en el pacífico mexicano) a realizar una demostración de un producto "High-End" de Check Point (VSX). Un viaje significativo porque fué el número 55 de este año acuerdo a los pases de abordar que alcancé a guardar (puesto que comencé a "coleccionarlos" por ahí de febrero/marzo y aun así me faltan varios), porque fué el último del año, y porque fué el último visto desde muchas otras ópticas. Memorable ya que or culpa de un retardo (para variar) en vuelos, no pude llegar a una posada a la que quería ir. Pero lo bueno fué que me la perdonaron :-)

Fué un viaje bastante bueno desde el punto de vista de trabajo. Las cosas salieron (casi) de acuerdo a planes. Hubo chance de ir a comer maricos sinaloenses casi del diario (recomendados los restaurantes "El Farallón" y "Cocos Hawaii", para quien visite Culiacán), y disfrutar de un clima bastante benévolo para quien no está usado a los calores.

Se siente raro, porque cierra el año y estoy cerrando una etapa en mi vida personal y profesional también. El año que viene será muy diferente en muchos sentidos. En estos momentos que escribo siento emociones encontradas, justo a punto de irme a pasar navidad a Naranjos. Pero tenía ganas de sacar esto por ahora. Ya después comentaré por qué las emociones encontradas.

¡Feliz navidad! y un venturoso 2007 lleno de éxitos, armonía, paz pero sobre todo del cariño de la gente que les importa a ustedes (de sus seres queridos).

lunes, diciembre 18, 2006

La carrera 10K nocturna

Fué la primera vez que corría por la noche. Desde la última carrera (que fué mi primera) tenía la "espinita" de correr una vez mas. Fué en la carrera de 10Km nocturna a la que me invitaron y a la que decidí asistir. Varios colegas igual la corrieron por invitación (entre ellos, Manuel, Isra, y Roberto). Es increíble ver cómo esto del deporte es contagioso, como casi todo lo que se puede hacer en grupo y cualquier otra actitud humana. "Dime con quién andas, y te diré quién eres" :-)

Tenía pensado bajar mis tiempos, y tenía en mente 55 minutos. Pero no lo logré. Resulta que no contemplé el hecho que el circuito tenía varias pendientes, algunas de ellas francamente pesaditas, que pues costaron mucho trabajo remotar. Al final del día conseguí hacer 2 minutos menos que la última vez (oficialmente mi tiempo chip fué de 1:08:25, contra los 1:10:10 de tiempo chip que hice en la carrera de Nike 10K en Noviembre)- aunque todavía muy distante de notar entre los mejores sitios... - una vez mas, la idea era terminar, y eso para mí ya era ganancia...

Fué emocionante sin embargo correr por la noche. Eso le confirió al ambiente una sensación diferente y a pesar de las subidas (que hubieran sido mas pesadas con calir) me sorprendió ver que los ganadores hicieron menos tiempo que los ganadores de la 10K de Nike. Fué emocionante salir del Estadio Olímpico Universitario de CU. Ver a la gente ahí y durante todo el recorrido echando porras y animando a que se continuara. Fué emocionante al llegar ver a tanta gente concentrada, solo por el simple hecho de hacer deporte, cualquiera que sea la motivación detrás (competir, verse mejor, sentirse mas saludable, compartir con los amigos y/o la familia).

Me gustó mucho llegar a la meta esta vez, porque la sensación de que estás llegando es mayor cuando tienes que hacer el recorrido en la semi-circunferencia del estadio (que fué también el punto de llegada). Ver el reloj, saber que puedes mejorar aunque sea un segundo si aprietas un poquito mas el paso. Y después de haber llegado, encontrarte con los amigos. A todos los ví sonrientes, satisfechos de haber llegado y transpirando esa extraña sensación de deber cumplido, aunque haya sido solo una carrera. Mal sin embargo, que el hecho de que yo haya olvidado el el paquete de corredor de Roberto (que me pidió de favor recoger por él) y que no haya tenido chance de medir sus tiempos. Mea culpa. Pero bueno... ¡Puedo jurar que llegó! ¡Yo lo vi! :-)

Al final, el Gatorade, la naranja y el plátano, el agua. Y las medallas. Le ofrecí la mía a Roberto como compensación por mi olvido, pero no la quiso. Ok. La guardo yo y queda como una medalla de ambos. Ya son dos, y quiera Dios que sean muchas más - porque debo confesar (una vez mas) que ahora que ya comencé en esto, me estoy haciendo adicto...

domingo, diciembre 10, 2006

Mi reecuentro con Dios


Así como hay veces que las cosas parecen medias grises y los proyectos a veces no salen como uno quisiera, hay veces que las cosas simplemente salen mejor de lo que uno esperaba, el sol parece con mas brillo.

Así fué para mi en esta semana. A pesar de haber sido una semana de intenso trabajo, dado que salí a Colombia en un casi inesperado viaje donde estuve trabajando casi todos los días períodos de mas de 12 horas; las cosas salieron mejor de lo que pensaba en muchos de los sentidos: tuve la oportunidad de estar cerca de dos seres buenos seres humanos y profesionales excelentes, a quienes a partir de ahora tengo la fortuna de llamar amigos. También tuve la oportunidad de ir a un restaurante mexicano en Bogotá (no recuerdo bien el nombre, pero creo que era "La Taquería") con Viviana, amiga mía bogotana (en realidad de Barichara, pero radicada en Bogotá) que quería saber si la comida mexicana vendida allá era legítima o no. :-) - lo que puedo decir que se parece mucho (salvo las salsas por obvias razones) y definitivamente nada que ver con Taco Bell :-)

Tener la oportunidad de pasear un ratito por el parque de la 93, ver los adornos navideños que quedaron tan bonitos, la alegría contagiosa de toda la gente esperando navidad (espero que por los motivos correctos, de esperar la celebración del nacimiento del hijo de Dios) es algo que llena el corazón. Aunque uno no lo quiera, se pone alegre. Y hace a uno disfrutar del momento.

Aunque no pude ver los últimos cuatro partidos del campeonato de futbol mexicano, tuve la oportunidad de llegar a ver los últimos 10 minutos del partido de vuelta donde se definía el título del campeonato; y en donde mis adoradas Chivas Rayadas del Guadalajara estaban frente a los Diablos Rojos de Toluca, equipo bastante fuerte. Y llegué solo para ver a mi equipo quedar campeón del Futbol Mexicano. ¡Arriba las Chivas!

Sobre todo, tuve la oportunidad de ir a misa. Eso no fué lo especial, porque trato de ir cada ocho días a cumplir con mis deberes de católico, pero mas que eso porque me nace tener por lo menos ese tiempito para platicar de cerquita con Dios. Pedir por mis amigos, por mi familia y en general por la gente que mas quiero. Lo especial fué que decidí tomar el sacramento de la absolución y luego el sacramento de la Eucaristía. ¡Se siente tan bien! - Hacía literalmente años que no lo hacía, por... pues porque andaba mal... y porque las normas son algo estrictas para cuando uno no sigue al pie de la letra las cosas, pero me siento muy bien por haberlo hecho.

Todo esto que viví me hizo sentir como si de pronto, hubiera regresado a ser yo mismo.

Doy gracias a Dios, a mis amigos, a mi familia, a la vida... por haber vivido una semana como estas. :-)