Aldeia Numaboa
Um portal diferente em Português do Brasil
Informática da Aldeia

Tutoriais
Home Informática Linux Configurações iptables para iniciantes

Na Aldeia

Há 112 visitantes online

3630 registros
0 hoje
14 nesta semana
4 neste mês

Boas vindas: flor

Estatística

Membros: 3639
Artigos: 1045
Links: 90
Leituras: 6680845

Login



Kanji da hora




Faça contato






Qui

01

Jan

2009


01:46

iptables para iniciantes PDF Imprimir Indique esta página
(3 votos, média 3.0 de 5)
Escrito por vovó Vicki   


Índice do Artigo
iptables para iniciantes
Aprendendo na prática
Mais um exemplo
Todas as páginas
Iniciantes

O iptables é uma ferramenta que pode ser usada para controlar o Netfilter de várias distribuições Linux. O Netfilter é um firewall embutido no kernel e o iptables é uma ferramenta que permite estabelecer regras para este firewall.

Este tutorial trata apenas dos aspectos básicos das tabelas do iptables e da sintaxe para a criação de regras.

O Netfilter

Como você já deve saber, toda comunicação numa rede TCP- IP é feita através de pacotes. O Netfilter trata apenas de regras. Estas regras são aplicadas aos pacotes. Cada regra é criada para fazer alguma coisa, e esta coisa é chamada de alvo. As regras pertencem a vertentes (chains), que são usadas para agrupar regras. Imagine as vertentes como uma correnteza que carrega pacotes, onde cada vertente leva determinado tipo de pacote. Cada vertente pertence a uma tabela.

Alvos das Regras

Como já disse, as regras atuam sobre os pacotes. Se uma regra for aplicável a um pacote, então o alvo é executado. Os alvos pré-existentes são ACCEPT (aceitar), DROP (descartar), QUEUE (fila de espera) e RETURN (retornar ou devolver).

As cinco vertentes pré-existentes

Imagine seu sistema como uma caixa preta. Fora desta caixa preta fica um processador que "caça" todos os pacotes destinados ao seu sistema antes mesmo deles alcançarem a interface de entrada - uma placa ethernet, um modem, uma antena de wireless ou qualquer outra interface de comunicação. Esta área é chamada de pré-roteamento. Como os pacotes não podem ser alterados pelo sistema antes deles entrarem no sistema, é mais fácil imaginar que eles possam ser alterados nesta área de pré-roteamento de modo que, quando alcançarem a interface, já tenham sido modificados e estejam prontos para serem roteados. Desta forma, as regras da vertente PREROUTING podem ser aplicadas antes que os pacotes entrem no sistema.

Dentro do sistema existem mais três vertentes: INPUT (entrada), FORWARD (redespacho) e OUTPUT (saída). Todos os pacotes que chegam são levados pela "correnteza" INPUT ou FORWARD. Os que estão apenas em trânsito são levados pela vertente FORWARD, os que são destinados para o sistema local vão pela vertente INPUT. Os pacotes provenientes do sistema local transitam apenas pela vertente OUTPUT.

Quando os pacotes saem da "caixa preta" e ainda não abandonaram a máquina, eles podem ser levados por uma última vertente - a POSTROUTING. Esta é a área de pós-roteamento, onde o sistema também não pode mais alcançar os pacotes.

As tabelas do iptables

O framework do iptables é dividido em 3 tabelas separadas:

  • tabela filter,
  • tabela nat (Network Address Translation - Tradução de Endereços de Rede) e
  • tabela mangle (lustrar, dar brilho).

Cada uma destas tabelas possui correntes ou vertentes (chains) mostrando os caminhos que devem ser seguidos ou as tarefas que devem ser realizadas.

O filtro

A tabela filter é a tabela padrão e uma das mais utilizadas. É usada para identificar e tratar os pacotes que passam pelo firewall. Esta tabela possui três vertentes: INPUT (entrada), OUTPUT (saída) e FORWARD (redespacho), ou seja, é o coração da "caixa preta" do sistema. A vertente de entrada trata os pacotes destinados ao sistema local, a de saída filtra os pacotes que estão saindo do sistema local e a vertente de redespacho mostra o que deve ser feito com os pacotes que estão apenas em trânsito porque se destinam a outra máquina.

atencao Um dado pacote não pode transitar por mais de uma vertente, ou seja, o pacote que estiver na "correnteza" INPUT não pode pular a a vertente FORWARD e vice-versa.

Se você quiser saber se sua máquina está ou não filtrando pacotes, chame o iptables para listar a tabela de filtragem com -L (lista). Se você ainda não definiu nenhuma regra de filtragem, o resultado mostra apenas as vertentes vazias:

# iptables -L
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

Info Nada impede identificar a tabela no comando usado: iptables -L -t filter tem o mesmo efeito que iptables -L.

A tabela NAT

Esta tabela é usada para alterar o endereço IP e/ou portas de destino. Suas vertentes são PREROUTING (pré-roteamento), POSTROUTING (pós-roteamento) e OUTPUT (saída).

Na vertente PREROUTING podemos identificar a origem do pacote (interface de entrada) além do endereço IP e a porta à qual se destina. Antes do pacote ser roteado (quando ainda está na área de pré-roteamento) podemos alterar o IP e também a porta que deve recebê-lo - em outras palavras, pode-se mudar a rota do pacote direcionando-o para uma outra máquina e/ou para uma outra porta na mesma máquina ou numa máquina diferente.

A vertente OUTPUT serve para dar saída aos pacotes e para analisá-los antes que saiam da máquina.

Na vertente POSTROUTING podemos alterar o IP/porta de origem do pacote. Também podemos indicar a interface de saída. Tudo isto acontece depois do pacote ter sido tratado na vertente OUTPUT e um pouquinho antes de ser despachado, ou seja, quando está na área de pós-roteamento.

Se você quiser saber se a sua máquina está redirecionando pacotes, chame o iptables com o comando -L -t nat. Se nenhuma regra tiver sido definida, a listagem deve ser a seguinte:

# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Apenas para reforçar: para listar a tabela NAT, é preciso especificá-la com a diretiva -t (tabela). No caso da tabela de filtragem isto não foi preciso porque o filtro é a tabela padrão do iptables.

A tabela mangle

Esta tabela serve para guardar as regras que devem ser seguidas para "escovar" ("lustrar") pacotes, ou seja, fazer pacotes "mexidos". Mas quem é que quer ou precisa dar uma ajeitada em pacotes? O motivo mais comum é alterar o campo Tipo de Serviço (Type Of Service - TOS). Este campo é lido pelo kernel do Linux e altera a prioridade do pacote.

Como o uso da tabela mangle é pequeno e depende de conhecimentos mais especializados, não vou entrar em maiores detalhes por que ainda temos muito pela frente sorriso

Em todo caso, agora que você já sabe como descobrir as vertentes de uma tabela, que tal dar um iptables -L -t mangle?



Última atualização ( Sáb, 03.01.2009 20:47 )
 

Topo

Topo

Exceto onde especificamente citado, todo material deste site está sob Licença Creative Commons