Target TTL do Iptables: Contornando bloqueios de compartilhamento

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

[ Hits: 11.043 ]

 


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

Estendendo, à quase eternidade, a vida útil do SD card no Raspberry Pi

Anaconda died after receiving signal 9 [Resolvido]

Xtree no GNU/Linux

Lógica booleana com o test

Executando comandos do Shell Bash pelo Python

Leitura recomendada

Instalando webcam Creative no Slackware

Como Corrigir os Ícones no Menu do Mate Desktop

Internet Velox ou Bridge no SuSE

Como configurar seu teclado em esperanto no Ubuntu 8.04

Hospedar um site no seu PC com DDNS

  

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