Iptables detalhado

Tentarei explicar um pouco sobre o Iptables, uma poderosa ferramenta de firewall.

[ Hits: 45.041 ]

Por: Ricardo Vasconcellos em 02/02/2010 | Blog: http://www.vivaolinux.com.br/~qxada07


Vantagens e fluxo de pacote



A partir da família 2.4.x do kernel, o controle de pacotes passou a ser implementado pelo Netfilter e através do módulo Iptables. O Ipchains era muito utilizado na família de kernel 2.2.x e não é recomendado para utilização nos kernel 2.4.x e superior.

Vamos ver algumas vantagens em utilizar o Iptables.

Filtro de pacotes por estado (Statefull): agora podemos definir regras baseadas em status de conexão: nova (NEW), estabelecida (ESTABLISHED), reincidente (RELATED) e inválida (INVALID).

Extremamente modular: possui módulos que permitem tratar a conexão por MAC, múltiplas portas, pacotes com má formação.

Fluxo de pacotes: INPUT: pacotes onde o DESTINO é o FIREWALL.

             --------------
 ----------> |  FIREWALL  |
    INPUT    --------------

- OUTPUT: Pacotes onde a ORIGEM é o FIREWALL

 --------------
 |  FIREWALL  | -----------> 
 --------------    OUTPUT

FORWARD: Pacotes de origem 0/0 com destino 0/0 que passam pelo FIREWALL.

          --------------
          |  FIREWALL  |
          --------------  
     ---------> FORWARD --------->

PREROUTING: Trata roteamento de pacotes que chegam no FIREWALL.

POSTROUTING: Trata roteamento de pacotes que deixam o FIREWALL.

Praticamente para todas as regras temos que definir uma TARGET.
  • ACCEPT: Aceita o pacote
  • DROP: Bloqueia um pacote sem resposta
  • REJECT: Bloqueia um pacote com resposta
  • LOG: Gera log de acordo com a regra definida
  • SNAT, DNAT, MASQUERADE: Realiza NAT sobre os pacotes

Política de segurança

Política de segurança é configurada através do parâmetro "-P". Vamos bloquear qualquer tráfego com destino ao FIREWALL:

iptables -P INPUT DROP

Bloquear todo tráfego que irá passar pelo FIREWALL:

iptables -P FORWARD DROP

Liberar qualquer acesso partindo do FIREWALL:

iptables -P OUTPUT ACCEPT

Para qualquer regra teremos que adicionar uma regra ou indexar uma regra para isso usaremos os parâmetros abaixo:
  • APPEND (-A): A regra será adicionada uma após a outra.
  • INSERT (-I): Regra será adicionada acima de todas as regras APPEND.

    Próxima página

Páginas do artigo
   1. Vantagens e fluxo de pacote
   2. Meu primeiro firewall
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

A teoria por trás do firewall

Automatizando Firewall com IDS Snort e SnortSam

Firewalls redundantes utilizando VRRP

Usando o PF - Packet Filter

Firewall invisível com Proxy ARP

  
Comentários
[1] Comentário enviado por elgio em 02/02/2010 - 19:04h

Não entendi porque traduzir RELATED para reincidente... Não há qualquer sentido nisto!

Related é melhor traduzido para "relacionada", ou seja, conexões que possuem uma relação entre si, mas que não são a mesma.

Quando tu envia o primeiro pacote de SYN TCP, por exemplo, os demais pacotes irão casar com ESTABLISHED pois a conexão está estabelecida. Mesmo UDP não tendo conceito de conexão, ESTABLISHED se aplica também a UDP e até mesmo ICMP (uma resposta de um ping casaria na regra ESTABLISHED).

O que seria então o RELATED?
São outros pacotes que não são da mesma conexão, mas se relacionam com ela.

Exemplo: se tu envia um SYN para a porta 80 e a porta 80 está fechada por um firewall com REJECT, tu vai receber um ICMP tipo 3, código 3 (porta inacessível). Este ICMP casaria com o RELATED pois o iptables entende que diz respeito aquele SYN que passou.

[2] Comentário enviado por zelongatto em 03/02/2010 - 21:42h

Gostei do artigo, simples de entender, vai ajudar bastante quem tinha dificuldades em entender firewall...
valew
abraço

[3] Comentário enviado por andre_deko em 05/02/2010 - 11:29h

Muito bom!!!

De fácil entendimento, e de grande ajuda principalmente para quem está tentando entender iptables para iniciar alguns estudos, bem simples e prático.

Abraço

[4] Comentário enviado por vagnersobrinho em 11/06/2010 - 09:10h

Bom Artigo!

Parabens!

Abraços

[5] Comentário enviado por anderson.brd em 03/09/2010 - 11:26h

Na hora da instalação no Ubuntu, ele pede: interface de Entrada e de Saida. É pra eu digitar: eth0 e eth1 ? O q seria isso ?

Estou no começo mesmo de iptables pra um trabalho, mas já sei alguns comando pra instalar e etc.

Podem ajudar a clarear as idéias ?

Obrigado pela a atenção.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts