TEMA 14. Configuración de un Firewall. |
14.1 ConfiguraciÓn de un Firewall. Una red nunca es segura; bajo esta premisa, si poseemos una red (o incluso si tenemos una única máquina conectada a Internet), debemos tomar todas las precauciones a nuestro alcance para impedir que los paquetes con código malicioso o no deseado circulen por ella. Un cortafuegos o “firewall” es un dispositivo que filtra el tráfico entre dos o más redes; puede ser un dispositivo físico o un software que se ejecuta en un sistema operativo. Su funcionamiento se basa en una serie de reglas de filtrado, de manera que si se cumple una determinada regla se ejecute una determinada acción (por lo general aceptar el paquete o rechazarlo). En Linux existe un cortafuegos incluido en todos los núcleos de la serie 2.4, denominado “netfilter”; la herramienta para manejarlo se denomina “iptables”, que es la que se utiliza para utilizar las reglas de filtrado. Todos los paquetes que pasen por nuestro Linux (ya sean creados internamente o provengan del exterior) serán comprobados por el cortafuegos (si está activado, evidentemente). Las acciones que puede tomar con los paquetes que pasan por él son DROP (descartar el paquete, con lo que éste desaparece) o ACCEPT (dejarle pasar y permitirle alcanzar el destino). Hay que tener en cuenta que este filtrado de paquetes se realiza antes del control de acceso que ya hemos visto y para todos los paquetes de red(no sólo los servicios ejecutados a través de inetd con los archivos hosts.allow y hosts.deny), por lo que es una herramienta con una potencia y eficacia mayor al constituir la primera línea de defensa. Otra utilidad del cortafuegos es que realiza operaciones de “ip_masqueranding” o enmascaramiento IP, que es una técnica que permite la navegación a toda una red local con una única conexión a Internet sin necesidad de utilizar un servidor proxy; es una de las posibilidades que nos ofrece el sistema NAT (Network Address Translation, o Traducción de Direcciones de Red. Configurar las reglas de un cortafuegos correctamente no es una tarea fácil, ya que requiere de amplios y profundos conocimientos del funcionamiento de la familia de protocolos TCP/IP. Además estas reglas desaparecen al reiniciar la máquina, lo que obliga a tener que volver a introducirlas de nuevo; la solución para esto es escribir todas las reglas en un archivo y hacer que se ejecute en el arranque (a modo de servicio). Afortunadamente tenemos una herramienta gráfica que hará nuestro trabajo más fácil; se trata de la “Configuración cortafuegos” en el menú Aplicaciones -> Herramientas del Sistema; esta herramienta se llama “lokkit” y se encarga de configurar las “iptables” sin tener que escribir ni una línea en la consola, tan sólo hay que responder una serie de preguntas. El programa está en castellano, así que es fácil realizar el proceso si tienes las ideas claras de cómo quieres configurar tu red o tu ordenador. Observa que en la primera pantalla te advierte que “No es un diseñador de cortafuegos para expertos”; esto no debe confundirte y hacerte creer que no es útil, sino que un experto preferirá introducir las reglas a mano; de todas formas verás que se pueden modificar las reglas configuradas por “lokkit” posteriormente.
La primera pregunta es la más difícil: hay que decidir si queremos una seguridad alta o baja (o no utilizar ninguna, pero ésta no es recomendable). La baja es recomendable en la mayoría de los casos ya que bloqueará la mayoría de los servicios y te permitirá utilizar muchas aplicaciones de Internet, mientras que la alta bloquea todos los accesos (tanto entrantes como salientes) salvo los que le especifiquemos; ésta es recomendable si piensas utilizar tu máquina como servidor de cara a Internet (si éste es tu caso deberías plantearte introducir las reglas a mano). Selecciona entonces la “Seguridad Baja”; lo primero que te pregunta es si las interfaces de red encontradas son fiables o no, es decir, si pertenecen a la red local (que se supone libre de problemas) o a una conexión de Internet. Sigue el consejo de la pantalla y para la conexión a Internet selecciona que no; para el resto depende de si quieres filtrarles el acceso a través de tu máquina o permitirles el paso. En la siguiente debes responder si tu máquina configura su dirección IP de forma dinámica, para que puedas comunicarte con el servidor y obtenerla (porque si la bloqueas no podrás utilizar la interfaz); la mayoría (no todos) de los proveedores de Internet proporcionan IPs dinámicas mediante DHCP, así que para la conexión a Internet responde que sí. Ahora vas a tener que decidir si se podrá acceder a tu máquina desde el exterior, para seleccionar los servicios uno a uno. Ten en cuenta que hay servicios que puede ser buena idea permitirles acceso para usarlos tú mismo, así que lo más sensato es responder que sí. Seguidamente “lokkit” va a reconocer los servicios de que dispones en tu máquina y te va a preguntar uno por uno si quieres permitir el acceso o no desde el exterior (desde tu propia red siempre podrás acceder a ellos). Por ejemplo puedes activar el servidor Web (si lo tienes configurado y listo para funcionar) y el ssh, pero no actives ni el SMTP ni el telnet. La última pantalla advierte que debes tener cuidado, porque si activas el cortafuegos y estás accediendo de forma remota a tu máquina te puedes quedar sin acceso inmediato a ella; se supone que estás sentado delante del ordenador del que estás configurando el cortafuegos, así que pulsa “Terminar” para que se activen las reglas de filtrado y comenzar a utilizar el cortafuegos. Otra de las ventajas de utilizar “lokkit”, a parte de lo fácil que ha sido hacerlo de forma gráfica, es que almacena las reglas en el archivo /etc/default/lokkit, para que estén disponibles en el caso de que el servicio “lokkit” sea ejecutado al iniciar la máquina; para el caso que hemos realizado aquí, puedes ver en la imagen las órdenes necesarias para crear las reglas.
Aquí puedes ver la complejidad de la que hablaba antes; además el orden en el que se introducen las reglas es importante, y de cambiarlas podría hacer que algún paquete se “colara” en nuestro sistema. Hay quien dice que la configuración de un cortafuegos es un “arte” reservado a unos pocos privilegiados; de cualquier forma, para la mayoría de la gente no suele ser necesaria una configuración tan exhaustiva. Para activar el “ip-masqueranding” desgraciadamente debemos hacerlo a mano, aunque se pueden añadir las reglas al archivo /etc/default/lokkit (ten en cuenta que si ejecutar la herramienta de configuración deberás introducirlas de nuevo). En este caso además de crear un par de reglas debemos habilitar el reenvío de paquetes, lo que se realiza escribiendo un “uno” en el archivo apropiado (que puedes ver en la imagen); si este archivo no existe, es necesario recompilar el núcleo y activar la opción “ip_forwarding”. Las dos reglas que necesitamos sirven la primera para enmascarar todos los paquetes y los encamine hacia la interfaz ppp0, mientras que la segunda sirve para aceptar los paquetes que vengan de la interfaz eth0 para que puedan ser reenviarlos.
He supuesto que te conectas a Internet a través de un módem (ya sea módem convencional, ADSL o módem cable) que utiliza la interfaz ppp0 para acceder a Internet, y además tienes una tarjeta de red (eth0) para acceder a una red local. De esta forma todos los paquetes que lleguen a la máquina con este cortafuegos serán encaminados a través de Internet pero con la IP del cortafuegos, de manera que de cara al exterior no se tiene conocimiento de la red local; cuando los paquetes se reciben como respuesta a alguna petición, el sistema los reenvía a su destinatario. |
Copyright - © ANFORA, 2004. Todos los derechos reservados. Condiciones Legales.