IPTABLES - Conceitos e aplicação

srf

O kernel 2.4 do Linux trouxe uma inovação no que diz respeito a ferramenta de firewall padrão do sistema. Bom, como já estamos no kernel 2.6.x, estabilizado no mercado e já sendo utilizado por milhares servidores espalhados pela web, finalmente podemos falar do IPTABLES.

[ Hits: 249.489 ]

Por: Sandro Roberto Ferrari em 23/08/2007


Conceitos básicos



Regras

As regras são como filtros aplicados ao iptables para que o mesmo implemente o que chamamos de filtro de pacote de acordo com o endereço IP/porta de origem/destino, interface de origem/destino, etc. As regras são armazenadas dentro dos chamados chains e processadas na ordem que são inseridas. Estas mesmas regras são armazenadas no kernel, o que significa que quando o sistema é reinicializado as mesmas são perdidas.

A sintaxe de uma regra é a seguinte:

iptables comando parâmetros extensões

Algo similar a isto na prática:

# iptables -A INPUT p- tcp -s 10.0.0.1 -j DROP

Comandos principais

Basicamente o IPTABLES tem as seguintes regras:
  • DROP - Nega pacote sem envio de um flag Reset - R
  • ACCEPT - Aceita pacote..
  • REJECT - Nega pacote mas envia um flag Reset - R

O envio de um flag reset pode facilitar a detecção por um scanner de uma porta aberta em um sistema, por isso utilizamos normalmente a política DROP.

Tabelas (tables)



As Tabelas são os áreas na memória usados para armazenar os chains em conjunção come conjunto de regras. (Parece enrolado, mas é muito simples). As tabelas podem utilizar a seguinte sintaxe para referencia:

iptables -opções -t tabela
iptables -A INPUT


Existem 3 tabelas disponíveis no iptables:

a) Tabela filter - Considerada a tabela padrão, contém 3 chains básicos:
  • INPUT - Consultado para pacotes que chegam na própria máquina;
  • OUTPUT - Consultado para pacotes que saem da própria máquina;
  • FORWARD - Consultado para pacotes que são redirecionados para outra interface de rede ou outra estação. Utilizada em mascaramento.

b) Tabela nat - Usada para passagem de pacotes que pode gerar outra conexão. Um exemplo clássico é o mascaramento (masquerading), nat, port forwarding e proxy transparente são alguns. Possui 3 chains básicas:
  • PREROUTING - Consultado quando os pacotes precisam ser redirecionados logo que chegam. Por exemplo, um pacote smtp que vai ser direcionado parar um endereço interno da rede (chain ideal para realização do chamado Destination NAT (DNAT));
  • OUTPUT - Consultado quando os pacotes gerados localmente precisam ser redirecionados antes de serem roteados. Este chain somente é utilizada para conexões que se originam de IPs de interfaces de rede locais;
  • POSTROUTING - Consultado quando os pacotes precisam ser modificados após o tratamento de roteamento. É o chain utilizado para realização de SNAT e mascaramento(IP Masquerading).

c) Tabela mangle - Utilizada para alterações especiais de pacotes como por exemplo modificar o tipo de serviço (TOS) de um pacote. Ideal para produzir informações falsas para scanners Possui 2 chains padrões:
  • PREROUTING - Consultado quando os pacotes precisam ser redirecionados logo que chegam;
  • OUTPUT - Consultado quando os pacotes gerados localmente precisam ser redirecionados antes de serem roteados.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Conceitos básicos
   3. Comandos e parâmetros básicos do iptables
   4. Extensões
Outros artigos deste autor

Antivírus Clamav no Linux

Linux para sua empresa

Samba e seu processo de resolução de nomes

Sobre WINS (Windows Internet Name Service)

NTop - Configurações gerais

Leitura recomendada

Introdução ao Firewall Linux

Iptables 1.3.4 com Layer 7 e Kernel 2.6.14 no Debian 3.1

Firewall rápido e seguro com iptables

Iptables + Layer7

Abrindo "passagem" para clientes de correio

  
Comentários
[1] Comentário enviado por elgio em 23/08/2007 - 09:09h

Oi. Muito legal este artigo. O que de melhor pode acontecer na comunidade é o pessoal abandonar um pouco esta estória de COPY AND PASTE de scritps iptables e aprender o que cada regra significa. Assim cada um faz o seu próprio.

Só uma correção (para ser CRI CRI).
O REJECT não envia, por padrão, um pacote de RESET, até porque UDP não teria reset (interpretei esta tua definição como FLAG RST do TCP. Foi mal?)

Na verdade ele devolve um pacote ICMP, sendo que se pode mudar o tipo de ICMP retornado.

Mas isto é detalhe do detalhe do detalhe ;-)
Parabéns!

[2] Comentário enviado por TSM em 23/08/2007 - 10:12h

Mandou bem cara, valeu.

[3] Comentário enviado por tuxSoares em 23/08/2007 - 12:50h

Gostei, deu para entender direitinho, parabens!

[4] Comentário enviado por hiroyuki em 23/08/2007 - 16:47h

Boa boa!!! Deu pra entender melhor o iptables!

[5] Comentário enviado por hm_maniac em 24/08/2007 - 16:47h

Ae galera.. to com um problema no iptables.. se vocês puderem me ajudar.. agradeço muitooo!!

Já postei a pergunta aqui ó:

http://www.vivaolinux.com.br/comunidades/verTopico.php?pagina=1&codtopico=6163&codigo=40&num_por_pag...

Valeu!!

[6] Comentário enviado por R.S.P Andre em 21/01/2010 - 11:40h

Exelente artigo.
estava em busca de algo assim a tempo.

FAVORITOS com certeza.

[7] Comentário enviado por MAPOGOS em 11/05/2014 - 21:06h


Eu não entendo nada só estou pensando sobre isso.
Nossa isso ja faz um tempão de postagem ao VOL.
Nesse tempo eu nem sabia quando era dia.
Mas hoje eu relembro e aprendo sobre ipchains e iptables e tabela Filter, Nat e Mangle.
Porque?
Quando eu leio sobre esses artigos bem explicados da paraentender um pouco melhor e estudar sobre outros assuntoos, como pacotes e protocolos, mas ja surgem muitas outras dúvidas sobre regras.

Pode uma ipchain fazer relacionamento com outra iptables de uma vez só ao declarar um comando
de uma forma que um parâmetro de regra num assunto só entre as duas?

Porque?
exemplo?
iptables -A INPUT p- tcp -s 10.0.0.1 -j REJECT
iptables -A INPUT p- tcp -s 10.0.0.1 -J FORWARD -
#iptables -A IMPUT p -tcp -s DROP
#iptables -A IMPUT p -tcp -s OUTPUT


Ta eu ja entendi mais ou menos.
Qual regra básica eu utilizaria na minha rede com sistemas operacionais Windous, Linux outros dispositivos Smartphones.
Muito Obrigado, hoje foi um dia produtivo lendo este artigo.




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts