Como configuro um servidor proxy para uso doméstico com controle de largura de banda, opções de limite de download?

17

3 companheiros de quarto compartilham uma única conexão de 2 Mbps. Tenha um limite de download de 40 GB por mês além do qual a velocidade cai para 256 Kbps, o que é irritante.

Um dos colegas de quarto abusa da conexão baixando além do limite de sua cota. Eu tenho um roteador sem fio Netgear WNR1000v2 + modem ADSL para conectar-me à Internet. Todos nós acessamos a Internet via roteador sem fio que se conecta ao modem ADSL.

Preciso de uma solução de proxy gratuita que possa me ajudar a definir

  1. Limite de 40 GB / 3 (13 GB) para cada pessoa (cada pessoa tem 2 dispositivos - um PC e um telefone com Wifi)
  2. Controle de largura de banda uniforme - quando duas pessoas navegam na Internet, devem obter 1 Mbps cada e, quando três pessoas acessam, devem receber 2 Mbps divididos por três.
  3. Depois que cada pessoa ultrapassar seu limite mensal de downloads, eles deverão poder acessar a Internet com velocidade de 256Kbps apenas ou menor.
  4. Posso ter um firmware personalizado no meu roteador sem fio? (Ou) Preciso de um servidor proxy?

Por favor, aponte-me para qualquer tutorial relevante (por exemplo, com o Squid).

Atualização: não estou procurando apenas soluções de roteador / firmware, estou aberto para executar um servidor proxy em um dos PCs da rede ou em qualquer outro tipo semelhante de solução.

Rajavanya Subramaniyan
fonte

Respostas:

14

Não faça isso com o Squid: você precisa de controle para tudo, não apenas para HTTP na porta 80.

A resposta requer iptables com a opção '--quota', que implementa cotas de rede diminuindo um contador de bytes com cada pacote. O argumento de "--quota" é um valor em bytes.

Deve haver uma cadeia para cada usuário. A primeira regra da cadeia faz uma contagem regressiva de uma cota de 13 GB para pacotes a partir de 192.168.0.2 e aceita o pacote se estiver abaixo da cota:

iptables -A INPUT -p tcp -s 192.168.0.2 -m quota --quota 13958643712 -j ACCEPT

A segunda regra da cadeia classifica pacotes com excesso de cota em uma classe tc de sua escolha:

iptables -A INPUT -p tcp -j CLASSIFY --set-class 1:12

Então, tudo é modelagem clássica de tráfego: http://tldp.org/HOWTO/Traffic-Control-HOWTO/

Obviamente, você precisa usar a alocação de IP estático ou garantir que o DHCP aloque endereços corrigidos pelo endereço MAC do dispositivo - e você deve bloquear todos os endereços, exceto os identificados pelos dispositivos pertencentes a um dos três usuários.

A propósito, você menciona que "quando duas pessoas navegam na Internet, elas devem ter 1 Mbps cada, e quando três pessoas acessam, elas devem receber 2 Mbps divididos por 3", mas você pode fazer isso melhor ao configurar sua hierarquia de classes de tráfego : sua exigência deve ser "quando duas pessoas navegam na Internet, elas não devem ter menos de 1 Mbps cada e, quando três pessoas acessam, elas não devem ter menos que 2 Mbps dividido por 3", para que cada uma possa obter mais se o outras pessoas usam menos do que o rendimento garantido ... E tc permite que você faça isso!

Como seu roteador é suportado por openwrt e dd-wrt, você tem todas as ferramentas necessárias!

Jean-Marc Liotier
fonte
Melhor resposta impressionante! muito obrigado .. mas meu roteador não é suportado por openwrt ou dd-wrt, apenas v1 e v3 da mesma série são, o meu é v2. Então, analisarei como usar uma máquina antiga no mesmo local.
Rajavanya Subramaniyan
4

Não me lembro de imediato se ele suporta todos os recursos mencionados, mas posso recomendar o pfSense como uma solução de roteador. É pequeno o suficiente para rodar em um disco USB e fornece uma série de soluções de compartilhamento. Eu tinha o complemento squid instalado, por exemplo, para fornecer um proxy transparente a todos os servidores internos e até mesmo em um pacote instalado para obter relatórios detalhados do uso da rede.

Também ofereço recursos do tipo cyber café, por exemplo, uma página de logon para os hóspedes usarem o sistema. É fácil de configurar em uma VM e há muita documentação sobre como instalá-lo com várias configurações diferentes.

Eu usei isso em casa com outras 8 máquinas. Você pode descobrir que, com a configuração correta, pode não ser necessário introduzir os limites tão fortemente quanto você.

BinaryMisfit
fonte
O pfSense é ótimo para uma configuração rápida e fácil com uma interface da web. Se você quiser aprender mais, basta instalar o OpenBSD e configurar você mesmo, é muito divertido aprender.
SleighBoy
0

Seu Netgear WNR1000v2 parece ser um dispositivo semi-burro. Tudo o que descobri é que você pode ativar a QoS baseada em porta ou MAC. Você pode definir a QoS como "baixa" para o seu companheiro de raiz que se comporta mal.

Qualquer outra coisa requer mais "cérebro" - isto é, um proxy (inteligente) adequado.

Nils
fonte
Não vejo as opções de QoS em nenhum lugar do painel de controle do WNR1000v2; também consultei o manual completo do usuário. Você poderia explicar exatamente onde encontrar e configurar isso, por favor?
Rajavanya Subramaniyan
Existe um PDF descrevendo a QoS na página
Nils