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 o que é usado nas versões anteriores do BorderManager, examinam cada pacote que cruza a fronteira entre a rede privada (intranet) e a rede pública (Internet). Os filtros estáticos de pacotes analisam o campo do cabeçalho de cada pacote para identificar um conjunto de características:
Essas características determinam se o pacote deve 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 baseados na filtragem de pacotes são dispositivos da camada Rede que não podem processar informações da camada superior. 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 seguro e orientado a conexões. Uma conexão é sempre iniciada usando o "handshake tridirecional" reconhecido, como é mostrado a seguir:
Pacote 1: Cliente --> Flag do Servidor: SYN
(O cliente deseja iniciar uma conexão ou "sincronização".)
Pacote 2: Servidor --> Flags do Cliente: SYN, ACK
(ACK: O pedido de conexão do cliente [SYN] está sendo confirmado.)
Pacote 3: Cliente --> Flag do Servidor: ACK
(ACK: O pedido de conexão do servidor [SYN] está sendo confirmado.)
Quando a filtragem de bits ACK do TCP está ativada, somente pacotes de resposta (pacotes com o conjunto de bits ACK do TCP) são permitidos. 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 deve 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, conforme implementada no BorderManager, é 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 contado como uma resposta, o pacote de resposta deve ser proveniente do host e da porta para onde o pacote externo foi enviado.
A filtragem dinâmica de pacotes suporta protocolos com e sem conexão (TCP, UDP, ICMP e assim por diante). 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 a partir 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 extraindo-se as seguintes informações do 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 os protocolos orientados para conexão, como o TCP, o filtro que chega (inverso) é criado somente quando o primeiro pacote que sai é detectado. A filtragem de bits ACK do TCP é ativada automaticamente no filtro inverso para evitar que quaisquer tentativas de conexão feitas por intrusos sejam iniciadas através desse filtro.
Para o ICMP, somente 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 listam 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 |
Desativada |
Ativada |
|
Filtragem Dinâmica |
Desativada |
Desativada |
|
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 |
Ativada |
Desativada |
|
Filtragem Dinâmica |
Desativada |
Desativada |
|
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 |
Desativada |
Ativada |
|
Filtragem Dinâmica |
Desativada |
Desativada |
|
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 |
Desativada |
Desativada |
Com a filtragem dinâmica de pacotes, você precisa de apenas um filtro externo para estabelecer o serviço FTP, como é mostrado na 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 |
Desativada |
|
Filtragem Dinâmica |
Ativada |
A filtragem dinâmica de pacotes suporta sessões ativas do FTP através do monitoramento 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, a partir da porta 20) para o cliente.
A diferença entre os modos de FTP passivo e de FTP ativo é que no modo passivo o cliente tem permissão para abrir os canais de comandos do FTP (porta 21) e os canais de dados do FTP para o 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 deverá 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 está fragmentado, somente o primeiro pacote possui informações completas de cabeçalho e transporte. Nenhum dos demais pacotes subseqüentes possui as informações de transporte como, por exemplo, 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 concluído 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 banda passante 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 devem 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 proteger contra ataques de fragmentos com manipulação dos flags de fragmentos, o BorderManager inclui a filtragem 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 que existem atualmente na Internet. Os dois comandos adicionais a seguir também podem ser ativados (ou desativados) no console do servidor, através dos comandos SET da categoria COMMUNICATION, ou podem ser incluídos no arquivo de partida AUTOEXEC.NCF. Por padrão, os dois estão definidos como ON.
Quando definido como ON, todos os pacotes com um endereço de broadcast de destino IP 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.
Este 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.
Podem ser aplicadas duas filosofias básicas de diretivas de segurança à filtragem de pacotes:
O modo de filtragem de pacotes padrão (modo seguro), que normalmente é selecionado durante a instalação do BorderManager, adota a primeira filosofia --- 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 aplicativo ou de um gateway, como é mostrado na tabela a seguir.
|
Tipo do Filtro |
Protocolo |
Configuração |
|---|---|---|
|
Filtros IPXTM |
|
|
|
|
Que sai (para a interface pública) | |
|
|
SAP |
Deny Service Name "*" (Negar Nome do Serviço "*") e Service Type FFFFh (All) (Tipo de Serviço FFFFh (Todos)) |
|
|
RIP |
Deny Network 00000000h (Negar Rede 00000000h) e máscara 00000000h |
|
|
Reencaminhamento de Pacotes |
Deny All packets (Negar Todos os pacotes) |
|
|
Que chega (da interface pública) | |
|
|
SAP |
Deny Service Name "*" (Negar Nome do Serviço "*") e Service Type FFFFh (All) (Tipo de Serviço FFFFh (Todos)) |
|
|
RIP |
Deny Network 00000000h (Negar Rede 00000000h) e máscara 00000000h |
|
|
Reencaminhamento de Pacotes |
Deny All packets (Negar Todos os pacotes) |
|
Filtros IP |
|
|
|
|
Que sai (para a interface pública) | |
|
|
RIP |
Do not advertise "All routes" (Não divulgar "Multidirecional") |
|
|
EGP |
Do not advertise "All routes" (Não divulgar "Multidirecional") |
|
|
Reencaminhamento de Pacotes |
Deny All packets (Negar Todos os pacotes) |
|
|
Que chega (da interface pública) | |
|
|
RIP |
Do not advertise "All routes" (Não divulgar "Multidirecional") |
|
|
EGP |
Do not advertise "All routes" (Não divulgar "Multidirecional") |
|
|
Reencaminhamento de Pacotes |
Deny All packets (Negar Todos os pacotes) |
|
Filtro OSPF |
OSPF |
Deny All routes (Negar Todas as rotas) |
|
Filtros de Exceção |
| |
|
|
Que sai (para a interface pública) | |
|
|
Reencaminhamento de Pacotes |
"Allow All packets" ("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 |
"Allow All packets" ("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 |
|
|
|
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 devem 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 os dados do pacote serem obtidos, 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 nas listas de exceções e nas listas de filtros são aplicadas usando uma das duas opções de ação de filtro: Negar ou Permit (Permitir).
Se a opção de ação de filtros for definida como Deny Packets in Filter List (Negar Pacotes na Lista de Filtros), a lista de filtros conterá a lista de pacotes que deverão ser negados. A lista de exceções conterá a lista dos pacotes que deverã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 Permit Packets in Filter List (Permitir Pacotes na Lista de Filtros), a lista de filtros conterá a lista dos pacotes que deverão ser permitidos. A lista de exceções conterá a lista dos pacotes que deverã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 ativado e nenhum filtro for especificado, o roteador permitirá que todos os pacotes passem. |
|
Permit (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 Permit (Permitir) estiver ativado e nenhum filtro for especificado, o roteador não permitirá que nenhum pacote passe. |
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 requer menos processamento do que os outros métodos, é uma solução mais rápida.
A filtragem de pacotes oferece as seguintes vantagens:
A filtragem de pacotes tem as seguintes limitações: