Eu tenho um servidor proxy Squid que controla todo o tráfego de internet da minha rede.
Eu preciso de uma maneira de impedir que os usuários baixem arquivos grandes (digamos > 50MB) na minha rede. Eu bani algumas portas famosas (por exemplo, torrent), mas alguns downloads são possíveis pela porta HTTP. Obviamente não posso banir a porta 80!
Uma solução simples é limitar o número máximo de conexões simultâneas para cada IP (por exemplo, 3 conexões). É possível no Squid com essa configuração:
acl ACCOUNTSDEPT 192.168.5.0/24
acl limitusercon maxconn 3
http_access deny ACCOUNTSDEPT limitusercon
Mas essa solução tem um impacto muito ruim na navegação na web, porque qualquer navegador inteligente obtém diferentes partes de um site por várias conexões simultaneamente para acelerar a navegação na web. Mas se tivermos um número máximo de conexões, os navegadores não conseguirão obter algumas partes e o site será mostrado parcialmente e algumas partes / imagens / quadros não serão mostrados.
Então, podemos limitar o número máximo de conexões persistentes? Eu acho que esta política funcionará: Especifique o número máximo de conexões que está ativo por 10 segundos Mas Número de conexões simultâneas para cada IP é ilimitado
Mas como podemos implementar essa política quando o Squid? Com qual configuração?
UPDATE:
artifex e Tom Newton oferecidos usando uma abordagem de limitação de largura de banda para lutar contra os downloaders.
Mas a limitação de largura de banda no Squid tem uma falha: é estática e não pode mudar dinamicamente. Então, uma pessoa tem uma largura de banda limitada, não importa quantas pessoas estejam usando a internet (talvez ninguém!)
Além disso, essa solução não ajuda a impedir que as pessoas façam download. Eles ainda podem baixar, mas em uma velocidade menor.
Mas se encontrarmos uma maneira de terminar as conexões persistentes (ou qualquer conexão que esteja ativa mais que uma hora específica), fazer o download de arquivos grandes será quase impossível (sempre há algum jeito!)