Entendendo os parâmetros de filtragem

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/

Entendendo os parâmetros de filtragem

Como vimos anteriormente, usamos dois parâmetros para a filtragem dos pacotes, foram eles: “-p” para especificar o protocolo utilizado e “-s” para especificar o endereço de origem. No manual do Iptables temos uma longa versão desta parte, que vou reduzir para facilitar a leitura, dividindo em tópicos, fazendo uma pequena descrição e incluindo uma regra exemplo para melhorar o entendimento:

Endereços

Usamos dois parâmetros diferentes para especificar o endereço origem e o endereço destino. São eles:

  • -s, –source, –src: Origem;
  • -d, –destination, –dst: Destino.

É muito importante conhecer as características de manipulação de valores aceitos pra estes parâmetros. Veja abaixo:

# iptables -A FORWARD -s 10.38.11.10 -d 10.38.5.100 -j DROP

Os pacotes de origem em 10.38.11.10 destinados a 10.38.5.100 serão descartados.

# iptables -A FORWARD -s 10.38.11.0/24 -d 10.38.5.100 -j DROP

Os pacotes de origem em 10.38.11.0 ate 10.38.11.255 destinados a 10.38.5.100 serão descartados. Podemos usar valores também como www.microsoft.com, localhost e etc nas nossas regras, veja abaixo.

# iptables -A FORWARD -d ! www.microsoft.com.br -j ACCEPT

Nesta regra usamos o “!” para realizar uma inversão desta forma todos os endereços estão liberados apenas o site da Microsoft estará proibido.

Protocolos

Usamos o parâmetro ‘-p’ (ou `–protocol’) para especificar o protocolo envolvido. Como exemplo temos: `TCP’, `UDP’ ou `ICMP’, neste caso não faz diferença digitar ‘UDP’ ou ‘udp’. Os protocolos podem ser especificados também pelo seu número, que você encontra em /etc/protocols. Vejamos:

# iptables -A FORWARD -p tcp –dport 80 -j DROP

Nesta regra temos que os pacotes relacionados com o protocolo ‘tcp’ e destinados à porta 80 devem ser descartados. Não se preocupe com o parâmetro ‘–dport’. No futuro iremos tratar dele com mais detalhes. Esta regra é muito útil quando usamos um Squid, por exemplo, para impedir que usuário acesse websites sem a configuração de proxy, obrigando ele ir pela porta 3128 (padrão) do Squid para ter acesso a websites. Veja minha dica em relação a isso com mais detalhes neste link:

Interfaces

Usamos dois parâmetros para manipular o fluxo dos dados pelas interfaces (eth0, eth1, etc) são eles:

  • -i, –in-interface: interface por onde os pacotes vieram;
  • -o, –out-interface: interface por onde os pacotes estão saindo.

O -i não pode ser utilizado com a chain OUTPUT, assim como -o não pode ser utilizado com a chain INPUT. Apenas pacotes passando pela chain FORWARD têm interfaces de entrada e saída. Vejamos:

# iptables -A FORWARD -i ! eth0 -j DROP

Nesta regra temos que os pacotes que entram pela interface eth0 serão aceitos, o mesmo não vai acontecer com todas as outras interfaces. Fiquem atentos à inversão “!”. Quando queremos criar regras do Iptables para interfaces que ainda não existem, como a ppp0, fazemos da mesma forma como para as existentes, sendo que as regras só começarão a funcionar quando a interface existir. Podemos também usar a opção eth+ para aplicar as regras em todas as interfaces com uma única linha de código:

# iptables -A FORWARD -i eth+ -j DROP

Nesta regra todos os pacotes que entram pelas interfaces, eth0, eth1, eth2 e etc serão negados.

 

http://www.vivaolinux.com.br/artigo/Dominando-o-Iptables-(parte-2)?pagina=2

http://www.vivaolinux.com.br/artigo/Dominando-o-Iptables-(parte-2)

Deixe um comentário