Introdução
Sempre que precisamos colocar no ar uma rede ligada a
Internet, ou uma máquina Linux (ou não) para
serviços de Internet ficamos preocupados com a
segurança. Uma forma de se sentir mais seguro e fazer a
filtragem dos pacotes que a sua rede local está trocando
com a Internet (rede externa). Para isso, vamos fazer uso de
uma ferramenta chamada "ipchains" e os conceitos de firewall
sobre o Linux.
Vamos trocar algumas idéias para entender melhor.
Todo tráfego de uma rede é feito sobre a forma de
pacotes. Esses pacotes não são enormes. Se
você está baixando um arquivo de 1 Mb, não
significa que você esteja recebendo um único pacote
de 1 Mb, e sim diversos pequenos pacotes que mais tarde
serão agrupados e formarão o arquivo original. O
tamanho desses "pequenos pacotes" ou fragmentos de pacote
é uma característica de cada rede, nas redes
ethernet esse valor é de 1500 bytes. Você pode ver
isso usando o /sbin/ifconfig, e ver o parâmetro MTU,
maximum transfer unit. Todo pacote é dividido em dois
grupos, o cabeçalho (HEADER) e a área de dados
(BODY). E é no cabeçalho que o firewall age. No
cabeçalho temos as informações sobre a origem
e o destino do pacote, assim como a rota que ele seguiu e
mais algumas informações úteis. O firewall
então irá analisar o cabeçalho do pacote e
decidir se ele pode ou não ser transmitido entre a sua
rede local e a Internet.
No Linux, a filtragem de pacotes é embutida ao Kernel
do sistema, iremos mostrar mais adiante como
configurar/compilar o seu kernel para usar esse recurso.
Usando um firewall você só tem a ganhar,
você consegue ter controle de toda sua rede,
mantê-la segura e até monitora-la. Se você tem
o seu Linux como única conexão entre a sua rede
local e a Internet você consegue proteger as
máquinas da sua rede contra ataques maliciosos vindos da
Internet. A administração torna-se mais fácil,
uma vez que você basicamente precisa manter apenas uma
máquina segura (dependendo da configuração da
sua rede).
Uma característica do Linux é que a mesma
ferramenta, ipchains, é usada para controlar
ip-masquerade, proxying e regras de firewall. Como existem
vários tipos de conexões de redes locais a
Internet, irei fazer um pequeno resumo dos tipos mais comuns.
Para os mais antigos no mundo Linux, o ipfwadm era a
ferramenta que era usada para controlar essas
características (kernel 2.0). Ela foi re-escrita por que
estava apresentando uma série de falhas, precisava de
algumas coisas a mais e uma forma mais amigável de
configuração. Vale lembrar que não é o
ipchains que faz o controle de firewall, e sim o Kernel. O
ipchains apenas é uma ferramenta usada para configurar
as regras do jogo.