Target TTL do Iptables: Contornando bloqueios de compartilhamento

Publicado por Carlos Affonso Henriques. em 01/12/2008

[ Hits: 11.035 ]

 


Target TTL do Iptables: Contornando bloqueios de compartilhamento



Algum tempo atrás postei aqui o artigo Impedindo o compartilhamento de conexão. Pois bem! Agora vou falar sobre o alvo ou target TTL do Iptables, que permite o caminho inverso, ou seja, contornar um bloqueio de compartilhamento por ttl.

Definição

Cada vez que um pacote atravessa um roteador ele "perde", por assim dizer, um ponto de seu TTL de origem, isto foi implementado no TCP/IP com a finalidade de impedir que pacotes ficasses vagando na internet de um roteador a outro indefinidamente.

A manipulação de TTL tem inúmeras aplicações além de contornar eventuais bloqueios, pode-se por exemplo restringir o acesso de uma rede corporativa desta maneira. Imagine uma VPN entre matriz e filial por exemplo, pode-se restringir a capacidade de envio de pacotes para fora da VPN, ou mesmo estabelecer bloqueios muito eficientes. Emfim, em GNU/Linux os limites são a inventividade do administrador ou desenvolvedor.

O target TTL e suas sintaxes

Os chains que permitem ser direcionados para o target TTL são PREROUTING, POSTROUTING e FORWARD.

Pela documentação do Iptables reza que no chain PREROUTING pode-se especificar qual interface de rede em que se deseja que o alvo seja aplicado, porém em meus experimentos práticos constatei que este recurso funciona para pacotes que saem de uma determinada interface de rede (-o ethX) nos chains POSTROUTING e FORWARD.

No chain PREROUTING não é possível especificar uma interface de rede. Em meu caso estou usando o Iptables 1.4.0 sob Kernel 2.6.25.4 e não testei a solução em versões mais recentes do Kernel que nesta data 23/11/2008 encontra-se na versão 2.6.27.7.

O target TTL possui três parâmetros:
  • --ttl-set n - Onde n é um valor de TTL que será arbitrado entre 0 e 255;
  • --ttl-inc n - Onde n é um valor de TTL que será incrementado entre 1 e 254, embora possa ser incrementado até 255 não há sentido nisso, pois o TCP/IP suporta um ttl máximo de 255;
  • --ttl-dec n - Onde n é um valor de TTL que será decrementado entre 1 e 255.

A sintaxe:

# iptables -t mangle -A PREROUTING -j TTL --ttl-dec 40

Notem o que eu mencionei acima sobre especificar interfaces de rede no chain PREROUTING.

# iptables -t mangle -A FORWARD -o eth0 -j TTL --ttl-set 128

No chain FORWARD apenas podem ser especificadas interfaces de saída. Uma coisa muito interessante sobre aplicar o target TTL no chain FORWARD é que ele não faz decréscimo de um ponto no TTL quando um pacote oriundo da rede interna o atravessa.

# iptables -t mangle -A POSTROUTING -d 192.168.7.115 -j TTL --ttl-dec 30

A regra acima decrementa 30 hops do ttl do host 192.168.7.115. A target TTL só faz manipulação de ttl em hosts ou redes no chain POSTROUTING. sempre -d para redes locais e -s para redes remotas. Observem no exemplo seguinte.

# iptables -t mangle -A POSTROUTING -s 200.221.2.45 -j TTL --ttl-dec 30

A regra acima decrementa 30 hops do ttl do host 200.221.2.45.

Espero ter ajudado!

Bom trabalho a todos.

Outras dicas deste autor

rc.local no Arch Linux

Uma maneira diferente de escrever o dhcpd.conf

Comando sed para formatar datas

Eliminando o splash screen do KDE

Permissões persistentes em portas seriais

Leitura recomendada

Como habilitar execução do sudo no Cron

Como instalar o Thunderbird 3.1.1 no Ubuntu 10.04

Projeto Spider - Estendendo o Synfig

Conecte seu celular Nokia N70 ao OpenSuSE

Como realizar um ataque de DOS com a ferramenta T50 / como derrubar um site

  

Comentários
[1] Comentário enviado por idfelipe em 02/12/2008 - 01:53h

Muito Bom...
Thanks!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts