terça-feira, 27 de maio de 2014

Entendendo o Iptables

Firewall é uma ferramenta de segurança que fica localizado entre a rede interna e rede externa, com o objetivo de limitar o acesso de computadores da rede interna aos serviços da rede externa ou vice-versa. As distribuições do Linux, por padrão, desde a versão 2.4.0 do Kernel, é utilizado o Firewall Netfilter/Iptables, que trabalha com filtragem de pacotes. Segundo próprio site de Netfilter, o Netfilter é um framework dentro do kernel Linux, no qual outro módulo se conecta-se. O módulo mais utilizado é o Iptables. O módulo Iptables altera as regras da tabela de filtragem de pacotes no Kernel.
Segue abaixo, um resumo bem básico sobre o IPTABLES.
-Politicas e regras
Os tratamentos são:
  • ACCEPT: O pacote é aceito.
  • DROP: O pacote não é aceito e o remetente não é avisado.
  • REJECT: O pacote não é aceito e o remetente é avisado.
  • RETURN: Volta para a regra anterior.

-Ele trabalha com 3 tabelas(chains)
  • FILTER: Aplica políticas de restrição de pacotes; Usa os ganchos INPUT, OUTPUT e FORWARD
  • NATUsada para alterar os pacotes com mudança de endereços; Utiliza os ganchos PREROUTING, POSTROUTING e OUTPUT
  • MANGLEAltera os pacotes de forma especial, marcando-os para algum motivo especial, como qualidade de serviço, etc.
-Ganchos
  • FORWARD
Trata os pacotes que passam pelo firewall com destino outro host.
Veja abaixo a figura, onde o Suricata é o Firewall.

  •  INPUT

Trata os pacotes antes de entrega-los para uma aplicação local.
  • OUTPUT
Trata os pacotes que saem de uma aplicação local.
Veja abaixo a figura, onde o Suricata é o Firewall.
  • POSTROUTING
Trata os pacotes após deixar uma interface.
  • PREROUTING
Trata os pacotes que chegam em uma interface.

-Chains do NAT:
  • Prerouting, postrouting e output.
Segue abaixo um diagrama retirado do netfilter.
      _____                                     _____
     /     \                                   /     \
   PREROUTING -->[Decisão ]----------------->POSTROUTING----->
     \D-NAT/     [de Roteamento]               \S-NAT/
                     |                            ^
                     |                          __|__
                     |                         /     \
                     |                        | OUTPUT|
                     |                         \D-NAT/
                     |                            ^
                     |                            |
                     ----> Processamento Local ----



-NAT

O NAT pode sofrer 4 ações possíveis:
  • DNAT: Altera o IP do destino
  • SNAT: Altera o IP de origem
  • MASQUERADE: Mascarar conexões
  • REDIRECT: Redirecionar portas do mesmo host

-COMANDOS
Veja os exemplos de alguns comandos:
  • iptables -t filter -P INPUT DROP
  • iptables -t filter -A FORWARD -j REJECT
  • iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth1 -j MASQUERADE
  • iptables -A INPUT -p udp -s 0/0 -i eth1 --dport 33435:33525 -j DROP
-OPÇÕES 
Adiciona uma regra no final da lista

  • iptables -A
Adiciona uma regra no início da lista
  • iptables -I
Apaga uma regra
  • iptables -D
Lista as regras
  • iptables -L
Remove as regras
  • iptables -F
Zera os contadores
  • iptables -Z
Criar uma chain
  • iptables -N nomedachain
Remover uma chain
  • iptables -X nomedachain
Especifica o protocolo
  • -p  (TCP, UDP, etc)
Especifica a origem
  • -s
Especifica destino
  • -d
Especifica a interface de entrada; 
  • -i
Especifica interface de saída
  • -o
Especifica a porta de origem
  • --sport 
Especifica a porta de destino
  • --dport 
Especifica uma ação
  • -j ACCEPT / DROP / REJECT / LOG
Tópico Políticas padrão
  • -P INPUT ACCEPT; -P INPUT DROP; -P OUTPUT ACCEPT; -P OUTPUT ACCEPT
Qualquer dúvida, sugestões e críticas, podem me chamar no winbox.
Facebook: /leandrops91