Pular para o conteúdo principal

Iptables - Conceito e aplicação

Firewall Iptables


O firewall Iptables é instalado por padrão no Ubuntu Linux. Sua configuração default permite todo e qualquer tráfego,  o tornando ineficaz.

O objetivo deste tutorial é ensinar os comandos básicos do Iptables, mas, de modo a proporcionar uma configuração satisfatória dos Serviços. 

 

Log no Terminal como Administrador


Sudo –s
Senha root
Em seguida digite o comando:
sudo iptables –L

Lembre-se que o Linux faz reconhecimento entre maiúscula e minúscula, (L). Este comando irá mostrar as regras em funcionamento no Iptables. Caso a instalação do sistema seja padrão, você verá a seguinte informação:


Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Agora Permita as Sessões Estabelecidas



Com o comando a seguir, permitimos que todas as sessões estabelecidas recebam tráfego:

# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

Liberando Tráfego de Entrada em Portas Específicas



O próximo passo (deve) ser permitirmos SSH antes de aplicarmos qualquer tipo de bloqueio.
Como é do conhecimento de qualquer técnico Linux (tradicionalmente o SSH usa a porta 22). Então podemos dizer ao Iptables para permitir todo tráfego TCP na porta 22 do adaptador de rede com o comando:

# iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT

Agora liste o Iptables para ver se as regras implantadas foram aplicadas corretamente:
Nas primeiras linhas, que é o exemplo que uso aqui, será mostrado algo semelhante a:


# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh

O próximo passo será liberarmos todo o tráfego da web:

# iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
Analisando novamente as regras temos algo como:


# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www

Permitimos o tráfego TCP ao SSH e portas WEB, mas como não bloqueamos nada, todo o tráfego continua chegando.

 

Bloqueando Tráfego



Como nossas regras permitindo SSH e tráfego WEB vêm primeiro, e como nossa regra para bloquear todo o tráfego vêm depois delas, nós podemos permanecer aceitando o tráfego que queremos.
Tudo que precisamos fazer é colocar a regra para bloquear todo o tráfego no fim. O comando -A diz ao Iptables para adicionar a regra no final, então nós usaremos isso outra vez.


# iptables -A INPUT -j DROP
# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
DROP       all  --  anywhere             anywhere

Por não especificarmos uma interface ou protocolo, qualquer tráfego de qualquer porta em qualquer interface está bloqueado, exceto para a WEB e SSH.

Postar um comentário

Postagens mais visitadas deste blog

Gerenciador de Boot Grub

Grub / Gerenciador de inicialização



Seguem comandos para solução dos principais problemas de inicialização.
Ao iniciar no mundo Linux é comum pessoas recorrerem ao Dual Boot, visando suavizar a transição. Neste contexto, a inicialização ou o gerenciamento das inicializações, passam a ser administradas pelo Grub, isso partindo do pressuposto, de que o LiLo, seja coisa do passado.