Como hemos visto en este artículo:

Proteger a las Bases de Datos visibles en Internet

Internet es muy inseguro y siempre existe la posibilidad de que algún hacker esté metiendo sus narices donde no debe y es nuestra responsabilidad evitar que curiosee en la Base de Datos o peor aún, que la corrompa.

Si un hacker irrumpió en la Base de Datos la culpa es toda tuya por no haberla protegido debidamente.

Un programa que nos puede ayudar con la tarea de protección es Zebedee.

¿Qué hace Zebedee?

  • Crea un túnel entre dos computadoras
  • Envía y recibe datos comprimidos y encriptados a través de ese túnel

Al comprimir los datos, el tamaño de éstos disminuye, al encriptarlos evita (o disminuye muchísimo) la posibilidad de que alguien pueda ver lo que se está enviando.

Por lo tanto se consiguen dos cosas:

  1. que los datos viajen más seguros
  2. que la transferencia se realice más rápido.

¿Cómo funciona Zebedee?

En forma muy similar a como funciona Firebird, o sea a través de un Servidor y de uno o varios Clientes.

  • En una computadora se instala el Servidor del Zebedee. Su tarea es “escuchar” las conexiones de los Clientes. En otras palabras, está atento para responder las peticiones de los Clientes. Cuando un Cliente le hace una petición el Servidor comprime y encripta los datos pedidos y luego se los envía al Cliente
  • En las demás computadoras se instala el Cliente del Zebedee. Su tarea es pedirle al Servidor del Zebedee que le envíe datos. Cuando recibe esos datos los descomprime, los desencripta, y los envía  a quien se los había pedido (el Cliente de Firebird).

El Cliente de Firebird —> a través del Cliente de Zebedee —> a través del Servidor de Zebedee —> le solicita algo al Servidor de Firebird

El Servidor de Firebird —> a través del Servidor de Zebedee —> a través del Cliente de Zebedee —> le responde al Cliente de Firebird

¿Dónde se instala el Servidor de Zebedee?

En cualquier computadora, no necesariamente en la misma donde está instalado el Servidor del Firebird

¿Dónde se instala el Cliente del Zebedee?

En cualquier computadora, no necesariamente en una que tenga instalado un Cliente del Firebird

¿Cómo se realiza la conexión?

A través de un puerto, el cual normalmente es el 11.965 y es el único puerto que debería estar libre para conectarse a Internet. Todos los demás puertos, incluyendo lógicamente el 3.050 (o el que use el Servidor del Firebird), deben estar bloqueados.

¿Cómo se abre un puerto?

El firewall del Windows (o cualquier otro firewall que estés usando) normalmente tiene bloqueados a los puertos. Desde luego que es obligatorio que uses un firewall, esa es una elemental medida de seguridad en cualquier computadora que esté conectada a Internet.

Para abrir el puerto 11.965 con el firewall de Windows:

Inicio | Panel de Control | Firewall de Windows | Configuración avanzada | Reglas de entrada | Nueva regla… | Puerto | TCP | Puertos locales específicos | 11965 | Permitir la conexión | (Dominio, Privado, Público) | Zebedee11965

Zebedee5

Captura 1. Si haces clic en la imagen la verás más grande

Zebedee6

Captura 2. Si haces clic en la imagen la verás más grande

Zebedee7

Captura 3. Si haces clic en la imagen la verás más grande

Conexión no segura

En el Gráfico 1 puedes ver lo que sucede si el Servidor del Firebird está conectado a Internet sin usar a Zebedee (o algún programa similar)

Zebedee2

Gráfico 1. Si haces clic en la imagen la verás más grande

Conexiones seguras

En el Gráfico 2 puedes ver algunas de las configuraciones de protección posibles:

Zebedee1

Gráfico 2. Si haces clic en la imagen la verás más grande

El problema con la Opción 1 es que ambos Servidores están en la misma computadora. Y para que Firebird (o cualquier otro SGBDR) funcione al 100% lo recomendable es que se encuentre en una computadora dedicada, en una computadora donde está el Servidor del Firebird y ningún otro programa de uso autónomo, ni siquiera antivirus. Desde luego que la Opción 1 funcionará bien, pero de ser posible deberías elegir la Opción 3. Si usas la Opción 1 una medida elemental de precaución es que bloquees con tu firewall el puerto 3.050 (o el que sea que esté usando el Firebird) para evitar conexiones directas. Si no bloqueas el puerto 3.050 es como si no hubieras instalado el Zebedee, al menos en cuanto a seguridad se refiere.

La Opción 2 es la única que se puede usar si el usuario se conecta a través de su notebook (también llamada laptop) por ejemplo mientras está viajando.

La Opción 3 es posible (y preferible) dentro de la red local de la empresa. Se usa una computadora para tener en ella el Servidor del Firebird, cualquier otra computadora para el Servidor del Zebedee, cualquier otra computadora para el Cliente del Zebedee y todos los Clientes del Firebird se conectan al Servidor del Firebird a través primero del Cliente de Zebedee y luego del Servidor de Zebedee. La gran ventaja de la Opción 3 es que el Cliente del Zebedee se instala en una sola computadora y entonces no será necesario que cada vez que la empresa adquiera una nueva computadora se tenga que instalar en ella el Cliente del Zebedee. Las empresas medianas y grandes constantemente están aquiriendo nuevas computadoras y si se debe instalar en cada nueva computadora adquirida el Cliente del Zebedee eso causará un trastorno innecesario ya que puede ser evitado.

¿De dónde se puede descargar Zebedee?

http://www.winton.org.uk/zebedee/download.html

http://www.mediafire.com/download/3o4p0fs6eaxbqtb/Zebedee253setup.exe

Configurando a Zebedee

Zebedee debe ser configurado, sí o sí. No es un programa que se instala y ya funciona. Se lo puede configurar a través de la línea de comandos o a través de un archivo de configuración. Yo prefiero usar un archivo de configuración porque me da mucho más poder, pero en este artículo mostraré solamente como se usa con la línea de comandos. Puedes leer la documentación de Zebedee para saber como usar un archivo de configuración.

Opción 1. El Servidor del Firebird y el Servidor de Zebedee están en la misma computadora

En la computadora que quieres que actúe como Servidor de Zebedee debes escribir:

Zebedee8

Captura 4. Si haces clic en la imagen la verás más grande

En el comando ZEBEDEE -s localhost:3050 la opción -s significa que Zebedee se está ejecutando como Servidor, localhost:3050 significa que estará escuchando al puerto 3.050. En otras palabras, que todo lo que envíe a través de ese puerto lo hará en forma comprimida y encriptada.

En las computadoras Cliente de Zebedee debes escribir:

Zebedee9

Captura 5. Si haces clic en la imagen la verás más grande

El comando de arriba significa: “Zebedee, todo lo que leas a través del puerto 3.051 debes enviarlo al puerto 3.050 de la computadora que tiene el IP 99.999.999.99” (por supuesto que debes reemplazar los números 99.999.999.99 por los que correspondan a la IP de la computadora donde se encuentra el Servidor del Zebedee).

Para conectarte a una Base de Datos de Firebird debes escribir:

Zebedee10

Captura 6. Si haces clic en la imagen la verás más grande

Con lo cual estás diciendo que quieres conectarte a través del puerto local 3051 a esa Base de Datos. Pero como ya habíamos visto todo lo que se envía al puerto local 3.051 se reenvía al puerto remoto 3.050, usando para ello al puerto remoto 11.965.

Local 3.051 —> remoto 11.965 —> remoto 3.050

Opción 2 y Opción 3. El Servidor del Firebird y el Servidor de Zebedee están computadoras distintas

Zebedee11

Captura 7. Si haces clic en la imagen la verás más grande

Aquí lo que se le dice es: “Zebedee, utiliza el puerto local 3.050 para comunicarte con la computadora cuya IP es 192.168.0.2 a través del puerto 3.050 de esa computadora”. Desde luego que la computadora remota podría estar usando otro puerto, no necesariamente el 3.050.

El comando en el Cliente de Zebedee es el mismo que vimos en la Captura 5.

La conexión a una Base de Datos es igual a como vimos en la Captura 6.

Conclusión:

Si necesitas que tu Base de Datos pueda ser accedida desde Internet entonces es obligatorio que uses Zebedee (o algún programa similar) para protegerla de intrusos. Internet es muy insegura y los hackers siempre están a la pesca de computadoras o bases de datos desprotegidas y aunque creas que no tienes algo valioso que les pueda interesar podrían destruir tu Base de Datos sólo por maldad y porque quieren y pueden hacerlo. Y de paso, para enseñarte una lección relacionada con la seguridad.

Si usas Zebedee entonces el único puerto abierto, el único puerto que puede ser usado para conectarse a Internet debe ser el 11.965 y todos los demás puertos (incluyendo por supuesto el 3.050 ó el que use el Servidor del Firebird), deben estar bloqueados.

Artículos relacionados:

Usando Zebedee con Firebird. Parte 2

Ejemplos del uso de Zebedee con Firebird

Proteger a las bases de datos visibles en Internet

Conexión a través de Internet

El índice del blog Firebird21

El foro del blog Firebird21

Enlaces:

http://www.winton.org.uk/zebedee/

http://www.intitec.com/varios/firebird_zebedee_esp.pdf