Limitando download com Squid no Linux

Introdução

Pré-requisitos

  • Squid compilado com suporte a Delay Pools;
  • Um firewall redirecionando o tráfego de entrada na porta 80 para a porta do Squid (3128);

Crie uma acl para identificar sua rede interna no arquivo squid.conf, lembrando que não é necessário todo o endereço da sua lan, se quiser limitar somente para um ip coloque ele na regra abaixo: 
 
acl minha_lan url_regex -i 192.168  
 
Crie outra acl para identificar as extensões de arquivos que você deseja limitar. Você pode especificar qualquer extensão de arquivo, mas lembre-se que não precisa limitar .html ou .gif, pois esses arquivos dificilmente congestionariam sua banda.  
 
acl palavras_magicas url_regex -i ftp .mov .mpeg .wav .tar .mp3  
 
Você também pode limitar sua banda durante o dia e liberar durante a noite, se quiser faca o seguinte (considerando que o limite ocorrerá das 9:00hs às 23:00hs):
 
acl hora time 09:00-23:59  
 
Agora que temos diferentes delays pools (minha_lan e palavras magicas), faça o seguinte:  
 
delay_pools 2
 
# agora faça o controle de banda para a primeira  
fazendo o seguinte:
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1  
# -1/-1 significa que não teremos limites para a  
delay pool 1
 
delay_access 1 allow minha_lan # lembra da acl da sua lan (192.168.*)?
 
# já para a segunda delay pool, faça o seguinte:
delay_class 2 2  
delay_parameters 2 3000/3000 3000/3000
# isso limita sua banda para +- 64Kbits para  
download, para maiores informações consulte a documentação do Squid,  
lembrando que esses valores são em bytes.
 
# confirmação para o tempo:  
delay_access 2 allow dia
delay_access 2 deny !dia
 
# e sua felicidade:
delay_access 2 allow palavras_magicas  
 
Autor: Wesley Quintanilha  
LinuxTEC