Target TTL do Iptables: Contornando bloqueios de compartilhamento

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

[ Hits: 11.058 ]

 


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

CBQ: controle efetivo

Instalando Docker no Raspberry Pi

CBQ: Controle efetivo II

Acertando o relógio do sistema via http e DNS

Kali - apt-get GPG error, invalid signature [Resolvido]

Leitura recomendada

Vindula - Solução Open Source de Intranet

Fazendo rotate do Squid automaticamente

Instalando uma placa wireless (rtl8180) sem o uso de NDISWrapper

Instalação da placa Broadcom BCM4312 no Debian Squeeze

Implantando Lixeira (recycle) e Log (full_audit) do VFS OBJECTS no Samba

  

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