Impedindo o compartilhamento de conexão
Um provedor wireless me pediu uma solução para impedir que seus clientes compartilhassem suas conexões. E é muito mais simples que se possa supor, até pensei em postar como dica, mas dado o enorme interesse sobre o tema optei por postar como um artigo.
Entendendo o conceito
A princípio ocorreu-me limitar o número máximo de conexões por IP, mas já havia feito isso para uma empresa e achei que a solução além de ser uma gambiarra deteriorava bastante o desempenho da rede.
Lembrei-me então de algo que havia passado os olhos na documentação do Iptables que costumo acompanhar com freqüência. Um módulo chamado ipt_ttl.
Este módulo é o pivô de nossa solução. Vamos entender como ele funciona.
De forma resumida podemos entender o TTL (Time to Live) de um pacote não como uma unidade de "tempo" propriamente dita, mas como um valor que especifica quantos saltos ou hops como são chamados um pacote pode perdurar na rede. Isso é necessário para impedir que um pacote fica vagando ad eternum pela internet sendo enviado de um roteador a outro. O seu valor máximo é de 255.
Cada vez que um pacote atravessa um roteador da internet ele perde "um ponto" por assim dizer. Suponha que um pacote saiu de sua estação com um TTL de 127, que é o valor típico default da maioria dos sistemas operacionais, com destino a um determinado site e no caminho ele atravesse 6 roteadores, por cada um que ele passar ele "perderá" um ponto em seu TTL, então ele chegará a seu destinho com um TTL de 119.
Lembrei-me então de algo que havia passado os olhos na documentação do Iptables que costumo acompanhar com freqüência. Um módulo chamado ipt_ttl.
Este módulo é o pivô de nossa solução. Vamos entender como ele funciona.
De forma resumida podemos entender o TTL (Time to Live) de um pacote não como uma unidade de "tempo" propriamente dita, mas como um valor que especifica quantos saltos ou hops como são chamados um pacote pode perdurar na rede. Isso é necessário para impedir que um pacote fica vagando ad eternum pela internet sendo enviado de um roteador a outro. O seu valor máximo é de 255.
Cada vez que um pacote atravessa um roteador da internet ele perde "um ponto" por assim dizer. Suponha que um pacote saiu de sua estação com um TTL de 127, que é o valor típico default da maioria dos sistemas operacionais, com destino a um determinado site e no caminho ele atravesse 6 roteadores, por cada um que ele passar ele "perderá" um ponto em seu TTL, então ele chegará a seu destinho com um TTL de 119.
Mas é interessante a solução. Vou precisar testar aqui...
Valeu :D