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:
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.
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:
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:
IMPORTANTE: A filtragem dinâmica de pacotes é um superconjunto de filtragem de bits ACK. No entanto, ela não pode ser configurada no mesmo filtro.
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 |
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.
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.
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.
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.
Quando esse comando está ativado (ON), todos os pacotes que têm um endereço IP de broadcast de destino são descartados.
O endereço 255 é usado para broadcasts. Um broadcast é uma mensagem que é enviada a todos os sistemas da rede. Normalmente, é mais fácil enviar uma única mensagem de broadcast do que enviar datagramas individuais para cada host. As mensagens de broadcast de sub-redes são enviadas usando um endereço que é formado pelo endereço da rede com o número 255 na parte numérica da sub-rede. Por exemplo, se você estiver na rede 140.120.8, o endereço IP 140.120.8.255 será usado para broadcasts da sub-rede.
Quando definido como ON, todos os pacotes de loopback local são descartados.
Esse comando foi adicionado para suportar aplicativos locais que usam o endereço de loopback local para serem executados localmente no servidor, como as interfaces do software NetWare® 5TM, do NDPSTM Broker e do software ConsoleOneTM.
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.
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.
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.
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. |
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: