Target TTL do Iptables: Contornando bloqueios de compartilhamento

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

[ Hits: 11.209 ]

 


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

Obtendo Número de Série do MikroTik Routerboard

Liberando Rádio UOL: Duas soluções

sed formatando CPF, CNPJ e datas

Desabilitando Mensagens de Login de Servidor SSH

Customizando o Slax 7

Leitura recomendada

Webmail Squirrelmail - Tradução pt_BR

Como montar um celular Moto G ou Moto E no CentOS usando MTP

Endian 2.4 - Adicionando usuário para visualizar relatórios do Sarg

Configurar driver wireless RTL 8191SEvA no Slackware 13.37

Tecla Super (tecla Windows) para todos os logins no modo gráfico

  

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