Esse é o primeiro artigo de vários que pretendo disponibilizar pra vocês, onde contarei
um pouco da minha experiência com Linux e também publicarei documentações de outros
colegas que me ajudaram ao longo desses anos trabalhando com Linux.
Nesse artigo, tentarei mostrar como construir um firewall Linux com filtro de conteúdo
autenticado, levando em consideração que o Linux já esteja instalado no micro. A distribuição
a ser utilizada fica a critério do leitor, pois sabemos as particularidades que cada uma tem e
deixo-os bem a vontade para escolherem a que mais lhe agradarem, porém, utilizarei como
base para a instalação dos pacotes o apt-get, pois é o utilizado no Debian e nas distros
baseadas nele, caso optem pelo Fedora ou compatíveis, podem perfeitamente substituir o apt-
get pelo yum.
Lembrando que nesse tutorial tentarei ser o mais didático possível, levando em
consideração que meus leitores são usuários ainda não totalmente familiarizados com o
ambiente LINUX optei pela simplicidade e por isso não explorarei os recursos mais avançados
dessas ferramentas, mas com certeza será um bom começo para todos.
Um Firewall é um programa possui autonomia para tratar de forma linear todo tipo de
tráfego que passa por um host ou por uma rede inteira. Por isso é muito importante que o
administrador saiba exatamente o que quer proteger e de que forma isso será feito.
No Linux o firewall faz parte da própria arquitetura do kernel, o que sem dúvida o
coloca na frente dos seus concorrentes, pois todo que passa por um host, já é processado no
kernel independente do SO, mas o Linux inclui em sua estrutura um Netfilter que controla o
fluxo dos pacotes especificamente.
Por isso, tudo que você vai precisar para iniciar o seu firewall já está pronto no Linux,
que é o famoso front-end conhecido como Iptables. É fato que existem muitas outras
funcionalidades do iptables que podem ser implementadas via compilação de kernel como
bloqueio de aplicativos em Layer 7, etc... mas esse não é nosso foco, pois estamos iniciando
nesse mundo, certo?
Já no console do seu servidor e com acesso de root apenas digite o comando : iptables
Agora, no diretório /etc use o seu editor de textos preferido para criar o arquivo
firewall.sh onde colocaremos nossas regras de firewall (copie o script abaixo e cole em seu
arquivo):
#chmod +x /etc/firewall.sh
#agora digite: ./firewall.sh e realize seus testes e vá ajustando suas regras até chegar
ao ponto certo.
Tabela Filter:
FORWARD: Tudo que chega ao host mas deve ser redirecionamento a um host secundário ou
outra interface de rede
Tabela Filter:
O bacana nesse script é que ele logo praticamente tudo que o faz, e todos sabemos
que nada melhor do que um bom log para reconhecermos nossos inimigos.
# Zera regras
# -------------------------------------------------------
$iptables –F
$iptables –X
$iptables -F -t nat
$iptables -X -t nat
$iptables -F -t mangle
$iptables -X -t mangle
#################################################
# Tabela FILTER
#################################################
# Dropa pacotes TCP indesejáveis
# -------------------------------------------------------
$iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-level 6 --log-prefix
"FIREWALL: NEW sem syn: " $iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
#################################################
# Tabela NAT
#################################################
# Proxy transparente
# -------------------------------------------------------
#$iptables -t nat -A PREROUTING -i $IF_INTERNA -p tcp --dport 80 -j REDIRECT --to-port 3128