A ilustração mais usada para descrever um firewall é a de um muro, que isola a rede local da Internet. Mas, na prática, a operação do firewall lembra muito mais a de um escritório de alfândega, que tem a função de fiscalizar o que entra e o que sai,
bloqueando itens ilegais e permitindo a passagem de itens autorizados. Uma outra analogia poderia ser feita com relação aos seguranças de uma loja, que precisam impedir a ação de assaltantes, sem com isso impedir a entrada de clientes. Um firewall que
simplesmente bloqueasse a passagem de todos os pacotes (como um muro) seria inútil, pois simplesmente desconectaria o PC da rede.
Na vida real, o firewall é uma coleção de regras que são aplicadas ao tráfego de rede. Baseado nelas, o firewall decide o que deve ou não passar. É justamente por isso que nenhum firewall é 100% seguro, já que ele precisa
fazer seu trabalho sem prejudicar o uso normal da rede.
Outra coisa a ter em mente é que o firewall é destinado a limitar o acesso aos serviços disponíveis, evitando que os compartilhamentos de rede do seu servidor, destinados à rede interna sejam acessados via Internet, ou
limitando o acesso a determinadas portas e a determinados endereços da rede, por exemplo.
O firewall trabalha verificando os endereços de origem e de destino dos pacotes, portas a que são destinados e o status das conexões. Ele não é destinado a verificar o conteúdo dos pacotes e por isso pouco pode fazer com
relação a vírus, trojans, phishing e outros ataques similares. Para eles, temos os antivírus, que trabalham verificando o conteúdo dos arquivos acessados. Para oferecer uma proteção mais completa, muitos firewalls para Windows passaram a incluir também
ferramentas de detecção de malwares, mesclando as duas categorias e uma única classe de aplicativos. Um exemplo de firewall “híbrido” é o Comodo, que veremos a seguir.
Uma boa forma de entender como funciona um firewall é examinar alguns exemplos de scripts de firewall para o IPtables. Ele nada mais é do que o firewall “padrão” no Linux, que é diretamente integrado ao Kernel e pode ser
tanto programado diretamente quando usado como base para o desenvolvimento de firewalls gráficos. Existem diversos firewall gráficos para Linux, como o Firestarter (que veremos em detalhes a seguir), mas todos eles utilizam como base o IPtables,
programando a ação do firewall de acordo com a sua configuração.
Por exemplo, quando você diz ao Firestarter que deseja permitir conexões na porta 22 TCP (a porta do SSH) a partir de qualquer endereço, ele incluiria uma regra similar a esta na programação do firewall:
Este é um comando que poderia ser executado diretamente no terminal, ou usado como parte de um script de configuração do firewall. Ele diz que qualquer pacote de entrada (INPUT), usando o protocolo TCP (-p tcp), destinado à
porta 22 (–dport 22) deve ser aceito (-j ACCEPT).
Ao bloquear o acesso ao domínio “orkut.com” para os PCs da rede local que acessam através da conexão compartilhada pelo servidor, seria incluída uma regra similar a essa:
A regra “FORWARD” se aplica a pacotes que são recebidos em uma interface e roteados para outra, como no caso dos pacotes recebidos na interface de rede local e roteados para a Internet. A opção “-d orkut.com” rotula os
pacotes destinados ao servidor do orkut, enquanto a regra “-j REJECT” diz o que deve ser feito com eles, ou seja, diz que eles devem ser rejeitados. Com isso, o servidor passa a se recusar a encaminhar requisições de páginas para os servidores do domínio
especificado, impedindo que os usuários acessem o serviço.
Você pode imaginar que o firewall é programado com uma sequência de regras como essas, que dizem o que ele deve fazer em cada situação prevista, terminando com uma regra mais geral, que diz que pacotes que não se enquadram
nas regras estabelecidas devem ser recusados (ou aceitos, de acordo com a política de acesso adotada).
Cada pacote que passa pelo firewall precisa então passar por cada uma das regras, até que o firewall encontre uma que diga o que fazer com ele. Se existem duas regras conflitantes (uma diz que o pacote deve ser aceito e
outra diz que ele deve ser recusado, por exemplo), vale a regra que aparecer primeiro na lista.
Aqui temos um exemplo bem simples de script com regras para o IPtables, que autoriza acessos provenientes da rede local (que no exemplo utiliza a interface “eth1” e a faixa de endereços 192.168.1.x, com máscara
255.255.255.0), permite acessos (a partir de qualquer endereço) na porta 22, libera o tráfego na interface de loopback e em seguida bloqueia conexões de entrada não especificadas nas regras anteriores, deixando passar apenas pacotes de resposta para as
conexões iniciadas por você:
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp –syn -j DROP
Um script de firewall mais completo poderia ter várias dezenas de linhas, que logo se tornariam um emaranhado difícil de administrar. Firewalls gráficos como o Firestarter reduzem a complexidade, administrando as regras para
você.
Deixe seu comentário