Como a filtragem de pacotes funciona

Esta seção descreve a implementação da filtragem de pacotes nesta versão do BorderManager. Leia toda esta seção. Ela contém as seguintes subseções:


Filtragem estática de pacotes

Os sistemas de filtragem estática de pacotes, como aquele usado em versões anteriores do BorderManager, examinam cada pacote que atravessa a fronteira entre a rede privada (intranet) e a rede pública (Internet). Os filtros estáticos de pacotes analisam o campo de cabeçalho de cada pacote para identificar um conjunto de características:

Essas características determinam se o pacote precisa ser reencaminhado de acordo com conjuntos fixos de regras externas e internas. Cada conjunto de filtros trata do tráfego que chega ao firewall através de uma interface específica. Os números de portas, que costumam ser mencionados como "números de portas reconhecidos", são usados para filtrar o tráfego. As conexões para vários serviços, como e-mail, FTP, Telnet e assim por diante, são negadas pela filtragem dos pacotes que tentam usar um número de porta ou serviço específico.

Os firewalls que se baseiam na filtragem estática de pacotes são dispositivos da camada de Rede que não podem processar informações de camadas superiores. Eles não podem verificar pedidos do aplicativo nem podem controlar informações sobre o estado do aplicativo. Um firewall de filtragem estática de pacotes não pode determinar, simplesmente examinando o cabeçalho de um pacote que chega, se o pacote é o primeiro pacote de um cliente externo para um servidor interno ou uma resposta de um servidor externo para um cliente externo. O nível de proteção fornecido por esse tipo de firewall é limitado.


Recursos avançados

Nesta versão do BorderManager, são introduzidos três recursos avançados de filtragem de pacotes IP para aprimorar a segurança de firewall:


Filtragem de bits ACK do TCP

O TCP é um protocolo de transporte confiável orientado a conexão. Uma conexão é sempre iniciada usando o "handshake tridirecional" reconhecido, como é mostrado a seguir:

Pacote 1: Cliente -> ServerFlag: SYN(O cliente deseja iniciar uma conexão ou sincronização.)

Pacote 2: Servidor -> ClientFlags: SYN, ACK(ACK: O pedido de conexão do cliente [SYN] está sendo confirmado.)

Pacote 3: Cliente -> ServerFlag: ACK(ACK: O pedido de conexão do servidor [SYN] está sendo confirmado.)

Quando a filtragem de bits ACK do TCP está habilitada, apenas a passagem dos pacotes de resposta (pacotes com o conjunto de bits ACK do TCP) é autorizada. Isso evita que todas as tentativas de conexão sejam iniciadas através dessa regra de filtro. A filtragem de bits ACK do TCP costuma ser aplicada para todos os filtros internos do TCP, visando evitar que hosts externos iniciem conexões do TCP para hosts internos. No entanto, essa opção nunca precisa ser usada sob as circunstâncias a seguir:


Filtragem dinâmica de pacotes

A filtragem dinâmica de pacotes, da forma como está implementada no BorderManager, foi projetada para superar as limitações da filtragem estática de pacotes. A filtragem dinâmica controla os pacotes que saem e que foram autorizados a passar, e permite que apenas os pacotes de resposta correspondentes retornem. Quando o primeiro pacote é transmitido para a rede pública (Internet), é criado dinamicamente um filtro inverso para permitir que o pacote de resposta retorne. Para ser considerado uma resposta, o pacote de entrada precisa ser enviado pelo host e pela porta para os quais o pacote de saída foi enviado.

A filtragem dinâmica de pacotes suporta protocolos orientados e não orientados a conexão (TCP, UDP, ICMP, etc.). Ela monitora cada conexão e cria uma exceção de filtro interno temporária (com limite de tempo) para a conexão. Isso permite que você bloqueie o tráfego que chega originado de determinado endereço e número de porta e, ao mesmo tempo, permite o tráfego de retorno do mesmo endereço e número de porta. O filtro inverso é criado através da extração das seguintes informações sobre o pacote:

Essas informações são armazenadas em uma tabela, que é comparada com a resposta. Se uma mensagem que chega não for uma resposta ao pedido original, ela será descartada. Esse filtro criado dinamicamente é usado para determinar as transferências de pacotes subseqüentes até a conexão ser terminada.

Para protocolos orientados a conexão, como o TCP, o filtro de entrada (inverso) é criado somente quando o primeiro pacote de saída é detectado. A filtragem de bits ACK do TCP é habilitada automaticamente no filtro inverso para evitar que quaisquer tentativas de conexão feitas por intrusos sejam iniciadas através desse filtro.

Para o ICMP, apenas as mensagens ICMP de resposta são permitidas. Todos os pedidos e mensagens de redirecionamento ICMP que tentarem retornar através de um filtro inverso serão descartados. Todas as outras mensagens de respostas de erro ICMP são tratadas internamente pela filtragem dinâmica de pacotes.

Sem a filtragem dinâmica, você precisaria criar dois filtros ICMP: uma para permitir que uma mensagem de erro ICMP fosse enviada e outra para permitir que ela retornasse. Com a filtragem dinâmica de pacotes, você não precisa mais criar esses filtros ICMP. Sem a filtragem dinâmica de pacotes, você precisaria de quatro conjuntos de filtros externos e internos (um total de, pelo menos, oito filtros separados) para estabelecer o serviço FTP.

As quatro tabelas a seguir mostram as configurações de cada filtro externo e de cada filtro interno.

Canal de Controle

Externo

Interno

Interface de Origem

Privada

Pública

Interface de Destino

Pública

Privada

Tipo do Pacote

TCP

TCP

Porta de origem

1024-65535

21

Porta de destino

21

1024-65535

Endereço de origem

Qualquer um

Qualquer um

Endereço de destino

Qualquer um

Qualquer um

Filtragem de Bits ACK

Desabilitado

Habilitada

Filtragem Dinâmica

Desabilitado

Desabilitado

Canal de Dados do Comando PORT

Externo

Interno

Interface de Origem

Privada

Pública

Interface de Destino

Pública

Privada

Tipo do Pacote

TCP

TCP

Porta de origem

1024-65535

20

Porta de destino

20

1024-65535

Endereço de origem

Qualquer um

Qualquer um

Endereço de destino

Qualquer um

Qualquer um

Filtragem de Bits ACK

Habilitada

Desabilitado

Filtragem Dinâmica

Desabilitado

Desabilitado

Canal de Dados do Comando PASV

Externo

Interno

Interface de Origem

Privada

Pública

Interface de Destino

Pública

Privada

Tipo do Pacote

TCP

TCP

Porta de origem

1024-65535

1024-65535

Porta de destino

1024-65535

1024-65535

Endereço de origem

Qualquer um

Qualquer um

Endereço de destino

Qualquer um

Qualquer um

Filtragem de Bits ACK

Desabilitado

Habilitada

Filtragem Dinâmica

Desabilitado

Desabilitado

Canal de Mensagens de Erro ICMP

Externo

Interno

Interface de Origem

Privada

Pública

Interface de Destino

Pública

Privada

Tipo do Pacote

ICMP

ICMP

Porta de origem

N/D

N/D

Porta de destino

N/D

N/D

Endereço de origem

Qualquer um

Qualquer um

Endereço de destino

Qualquer um

Qualquer um

Filtragem de Bits ACK

N/D

N/D

Filtragem Dinâmica

Desabilitado

Desabilitado

Com a filtragem dinâmica de pacotes, você precisa apenas de um filtro de saída para estabelecer o serviço FTP, como mostra a tabela a seguir.

Filtro FTP

Externo

Interface de Origem

Privada

Interface de Destino

Pública

Tipo do Pacote

TCP

Porta de origem

1024-65535

Porta de destino

21

Endereço de origem

Qualquer um

Endereço de destino

Qualquer um

Filtragem de Bits ACK

Desabilitado

Filtragem Dinâmica

Habilitada


Suporte ao comando PORT do FTP

A filtragem dinâmica de pacotes suporta sessões de FTP através da monitoração do comando PORT. O aplicativo cliente envia esse comando pelo canal de comandos do FTP (porta 21) para avisar ao servidor em qual porta o cliente está esperando o servidor abrir o canal de dados. A filtragem dinâmica de pacotes cria uma regra de exceção temporária (com limite de tempo) para permitir que o servidor abra o canal de dados (geralmente, da porta 20) para o cliente.


Suporte ao comando PASV do FTP

A diferença entre os modos passivo e ativo do FTP é que, no modo passivo, o cliente é autorizado a abrir os canais de comando (porta 21) e de dados do FTP no servidor. O cliente FTP passivo inicia a conexão com os canais de dados e comandos do servidor. Tudo o que o servidor precisa fazer é avisar ao cliente em qual porta precisará se conectar de volta para a porta de dados do servidor, que normalmente é acima de 1023.

A filtragem dinâmica de pacotes monitora o comando PASV em vez do comando PORT e cria um filtro de exceção temporário (com limite de tempo) para permitir ao cliente se comunicar com o servidor em uma porta alta designada (acima de 1023). Com a filtragem dinâmica de pacotes, todos os canais de dados e do ICMP e o caminho inverso do canal de controle são criados (e eliminados) dinamicamente.

NOTA: Para o serviço FTP, você pode escolher o modo de FTP que será aceito: PORT, PASV ou ENABLED (que aceita os modos PORT e PASV). Algumas empresas não aceitam que usuários internos utilizem o serviço FTP (PORT) ativo.


Filtragem de pacotes fragmentados

Quando um datagrama IP é fragmentado, apenas o primeiro pacote tem as informações completas de cabeçalho e transporte. Nenhum dos demais pacotes subseqüentes possui as informações de transporte como o número da porta. A princípio, era seguro permitir que esses fragmentos passassem pelo firewall sem serem verificados, desde que o primeiro pacote fosse descartado. O host de destino acabaria descartando todos os pacotes subseqüentes e o reagrupamento não poderia ser completado sem o primeiro pacote.

Mas isso não acontece mais hoje em dia. Os pacotes fragmentados podem ser usados para disparar ataques de recusa de serviços, inundando continuamente a rede com pacotes fragmentados para ocupar a largura de banda da rede e os recursos do host de destino. Os fragmentos menores também podem ser usados para desviar o firewall com fragmentos sobrepostos ou manipulando os flags dos fragmentos.

Por exemplo, se um firewall não impuser sua segurança nos fragmentos de pacotes, todos os pacotes com o conjunto de bits de fragmentos poderão passar sem serem verificados. Um pacote que não seja fragmentado com o conjunto de bits de "mais fragmentos" pode ser usado para fazer uma varredura de porta no host de destino. Para evitar esses ataques, todos os fragmentos precisam ser verificados com base nos endereços de origem e destino, nas interfaces interna e externa e em uma combinação do TCP/IP e dos flags de fragmentos.

Para se proteger contra ataques de fragmentos com manipulação dos flags de fragmentos, o BorderManager acrescentou a filtragem automática de pacotes fragmentados. Essa filtragem descarta o primeiro pacote, que carrega informações completas de cabeçalho e transporte, e todos os pacotes fragmentados subseqüentes se eles tiverem as mesmas interfaces e os mesmos endereços IP de origem e de destino.


Proteção contra outros ataques

Foram incorporadas ao software BorderManager proteções contra vários programas de ataque existentes na Internet. Os dois comandos adicionais a seguir também podem ser habilitados (ou desabilitados) no console do servidor através de comandos SET da categoria COMMUNICATION ou podem ser incluídos no arquivo de inicialização AUTOEXEC.NCF. Por padrão, os dois estão definidos como ON.


Diretiva de segurança

Dois princípios básicos de diretivas de segurança podem ser aplicados na filtragem de pacotes:

O modo padrão de filtragem de pacotes (modo seguro), que é normalmente selecionado durante a instalação do BorderManager, adota a primeira abordagem --- negar tudo. Essa é a melhor opção para a primeira vez em que você configura o servidor BorderManager, porque a probabilidade de cometer erros que comprometam a segurança é maior nesse momento.

Quando o BorderManager é instalado, um conjunto de filtros padrão impede o acesso à Internet sem os serviços de um proxy de aplicativos ou gateway, como mostra a tabela a seguir.

Tipo do Filtro

Protocolo

Configuração

Filtros IPXTM

 

 

 

Que sai (para a interface pública)

 

 

SAP

Negar Nome do Serviço "*" e Tipo de Serviço FFFFh (Todos)

 

RIP

Negar Rede 00000000h e máscara 00000000h

 

Reencaminhamento de Pacotes

Negar Todos os pacotes

 

Que sai (para a interface pública)

 

 

SAP

Negar Nome do Serviço "*" e Tipo de Serviço FFFFh (Todos)

 

RIP

Negar Rede 00000000h e máscara 00000000h

 

Reencaminhamento de Pacotes

Negar Todos os pacotes

Filtros IP

 

 

 

Que sai (para a interface pública)

 

 

RIP

Não divulgar "Todas as rotas"

 

EGP

Não divulgar "Todas as rotas"

 

Reencaminhamento de Pacotes

Negar Todos os pacotes

 

Que sai (para a interface pública)

 

 

RIP

Não divulgar "Todas as rotas"

 

EGP

Não divulgar "Todas as rotas"

 

Reencaminhamento de Pacotes

Negar Todos os pacotes

Filtro OSPF

OSPF

Negar Todas as rotas

Filtros de Exceção

 

 

 

Que sai (para a interface pública)

 

 

Reencaminhamento de Pacotes

"Permitir Todos os pacotes" com endereço IP de origem como endereço IP público

 

Que sai (para a interface pública)

 

 

Reencaminhamento de Pacotes

"Permitir Todos os pacotes" vindos da interface pública com endereço IP de destino como endereço IP público e destinados às seguintes portas e protocolos:

 

 

Porta TCP 80 --- World Wide Web (WWW) --- HTTP

 

 

Porta TCP 213 --- VPN Master/Slave (IPX)

 

 

Porta TCP 35 --- Gateway de Autenticação da VPN

 

 

Porta TCP 443 --- Autenticação SSL

 

 

Portas TCP de 1024 a 65535 --- Dinâmico

 

 

Porta UDP 353 --- VPN sinalizadora de atividade

 

 

Portas UDP de 1024 a 65535 --- Dinâmico

 

 

Protocolo SKIP (Simple Key Management for Internet Protocol) 57 --- para VPN

SUGESTÃO: As configurações de filtros padrão do BorderManager bloqueiam o tráfego para dentro e para fora do servidor até você acabar de configurar os filtros que aceitam a transmissão de tipos específicos de pacotes. Por isso, instale e configure os filtros de pacotes após o horário normal de trabalho para evitar a interrupção do tráfego da rede.

Os pacotes precisam ser expressamente aceitos e não podem ser expressamente negados. No entanto, o utilitário de configuração de filtros do BorderManager (FILTCFG) permite que você defina exceções para essas condições. Após a obtenção dos dados dos pacotes, o filtro aplica listas de regras: primeiro a lista de exceções; depois a lista de filtros. Essas listas determinam quais pacotes podem entrar e sair da rede.


Opções de ação de filtros

As regras de filtragem das listas de exceções e de filtros são aplicadas através da utilização de uma das duas opções de ações de filtros: Negar ou Permitir.


Negar

Se a opção de ação de filtros for definida como Negar Pacotes na Lista de Filtros, a lista de filtros conterá a lista de pacotes que precisarão ser negados. A lista de exceções conterá a lista dos pacotes que precisarão ser permitidos. Os filtros de exceção sempre têm prioridade sobre os de negação. Se o tipo de um pacote não aparecer na lista de filtros de exceção, ele será verificado na lista de filtros de negação. Se o tipo do pacote não aparecer em nenhuma das duas listas, ele será aceito.


Permitir

Se a opção de ação de filtros for definida como Permitir Pacotes na Lista de Filtros, a lista de filtros conterá a lista dos pacotes que precisarão ser permitidos. A lista de exceções conterá a lista dos pacotes que precisarão ser negados. Os filtros de exceção sempre têm prioridade sobre os de permissão. Se o tipo de um pacote não aparecer na lista de filtros de exceção, ele será verificado na lista de filtros de permissão. Se o tipo do pacote não aparecer em nenhuma das duas listas, ele será negado.

Essas duas opções de ação de filtros podem ser resumidas como mostrado na tabela a seguir.

Ação de Filtros

Descrição

Negar

Todos os pacotes especificados na lista de exceções são permitidos. Todos os pacotes especificados na lista de filtros são negados. Se o modo Negar estiver habilitado e nenhum filtro for especificado, o roteador permitirá a passagem de todos os pacotes.

Permitir

Todos os pacotes especificados na lista de exceções são negados. Todos os pacotes especificados na lista de filtros são permitidos. Se o modo Permitir estiver habilitado e nenhum filtro for especificado, o roteador não permitirá a passagem de pacote algum.


Segurança da filtragem de pacotes

Como a filtragem de pacotes não verifica os dados da camada Aplicativo do pacote, essa solução é a menos segura, mas a mais eficiente dentre os métodos de firewall. Se as verificações passarem com sucesso, o pacote poderá ser roteado pelo firewall. No entanto, como esse método precisa de menos processamento do que os outros métodos, é uma solução mais rápida.

A filtragem de pacotes apresenta as seguintes vantagens:

A filtragem de pacotes apresenta as seguintes limitações: