Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Dominando o Iptables (parte 2)
Linux user
ctrlc
06/10/2005
No artigo anterior entendemos como as regras de firewall são tratadas no kernel, criando uma base mais sólida para a compreensão real do Iptables. Agora vamos começar a entender como construí-las em nossos scripts.
Por: Ygor Thomaz | Blog: http://www.ygorthomaz.com/
[ Hits: 76248 ]
Conceito: 10.0   2 voto(s)2 voto(s)2 voto(s)2 voto(s)2 voto(s) + quero dar nota ao artigo

Iniciando nas regras do iptables

Vamos iniciar nosso estudo de construção de regras pensando na tabela filter, onde temos três chains que são: INPUT, OUTPUT e FORWARD, as quais não podem ser apagadas.

Quando o Iptables é instalado, inicialmente não haverá regras em quaisquer chains (INPUT, FORWARD e OUTPUT) e todas as chains terão a política ACCEPT. As operações para manipular as chains são:
  1. -N: Criar nova chain;
  2. -X: Apagar uma chain vazia;
  3. -P: Mudar a política de uma chain built-in(INPUT, FORWARD, OUTPUT);
  4. -L: Listar as regras de uma chain;
  5. -F: Apagar todas as regras de uma chain (-F);
  6. -Z: Zerar os contadores de pacotes e bytes de todas as regras de uma chain.

Grande parte das nossas atividades vai estar envolvida com a manipulação das regras dentro das chains:
  1. -A: Adicionar uma nova regra na chain;
  2. -I: Inserir uma nova regra em alguma posição da chain;
  3. -R: Substituir uma regra em alguma posição da chain;
  4. -D: Apagar uma regra em alguma posição da chain (-D).
  5. -D: Apagar a primeira regra que associa (com alguma condição) numa chain.

Na prática sempre estaremos usando os comandos para adicionar (-A) e apagar (-D) com muito mais freqüência que os outros. A estrutura das regras geralmente fica assim:

# iptables [-t tabela] [opção] [chain] [dados] -j [ação]

Para melhorar nosso entendimento vamos usar nossa interface loopback (127.0.0.1), para responder ao ping que vai enviar um ICMP. Façamos o seguinte:

# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.080 ms

--- 127.0.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.080/0.080/0.080/0.000 ms

Verificamos que o ping que envia um único pacote é resolvido com sucesso. Agora vamos adicionar a seguinte regra:

# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP

Através desta regra vamos fazer com que os pacotes enviados pelo ping sejam descartados. Veja que adicionamos (-A) à chain INPUT uma regra especificando que pacotes vindos de 127.0.0.1 (-s 127.0.0.1) com o protocolo ICMP (-p icmp) devem ser mandados para DROP (-j DROP).

Vamos apagar a regra de duas formas diferentes:

# iptables -D INPUT 1

Para apagar a regra número 1 na chain INPUT, nossa única regra.

Ou fazendo desta forma:

# iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP

Verifique que a única mudança em relação a nossa primeira regra foi à mudança para "-D". Esta exclusão só vai funcionar se a regra estiver exatamente igual às passadas por -A (ou -I ou -R). Caso ocorra de haver mais de uma regra igual, a primeira da lista será apagada.

Outra opção interessante é incluir novamente a regra acima e entrar com o seguinte comando:

# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
DROP       icmp --  localhost            anywhere
...
#~: iptables -F

Veja que a regra entrada 2 foge à sintaxe citada acima. Ela mostra as regras em rigor. Já a regra três apaga todas as regras. No nosso caso temos apenas uma.

Próxima página >>




Páginas do artigo
   1. Iniciando nas regras do iptables
   2. Entendendo os parâmetros de filtragem
   3. Terminando e referências

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por ctrlc em 07/10/2005 - 07:15h:

Visitem nossa comunidade:

http://www.vivaolinux.com.br/comunidades/verComunidade.php?codigo=40

:P

[2] Comentário enviado por removido em 07/10/2005 - 08:12h:

Mas vale ressaltar se você bloquear o ping tanto na resposta como no envio e estiver usando Oracle ou outras BDs você perde conexão.. pq ?

Pois de tempo em tempo os banco se comunicam por um HELLO entre as maquinas no que resulta ICMP's ou mesmo um PING.

[3] Comentário enviado por ctrlc em 07/10/2005 - 09:50h:

Se essa informacao realmente for real e voce conseguir mais detalhes daria uma boa dica, os DBAs e Adm. de Rede agradecem :p

[4] Comentário enviado por fchevitarese em 07/10/2005 - 11:52h:

kra.. legal... manda o link da primeira parte pq eu perdi o fio da miada!!! abraços

[5] Comentário enviado por removido em 08/10/2005 - 09:39h:

Não sei se você esta tirando sarro de mim ou não... mas é sim cara se você bloquear o PING em uma maquina de DB.. é certo que seu banco para de responder as requisições.

Abraços

[6] Comentário enviado por ctrlc em 08/10/2005 - 12:28h:

Void,

desculpe se me entendeu mal. Estava falando
serio, mas estava na duvida.

[7] Comentário enviado por articulador em 10/10/2005 - 02:49h:

Mais um artigo escrito ou melhor rescrito, no que já existe..

Nada melhor do que o man iptables

[8] Comentário enviado por guri em 10/10/2005 - 16:21h:

kra tanto o primeiro quanto esse segundo artigo foram bastantes interessantes. De uma forma resumida vc mostrou como funciona muita coisa no iptables.

[9] Comentário enviado por removido em 24/11/2005 - 15:55h:

Agora sim eu entendi como o iptables funciona!
Muito obrigado.

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

Bom artigo, parabéns

[11] Comentário enviado por guesser em 18/08/2006 - 22:32h:


Quero parabenizar o Ygor pelo excelente artigo, nota 10 muito bom!!!



[12] Comentário enviado por math em 25/08/2006 - 12:32h:

Parabéns pelo artigo.
bem q vc poderia fazer uma 3º parte.


[13] Comentário enviado por aps167 em 11/02/2008 - 19:53h:

excelente ..excelente ...excelente é só o qu tenho a dizer.

Queremos a 3º parte !!!
Queremos a 3º parte !!!
Queremos a 3º parte !!!
Queremos a 3º parte !!!


Breve ..breve ..breve !!!!

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

Ygor; Como já havia comentado na 1a. parte, gostei muito, você usa uma linguagem clara e fácil, agora esta devendo um ".conf" de um FireWall, seu em uso e funcional, abordando inclusive a Conectividade da Caixa Econômica Federal, e FTP passivo!


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.