Firewalls

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:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

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:

iptables -A FORWARD -d orkut.com -j REJECT

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 -i eth1 -s 192.168.1.0/255.255.255.0 -j ACCEPT
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ê.

No mundo Windows, a presença de um firewall pré-instalado no sistema é um fenômeno relativamente recente. Até o Windows 2000, o sistema simplesmente não contava com firewall algum, o que permitiu o surgimento de inúmeros firewalls domésticos oferecidos por empresas independentes, como o Zone Alarm.

O Windows XP original trouxe um firewall simples batizado de ICF (Internet Connection Firewall), que era destinado a oferecer um nível mínimo de proteção a máquinas destinadas a compartilhar a conexão com a rede local. O ICF evoluiu bastante desde então, dando origem ao Windows Firewall, incluído a partir do Windows XP SP2, que embora ainda ofereça um conjunto modesto de recursos, já é bem mais utilizável que o antecessor.

Vamos então colocar a mão na massa, estudando sobre a configuração do Windows Firewall, do Comodo (uma opção de firewall para Windows com um volume bem maior de recursos) e do Firestarter, para Linux.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X