3 de abr. de 2010

IPTables

Pessoal,

Segue mais um tutorial preparado por mim sobre o básico de iptables:
====================================================================

O Netfilter, conhecido também como iptables, é o firewall utilizado nas distribuições linux a partir do kernel 2.4.x. No kernel 2.2.x era utilizado o ipchains, e no 2.0.x o ipfwadm.

O firewall pode ser utilizado pra inúmeras atividades, como filtro de pacotes, segurança contra ataques DoS, NAT, alteração de atributos em pacotes, entre outras atividades.

Para configura-lo, é necessário lidar com as tabelas. Existem quatro tabelas no iptables:

FILTER: para filtro de pacotes vindo da máquina local, saindo dela ou sendo encaminhados por ela.

NAT: Para realização de SNAT, DNAT e MASQUERADE.

MANGLE: Para alteração de atributos em pacotes, como ToS.

RAW: Para alteração de pacotes em mais baixo nível (raramente utilizada).

Cada tabela contém CHAINS, que são verificadas dependendo da origem e destino dos pacotes. A tabela FILTER contém as seguintes CHAINS:

INPUT: Verificada quando pacotes são destinados à máquina local.

OUTPUT: Verificada quando os pacotes são originados da máquina local.

FORWARD: Verificada quando a máquina local roteia pacotes – não originados nem destinados à máquina local.

A tabela NAT contém as seguintes CHAINS:

PREROUTING: Utilizada para DNAT e redirecionamento de portas.

OUTPUT: Utilizada para NAT para pacotes originados de interfaces locais.

POSTROUTING: Utilizada para SNAT e MASQUERADE.

A tabela MANGLE contém as seguintes CHAINS:

INPUT: Pacotes serão alterados antes de entrar na chain INPUT da tabela FILTER.

PREROUTING: Usada pra modificação de pacotes antes de irem pra chain PREROUTING da tabela NAT.

FORWARD: Usada pra modificar pacotes antes de irem pra chain FORWARD da tabela filter.

OUTPUT: Consultada antes dos pacotes serem enviados à chain OUTPUT da tabela nat.

POSTROUTING: Chain consultada antes dos pacotes irem pra chain POSTROUTING da tabela nat.

Alguns parâmetros do iptables são explicados abaixo:

-n -> não faz a resolução de nomes nem consulta o arquivo /etc/services.

- v -> mostra as regras inteiras.

--line-numbers -> exibe o número das regras.

-L -> exibe as regras aplicadas.

-t tabela -> especifica qual tabela será alterada. Por default a tabela filter é usada.

- A chain -> Adiciona uma regra a uma chain específica.

- D chain [numero da linha] -> Remove uma regra de uma chain específica, especificando-a ou o número da linha.

- I chain -> Insere uma regra numa linha específica.

Nenhum comentário:

Postar um comentário