Montando regras iptables

Abordarei nesse artigo algumas definições sobre tabelas, chains, comandos, ações e alvos do iptables para facilitar a criação de suas regras.

[ Hits: 108.070 ]

Por: Cristyan Giovane de Souza Santos em 01/08/2008


Exemplo de aplicação básica



Abaixo exemplos de algumas regras de firewall. Basta utilizar as informações anteriores e adequá-las a sua real necessidade.

#limpa todas as regras
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F

#exclui chains criadas
iptables -t filter -X
iptables -t nat -X
iptables -t mangle -X

#zera contador
iptables -t filter -Z
iptables -t nat -Z
iptables -t mangle -Z

#define política padrão para DROP
#se não especificar a tabela com -t, o iptables utilizará a tabela filter
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#INPUT
#libera entrada para serviços locais do firewall
iptables -A INPUT -i lo -j ACCEPT #libera tráfego local
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT #libera Squid
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT #libera DNS
iptables -A INPUT -m state ESTABLISHED, RELATED -j ACCEPT #libera pacotes sincronizados
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT #libera ping.

#OUTPUT
iptables -A OUTPUT -j ACCEPT #libera toda a saída

#FORWARD
iptables -N INT2EXT #Cria chain INT2EXT para tratar a saída do tráfego
iptables -N EXT2INT #Cria chain EXT2INT para tratar a entrada do tráfego.
iptables -A FORWARD -i eth0 -o eth1 -j EXT2INT #aceita tráfego de entrada especificado em EXT2INT
iptables -A FORWARD -i eth1 -o eth0 -j INT2EXT #aceita tráfego de saída especificado em INT2EXT

iptables -A INT2EXT -p tcp -s 192.168.0.10 -j ACCEPT #libera o host 192.168.0.10 a sair por qualquer porta tcp
iptables -A INT2EXT -p tcp -m multiport --dport 25,110 -j ACCEPT #libera envio e recebimento de email para a rede

iptables -A EXT2INT -p tcp --dport 80 -j ACCEPT #libera entrada para serviço web.

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.0.10:80 #direciona tráfego http para para o host 192.168.0.10

iptables -t mangle -A INPUT -p tcp --dport 80 -j TOS --set-tos 16 #prioriza tráfego na porta 80

Página anterior    

Páginas do artigo
   1. Tabelas
   2. Comandos e ações
   3. Alvos e módulos
   4. Exemplo de aplicação básica
Outros artigos deste autor

Firewall iptables com NAT

Squid autenticando em Windows 2003 com msnt_auth

Leitura recomendada

Endian Firewall - Solução completa para um servidor de internet

Introdução ao Firewall Linux

IpCop - Um firewall personalizado

Port Forward mais completo: caçando o fantasma da rede interna

Autenticação no Iptables

  
Comentários
[1] Comentário enviado por leobragatti em 01/08/2008 - 08:54h

cristyangiovane
parabens pelo artigo, muito bom mesmo
para quem é iniciante (como eu rs) e ainda tem algumas dificuldades, esse artigo esclarece bem a ideia do IPTables
valeu

[2] Comentário enviado por grandmaster em 01/08/2008 - 09:53h

Legal o artigo para quem está começando a lidar com o Iptables.

---
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br


[3] Comentário enviado por thifachini em 01/08/2008 - 10:11h

muito bom seu artigo, mas a tabela MANGLE não é apenas isso que falaste, com ela também é possivel realizar marcação de pacotes, tanto para roteamento (iptables/iproute) quanto setar classe para trabalhar com o QoS (HTB, e outros) e ela trabalha em todas as CHAINS das tabelas NAT e FILTER (PREROUTING, INPUT, FORWARD, OUTPUT e PROSTROUTING), e deve ter mais outras possibilidades.

att,

Thiago Fachini

[4] Comentário enviado por tpjunior em 01/08/2008 - 10:21h

Muito bom, parabéns.

[5] Comentário enviado por der.aguiar em 01/08/2008 - 15:02h

Ficou bom o artigo com explicações.... muito bom....

parabéns

[6] Comentário enviado por removido em 05/09/2008 - 17:45h

Fala pessoal do VOL, eu estou com um problema, eu tenho um Server rodando Ubuntu 8.04 Server Edition, e eu preciso fazer ele liberar as portas 25, 110.

Eu já li um monte de Tutoriais, mas não estou conseguindo.

Obrigado.

[7] Comentário enviado por der.aguiar em 06/09/2008 - 11:12h

Aqui vc esta dando acesso tanto interno como externo.... blz
vc não explicou qual do dois gostaria
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT


Anderson Aguiar
der.aguiar@itelefonica.com.br

[8] Comentário enviado por apileofshit em 27/01/2009 - 20:32h

obrigado!

[9] Comentário enviado por removido em 12/02/2009 - 11:56h

iptables -A INPUT -p tcp --dport 3128 -j ACCEPT #libera DNS

NÃO SERIA PORTA 53? SÓ PRA CONSTAR... MAS NÃO COMPROMETE O ARTIGO. EXCELENTE. SIMPLES, E DIDÁTICO! PARABENS!!

[10] Comentário enviado por cristyangiovane em 12/02/2009 - 15:52h

Desculpa o erro ai.

A porta é a 53.
Copiei a linha anterior do squid e esqueci de alterar.


[11] Comentário enviado por jovander em 13/04/2009 - 20:38h

Parabéns pelo artigo, sou novo no forum e no linux, gostei muito dos exemplos, e com essas dicas que agente começa a aprender.....obrigado.

[12] Comentário enviado por vaini em 21/12/2009 - 21:20h

parabens pelo artigo, estou iniciando meus estudos de firewall, e este artigo me ajudou muito.
obrigado


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts