O iptables inclui um módulo que permite aos administradores inspecionar e restringir conexões a serviços disponíveis numa rede interna, usando um método chamado registro de conexão (connection tracking). O registro de conexão armazena as conexões numa tabela, que permite aos administradores permitir ou negar acesso baseado nos seguintes estados de conexão:
NEW (nova) — Um pacote requisitando uma nova conexão, como um pedido HTTP.
ESTABLISHED (estabelecida) — Um pacote que é parte de uma conexão existente.
RELATED (relacionado) — Um pacote solicitando uma nova conexão, mas que é parte de uma conexão existente, como conexões FTP passivas, nas quais a porta de conexão é 20, mas a porta de transferência pode ser qualquer uma (de 1024 para cima) não usada.
INVALID (inválido) — Um pacote que não faz parte de nenhuma das conexões da tabela de registro das conexões.
Você pode usar a funcionalidade de estado do registro de conexões do iptables com qualquer protocolo de rede, mesmo que o próprio protocolo seja sem estado/'stateless' (como o UDP). O exemplo a seguir mostra uma regra que usa o registro de conexão para encaminhar somente os pacotes associados a uma conexão estabelecida:
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ALLOW |