Considere, ainda, o exemplo anterior. Imagine agora liberar o tráfego com destino à porta 143 TCP do servidor. Nesse caso, não basta apenas trocar a palavra DESCARTAR por ACEITAR. Em uma conexão TCP, temos uma série de pacotes, indo e voltando do servidor. Temos de verificar se o pacote se refere ao início de uma conexão, a uma resposta do servidor ou a uma conexão já estabelecida. Dessa forma, pode-se alterar o exemplo, que conterá as seguintes regras para permitir todos os três pacotes referentes ao three way handshake do protocolo TCP:
- Aceitar se IP_OR IGEM=192.168.1.1, IP_DESTINO=192.168.1.2, PORTA_ORIGEM >= 1024, PORTA_DESTINO = 143 e flag SYN ligada (início da conexão);
- Aceitar se IP_ORIGEM=192.168.1.2, IP_DESTINO=192.168.1.1, PORTA_ORIGEM = 143, PORTA_DESTINO >= 1024 e flags SYN e ACK ligadas (retorno do servidor);
- Aceitar se IP_ORIGEM=192.168.1.1, IP_DESTINO=192.168.1.2, PORTA_ORIGEM >= 1024, PORTA_DESTINO = 143 e flag ACK ligada.
A partir desse exemplo percebe-se que, em um ambiente mais complexo, a quantidade de regras aumentará bastante, tornando o ambiente complicado para gerenciar. Do ponto de vista do administrador de segurança, ele apenas quer decidir se vai permitir ou bloquear uma determinada conexão.
Para resolver essa questão, foram criados os filtros de pacotes dinâmicos, também chamados de stateful inspection, stateful firewall ou Stateful Packet Inspection (SPI). Nesse caso, o próprio filtro de pacotes mantém informações sobre o estado das conexões e permite automaticamente todos os pacotes relacionados, de modo que o administrador necessita apenas especificar a regra do primeiro pacote e indicar que os pacotes relacionados serão automaticamente aceitos.
Alguns filtros de pacotes dinâmicos tratam ainda de protocolos de aplicação, cuja conexão é mais complexa, como, por exemplo, FTP (File Transfer Protocol, que é um protocolo de transferência de arquivos na Internet) e H.323 (protocolo de transmissão de vídeo e de áudio na Internet), cuja liberação por meio dos filtros de pacotes comuns se tornaria complicada e provavelmente iria aceitar muito mais pacotes do que o necessário, por conta do comportamento dinâmico desses protocolos.
Recentemente, alguns fabricantes têm anunciado firewalls UTM (Unified Threat Manager), que são firewalls com diversos recursos integrados, também chamados de firewalls all-in-one (tudo em um). Esses produtos normalmente integram uma série de recursos, como antivírus, anti-spam, VPN, filtros de conteúdo e balanceamento de carga, entre outros.