En informática, un cortafuegos con estado es un cortafuegos basado en red que rastrea individualmente las sesiones de conexiones de red que lo atraviesan. La inspección de paquetes con estado , también conocida como filtrado dinámico de paquetes, [1] es una función de seguridad que se utiliza a menudo en redes comerciales y no comerciales.
Un firewall con estado realiza un seguimiento del estado de las conexiones de red, como flujos TCP , datagramas UDP y mensajes ICMP , y puede aplicar etiquetas como LISTEN , ESTABLISHED o CLOSING . [2] Las entradas de la tabla de estado se crean para flujos TCP o datagramas UDP que pueden comunicarse a través del firewall de acuerdo con la política de seguridad configurada. Una vez en la tabla, todos los paquetes RELATED de una sesión almacenada se optimizan, lo que requiere menos ciclos de CPU que la inspección estándar. También se permite que los paquetes relacionados regresen a través del firewall incluso si no se configura ninguna regla para permitir las comunicaciones desde ese host. Si no se ve tráfico durante un tiempo específico (depende de la implementación del tiempo de espera), la conexión se elimina de la tabla de estado. Esto puede provocar que las aplicaciones experimenten desconexiones inesperadas o conexiones TCP medio abiertas . Las aplicaciones se pueden escribir para enviar mensajes de mantenimiento de conexión [3] periódicamente para evitar que un firewall pierda la conexión durante períodos de inactividad o para aplicaciones que, por diseño, tienen largos períodos de silencio.
El método para mantener el estado de una sesión depende del protocolo de transporte que se utilice. TCP es un protocolo orientado a la conexión [4] y las sesiones se establecen con un protocolo de enlace de tres vías mediante paquetes SYN y finalizan enviando una notificación FIN . [5] El cortafuegos puede utilizar estos identificadores de conexión únicos para saber cuándo eliminar una sesión de la tabla de estado sin esperar a que se agote el tiempo de espera. UDP es un protocolo sin conexión [4], lo que significa que no envía identificadores únicos relacionados con la conexión mientras se comunica. Debido a eso, una sesión solo se eliminará de la tabla de estado después del tiempo de espera configurado. La perforación de agujeros UDP es una tecnología que aprovecha esta característica para permitir la configuración dinámica de túneles de datos a través de Internet. [6] Los mensajes ICMP son distintos de TCP y UDP y comunican información de control de la propia red. Un ejemplo bien conocido de esto es la utilidad ping . [7] Las respuestas ICMP se permitirán de vuelta a través del cortafuegos. En algunos escenarios, la comunicación UDP puede usar ICMP para proporcionar información sobre el estado de la sesión, de modo que las respuestas ICMP relacionadas con una sesión UDP también podrán transmitirse.