¿Qué es un cortafuegos? Un cortafuegos es un sistema que proporciona seguridad de red mediante el filtrado del tráfico entrante y saliente basado en un conjunto de reglas definidas por el usuario. En general, el propósito de un cortafuegos es reducir o eliminar la aparición de las comunicaciones de red no deseadas al tiempo que permite que todas las comunicaciones legítimas fluyan libremente. En la mayoría de las infraestructuras de servidores, los cortafuegos proporcionan una capa de seguridad que, en combinación con otras medidas, puede evitar que los atacantes tengan acceso a sus servidores de manera maliciosa.
Los paquetes de red TCP
Antes de ver los diferentes tipos de cortafuegos, vamos a echar un vistazo rápido a lo que es TCP (Transport Control Protocol)
El tráfico de red TCP se mueve por la red en paquetes. Estos paquetes son contenedores que consisten en una cabecera (que contiene información de control tal como las direcciones de origen y de destino, y la información de secuencia de paquete) y los datos (también conocido como carga útil). La información de control de cada paquete ayuda a asegurar que los datos asociados se entregan correctamente. Pero además, los elementos que contiene, también proporcionan al cortafuegos una variedad de maneras para contrastar los paquetes con las reglas del cortafuegos.
Es importante tener en cuenta que la recepción correcta de los paquetes TCP entrantes requiere que el receptor envíe paquetes de confirmación al remitente. La combinación de la información de control en los paquetes entrantes y salientes se puede utilizar para determinar el estado de la conexión (nueva, establecida, relacionada) entre el emisor y el receptor.
Tipos de cortafuegos
Veamos brevemente los tres tipos básicos de cortafuegos de red: cortafuegos de capa de red o de filtrado de paquetes, cortafuegos de estado y cortafuegos de capa de aplicación.
- ¿Qué es un cortafuegos de filtrado de paquetes?: también llamado sin estado o de capa de red. Es un cortafuegos que funciona mediante la inspección de paquetes individuales de forma aislada. De esta forma, estos cortafuegos no son conscientes del estado de la conexión y sólo pueden permitir o denegar los paquetes basándose en las cabeceras de los paquetes individuales.
- ¿Qué es un cortafuegos de estado?: estos cortafuegos sí son capaces de determinar el estado de conexión de los paquetes. Esto les hace mucho más flexibles que los cortafuegos de filtrado de paquetes. Funcionan recopilando paquetes relacionados hasta que puede ser determinado el estado de la conexión. Tras esto ya se les puede aplicar las reglas del cortafuegos al tráfico.
- ¿Qué es un cortafuegos de aplicación?: estos van un paso más allá mediante el análisis de los datos que se transmiten. Esto permite que el tráfico de red se pueda comparar con reglas del cortafuegos específicos para servicios o aplicaciones individuales. Son también conocidos como cortafuegos basados en proxy.
Además del software de cortafuegos, disponible en todos los sistemas operativos modernos, la funcionalidad de cortafuegos también puede ser proporcionada por los dispositivos de hardware, tales como routers o firewalls físicos.
Reglas del cortafuegos
Como hemos mencionado anteriormente, el tráfico de red que atraviesa un cortafuegos se compara con las reglas del cortafuegos para determinar si ese tráfico se debe permitir o no.
La primera palabra de una regla de cortafuegos es “Accept”, “Reject” o “Drop”. Esto especifica la acción que el cortafuegos debe hacer en el caso de que un paquete de tráfico de la red coincida con una regla. Accept significa permitir que el tráfico pase. Reject indica que hay que bloquear el tráfico, pero respondiendo con un error de “inalcanzable”, y Drop indica bloquear el tráfico y no enviar ninguna respuesta. El resto de la regla contiene la condición con la que cada paquete se compara.
Como resultado de todo esto, el tráfico de red se compara con una lista de reglas de firewall mediante una secuencia o cadena, desde la primera a la última. Más específicamente, una vez que una regla hace matching con el tráfico, se aplica la acción asociada a ese tráfico en cuestión.
Directiva predeterminada
Es típico de una cadena de reglas de cortafuegos no cubrir explícitamente todas las condiciones posibles. Por esta razón, las reglas de cortafuegos siempre deben tener una directiva especificada por defecto, que consiste en una sóla acción (accept, reject o drop).
Tráfico entrante y saliente
Debido a que el tráfico de red, desde la perspectiva de un servidor, puede ser tanto de entrada como de salida, un cortafuegos debe mantener un conjunto distinto de reglas para cualquiera de los casos. El tráfico que se origina en otro lugar, que es tráfico de entrada, es tratado de manera diferente que el tráfico de salida que envía nuestro servidor. Es típico para un servidor permitir la mayor parte del tráfico de salida dado que el servidor es por lo general, para sí mismo, digno de confianza. Aún así, el conjunto de reglas de salida se puede utilizar para evitar comunicación no deseada en el caso de que un servidor se vea comprometido por un atacante o un archivo malicioso.
Para maximizar los beneficios de seguridad de un cortafuegos, debes identificar todas las maneras en que quieres que otros sistemas puedan interactuar con tu servidor, crear reglas que permitan esas formas de interactuar, y a continuación, permitir el resto del tráfico. Ten en cuenta que las reglas salientes deben permitir al servidor enviar los diferentes acuses de recibo de las conexiones entrantes correctas. También debes permitir otras tareas típicas de un servidor que provocan tráfico saliente por diversas razones, por ejemplo, la descarga de actualizaciones o la conexión a una base de datos remota. Incluye todos estos casos en política de tráfico saliente.
Conclusión
Ahora ya sabemos qué es un cortafuegos y seguramente también entendemos cómo funciona un cortafuegos. Solo te queda implementarlo para comenzar a mejorar la seguridad de los servidores de tu empresa.
Pero aunque hemos hablado sobre todo de cortafuegos de software, debes saber que no es una mala idea utilizar tanto un cortafuegos de software como uno de hardware adicional. No sólo van a no interferir entre sí, sino que van a proporcionar diferentes capas de protección que pueden mantener tu red segura.