Dominando o iptables (parte 1)

Iremos iniciar nossos estudos em iptables, esta poderosa ferramenta para fabricação de firewalls baseados em GNU/Linux. Vamos tratar de suas características e entender como os pacotes são tratados pelo kernel. Veremos também algumas diferenças entre o iptables e ipchains, que são de extrema importância para o entendimento de quem já usava esse último.

[ Hits: 506.993 ]

Por: Ygor Thomaz em 07/04/2005 | Blog: http://www.ygorthomaz.net/


IPTABLES e suas principais características



Antes de tratarmos do IPTABLES, vamos conhecer o netfilter. O netfilter é um framework dentro do KERNEL Linux com o qual outras coisas (como o módulo do iptables) podem conectar-se. Se você estiver na dúvida em relação a existência ou atividade do seu netfilter no KERNEL, pode checar a opção: 'Y (SIM)' para CONFIG_NETFILTER na sua configuração do KERNEL.

O IPTABLES é uma ferramenta de edição da tabela de filtragem de pacotes, ou seja, com ele você é capaz de analisar o cabeçalho (header) e tomar decisões sobre os destinos destes pacotes. O IPTABLES não é a única solução existente para controle desta filtragem, temos ainda as antigas ipfwadm e ipchains, dentre outros.

É importante saber que no Gnu/Linux a filtragem de pacotes está implementada diretamente no KERNEL. Por isso não trataremos de sua instalação neste artigo, pois a maioria das distribuições vem com ele habilitado como um modulo ou diretamente compilado no KERNEL.

O ideal é que seja usado um LINUX acima do 2.4, porque foi nesta versão que houve um duro trabalho na reedição do KERNEL junto ao IPTABLES.

O iptables é um firewall com estado, ou seja, um firewall stateful. Os anteriores eram stateless. O modo de filtragem 'Stateless' tende a tratar cada pacote roteado pelo firewall como pacotes individuais, sendo mais simples de implementar e por terem uma resolução mais rápida que um do tipo stateful, podem ser usados para obterem um desempenho melhor em determinadas situações onde existem regras de nível de rede bem simples.

O tipo de filtragem stateful (IPTABLES) cria um poderoso sistema de firewall que se "lembra" das conexões entrantes, evitando ataques do tipo Stealth Scans, que trazem flags especiais para técnicas de port scanning, como o uso da flag ACK para enganar tais firewalls. Não vamos entrar em detalhes sobre o funcionamento deste ataque ou do tipo stateful, porém podemos afirmar que usando stateful trataremos de forma mais inteligente as atividades da rede, indo até mais longe do que o conceito de filtro de pacotes (Packet Filter) devido a esta característica.

Rusty é o programador responsável e mantenedor do Linux IP Firewall e a WatchGuard (http://www.watchguard.com/) foi a empresa responsável por suprir as despesas deste programador para realizar este excelente trabalho ao lançar o IPCHAINS.

    Próxima página

Páginas do artigo
   1. IPTABLES e suas principais características
   2. Um simples script do Rusty
   3. Conhecendo um pouco das tabelas
   4. Entendendo como os pacotes passam pelos filtros
   5. Diferenças entre iptables e ipchains
   6. Terminando e referências
Outros artigos deste autor

Programação orientada a objetos e o Java (parte 5)

Instalando o QMail e ferrramentas de administração

Programação orientada a objetos e o Java (parte 7)

Manipulando erros com try catch finally

Dominando o Iptables (parte 2)

Leitura recomendada

L7-filter (funcionando) no Slackware 10.2

Servidor Firewall-Proxy utilizando CentOS, IPtables, Squid, DHCP, DNS e outros

Controle de banda com Slackware 10 + CBQ + Iptables + DHCP

Análise da distribuição Mandrake Security

Como criar um firewall de baixo custo para sua empresa

  
Comentários
[1] Comentário enviado por leoberbert em 07/04/2005 - 13:10h

Cara seu artigo ficou muito bom, de facil entendimento para todos.

Parabens,

Leonardo Berbert

[2] Comentário enviado por kandrade em 07/04/2005 - 13:47h

muito bom!!!


[3] Comentário enviado por vagnerd em 07/04/2005 - 14:25h

massa o artigo!

[4] Comentário enviado por morvan em 07/04/2005 - 14:49h

Excelente artigo. Além de muito bem escrito, o autor não relegou a didática. Ressalte-se também o esmero gramatical.

[5] Comentário enviado por xleonardox em 07/04/2005 - 14:54h

Excelente trabalho, Ygor! Texto elucidativo e bem escrito!

[6] Comentário enviado por michelpereira em 07/04/2005 - 16:34h

O correto não é falar que o firewall é "Stateless", em documentações oficiais você os denomina como "firewall de filtro de pacotes". Que são aqueles firewalls que apenas analisam o IP origem, porta origem -> IP destino, porta destino.
O netfilter não pode ser denominado "100% stateful" pois ele apenas lembra do estado da conexão, um firewall stateful ele sabe como o protocolo funciona (caso do FW1).

[7] Comentário enviado por ygorth em 07/04/2005 - 17:26h

Esta foi umas das razoes que coloquei que o iptables vai um pouco alem do conceito de packet filter e citei o "lembrar", como disse nao ia entrar em detalhes sobre stateful ! (:

[8] Comentário enviado por agk em 07/04/2005 - 18:16h

Muito bom o artigo, pra quem está começando ou mesmo para os mais avançados recomendo a leiturta do packet-filtering-HOWTO.
O bom mesmo é sempre ver a documentação que acompanha o programa antes de começar a "aventurar-se nele".
[ ]'s.

[9] Comentário enviado por shocker em 07/04/2005 - 18:31h

Muito bom!
Parabéns!

[]'s

[10] Comentário enviado por sergiotucano em 07/04/2005 - 21:06h

Ola Ygor , tudo tranqilo rapaz?!

Seguinte , desde que me iniciei no Linux tive curiosidade por esse tipo de coisa mas sou totalmente ignorante neste assunto.
Você ou alguem aqui mais entendido do que eu poderia me recomendar uma apostila para eu poder baixar? !

Valew ! o artigo esta indo legal !

FALOW !

[11] Comentário enviado por ygorth em 07/04/2005 - 22:05h

Sergio,

eu tambem gostaria de conhecer um livro ou apostila de boa qualidade sobre IPTABLES em portugues. O que me motivo a fazer esta serie de artigos foi justamente a possibilidade de sair pesquisando na internet em diversos lugares e tentar fazer algo unico com as coisas que sentia falta nas diversas documentacoes sobre este assunto.

[]'s

[12] Comentário enviado por arantes_alex25 em 08/04/2005 - 11:33h

thomaz.
gostaria se pode me ajudar um asunto totalmente diferente eu comecei a pouco tempo a mecher com linux tenho linux instalado em mercado com servidor mais acho eu muito simples. nao enho controle de usuaria isso me ta dando um dor de cabeca grande , porque cada um grava o que no servido eu gostaria de um sugestao... como autenticacao e cotas liberar no servido somente a pasta que ele pode usar ... meu me desculpa por esta te enxendo .... obrigado

[13] Comentário enviado por agk em 08/04/2005 - 14:12h

Em relação ao comentário do Sérgio (controlc):
Tem vários livros muito bons sobre iptables, só pra citar um deles, que, na minha opinião é muito bom para iniciantes, pois aborta desde os conceitos até alguns práticas mais avançadas é o:
DOMINANDO LINUX FIREWALL IPTABLES de URUBATAN NETO.
E o preço também é em conta. Pra quem tiver interesse vão aí alguns links:
http://www.linuxmall.com.br/index.php?product_id=1872
http://www.livrosdeinformatica.com.br/livros_template.asp?codigo_produto=6224

OBS: não tenho interesse nenhum em fazer propaganda de ninguém, estou apenas tentando colaborar com os colegas que procuram informações de qualidade sobre iptables.
[ ]'s.

[14] Comentário enviado por candiao em 11/04/2005 - 20:27h

Olá Pessoal !
Alguém poderia me ajudar, e o seguinte gostaria de colocarum firewal em minha lan somente para filtrar skype, msn e p2p. ok compilei com suporte p2p e tal. Mas estou em dúvida e o seguinte:

----host 10.0.1.50--->>> eth0|Firewall|eth1<<<---Roteador
: : : : :
gw 10.0.1.1 10.0.1.2 10.0.1.3
10.0.1.1 : :
gw gw
10.0.1.3 10.0.1.3
Esta máquina vai apenas filtrar o trafego pro roteador e ele encaminha os pacotes ok. e vou precisar usar postrouting, prerountig ou masquerade ? Estou em duvida como repassar os pacotes para eth1 e tal .. fiz os teste assim mas ..meu sever mail não consigo conectar e tambem minha web ... alguem poderia me dar uma luz ... estou em uma lan e vou sair para web via roteador ok ... mas outro roteador não este este so encaminha.
Obrigado.

[15] Comentário enviado por removido em 20/02/2006 - 14:10h

O artigo está bom para o primeiro contato com o iptables.
Parabéns.

[16] Comentário enviado por dacruzfabio em 02/02/2007 - 15:43h

adorei!!!!
o artigo está muito bom....

[17] Comentário enviado por wolrk em 28/03/2009 - 12:27h

Tenho um servidor com duas placa de rede.

eth0 - modem
eth1 - 192.168.1.1

eth0 para rede local

eth1 para o modem

Tenho o proxy com Squid

192.168.1.1:5050

fiz a nat, esta funcionando tudo perfeito porem qando vem a parte de libarar porta e que esta o problema

quero liberar as porta p2p para a galera baixar musicas emule, dramule etc...

já dei o comando

iptables -A INPUT -p tcp -s 192.168.1.0/255.255.255.0 --dport 1025-65535 -j ACCEPT

o programa diz que não esta conectado no servidor.

E ai?

[18] Comentário enviado por lmancini em 11/05/2010 - 19:31h

Oi.. alguem pode me ajudar ?

Tenho no loadbalance

Placa Eth3

IP 10.0.0.2
IP Reverso 200-103-199-99.pgosm700-2.e.brasiltelecom.net.br
Data 18h39min - 11/05/2010

Preciso que ao executar o comando [telnet 189.189.189.189] o mesmo saia por esta placa de rede, consequentemente sairia pelo IP da brasiltelecom.

Como faço no IPTABLES para configurar ?

Vc pode me ajudar ? Pois o cara que configurou o loadbalance não quer fazer isto. "fdp".

vlw galera !

[19] Comentário enviado por igoiglesias em 06/06/2010 - 11:46h

Otimo Artigo Vlw
















!!!

[20] Comentário enviado por rjdiniz em 06/11/2010 - 19:33h

Muito Bom! Gostei da sua linguagem, fácil e clara...

[21] Comentário enviado por emanoel.epg em 11/11/2010 - 08:43h

Ola meu Nome Emanoel , preciso tirar algumas duvidas sobre o iptables se alguem puder me ajudar eu agradeço , vou explicar minha situacao , hoje nao trabalho com redes ja trabalhei e ja fiz varios scripts de firewall usando o Iptables , gosto muito do linux e de seus recursos , tanto que quando se trata de segurança velocidade como solucao so uso linux, a questao e a seguinte ontem estava na faculdade e eu tinha que apresentar um trabalho sobreuma ferramenta de segurança , ai por ja ter trabalhado com IPTABLES eu sugeri apresentar sobre ele em cima do que eu ja tinha trabalhado so que meu professor criticou meu metodo de explanar o assunto , ele me perguntou se meus scripts tinha alguma extencao tipo arquivo.sh eu disse que nao que no precisava e que eu agendava meus scripts atravez do agendador de tarefas do linux que o crontab e me questionou tb so o iptables precisar do squid para liberar acessos e demais coisas em fim , eu nao conheço o squid sempre que precisei fazer um servidor de segurança eu fiz so usado regras do iptables que diga-se de passagem muito bom ate entao nao usaria outra solucao, mas em fim eu disse para ele que no iptables eu conseguiria manipular todos tipos de segurancao bloquei acesso sem depender de nenhuma outra ferramenta , quero perguntar a vcs aqui deste forum se eu falei alguma besteira, pois preciso dar um retorno para o professor e para sala de aula porque em especial meu grupo que apresentou foi prejudicado, por ter falado a verdade , sei la talvez ele queria uma cosia mecanica como e na maioria das vezes a pessoa le um assunto que nem conhece e quer falar dele ali na frente com se conhece!!!, desde ja agrdeço quem puder colaborar comigo!!!

[22] Comentário enviado por rodrigo.a.sc em 24/11/2011 - 04:21h

Tenho uma duvida que pode parecer meio tola, mas se eu instalo um debian do zero e adiciono uma regra pelo iptables ... , onde encontrarão estas regras para que eu possa altera-las manualmente, e como eu monto um script de execução das regras pelo init.d
Outra Duvida, como eu removo uma regra especifica, ex :
#iptables -nvL

0 0 ACCEPT 0 -- * * 192.168.10.1 0.0.0.0/0 << -- Quero Deletar Esta Regra.
0 0 ACCEPT 0 -- * * 192.168.11.1 0.0.0.0/0 << -- Quero Mudar Esta Regra para o ip destino : 192.168.10.0 /24


No caso se hipoteticamente eu quero deletar a regra
"0 0 ACCEPT 0 -- * * 200.155.9.74 0.0.0.0/0" ou sobre escreve-la, como eu iria proceder ??


192.168.10.1= ip hipotetico publico
192.168.11.1=ip hipotetico publico

[23] Comentário enviado por jackson1970 em 21/12/2011 - 15:04h

endereço http://www.iptablesbr.cjb.net/ está quebrado

[24] Comentário enviado por cr4sh0v3rr1d3 em 05/05/2013 - 23:32h

cara ta incompleto esse teu artigo...falto muita mais muita coisa quem tinha esperança de aprender iptables de forma indolor tenho certeza que ficou a ver navios...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts