Squid - Limitar banda para determinados sites e IPs

Publicado por Adriano Henrique Ferraz em 04/07/2012

[ Hits: 20.395 ]

Blog: http://www.adrianoferraz.com.br

 


Squid - Limitar banda para determinados sites e IPs



Dica destinada a configurar o Proxy Squid para limitar banda de determinados sites e para determinados IPs internos.

Pensaremos no seguinte cenário: um ou dois funcionários acessam o YouTube com muita frequência para ouvir músicas, porém, os outros colaboradores acessam para buscar ajuda ou uma vídeo-aula.

Portanto, seria injusto bloquear o YouTube para toda a rede. Pensando nisso, apresento a seguinte configuração que criei e está me atendendo perfeitamente.

1. Preparação de ambiente: criando arquivos e diretórios

Crie o seguinte diretório: /etc/squid/mod_bandwidth

Em seguida crie os seguintes arquivos:
  • /etc/squid/mod_bandwidth/ips_1k.txt
  • /etc/squid/mod_bandwidth/sites_1k.txt
  • /etc/squid/mod_bandwidth/ips_50k.txt
  • /etc/squid/mod_bandwidth/sites_50k.txt

2. Configuração do Squid: editar o squid.conf

No arquivo squid.conf, insira as seguintes linhas:

################### Delay Pools ###################
acl sites_1k url_regex -i "/etc/squid/mod_bandwidth/sites_1k.txt"
acl sites_50k url_regex -i "/etc/squid/mod_bandwidth/sites_50k.txt"
acl ips_1k src "/etc/squid/mod_bandwidth/ips_1k.txt"
acl ips_50k src "/etc/squid/mod_bandwidth/ips_50k.txt"

delay_pools 2
# Libera 1kb/s para os sites cadastrados no arquivo "sites_1k.txt"
delay_class 1 2
delay_parameters 1 -1/-1 1000/1000 1000/1000
delay_access 1 allow sites_1k ips_1k
# Libera 50kb/s para os sites cadastrados no arquivo "sites_50k.txt"
delay_class 2 2
delay_parameters 2 -1/-1 50000/50000 50000/50000
delay_access 2 allow sites_50k
delay_access 1 allow sites_50k ips_50k
################### Delay Pools ###################

Salve o arquivo e faça restart ou reload no Squid:

# /etc/init.d/squid reload

3. Final: explicação

Veja que criei dois pools (duas configurações), uma para sites onde liberei somente 1 KB/s e outra para sites onde liberei somente 50 KB/s.

Os endereços IPs que estiverem no arquivo "ips_1k.txt" acessam os sites que estão no "sites_1k.txt" somente com 1 KB/s de velocidade, da mesma forma acontece com a regra de 50 KB/s.

Obs.: Qualquer site que NÃO estiver nos arquivos "sites_1k.txt" e "sites_50k.txt", não sofrerão nenhum tipo de limitação de banda.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Instalação do antivírus Clamav em Debian Lenny

Conexão SSH entre servidores Linux sem senha

Fazendo a Instalação do MySQL no Sistema CentOS 7

Instalando BlueJ (IDE Java) no Linux

Alterar tema do GDM no Ubuntu 9.10

  

Comentários
[1] Comentário enviado por johnnyb em 11/07/2012 - 15:26h

Bacana mais vc Sabe como limitar portas, ou ips tipo para tornar a navegação das pessoas que usam o ultrasurf tao lento de maneira que ele desista de usar?

[2] Comentário enviado por gregorio_rr em 03/01/2013 - 08:10h

Bacana a dica, aprendi muito com isso e implementei sua dica recentemente na empresa onde trabalho. Como utilizamos squid autenticado, ele já bloqueia automaticamente o UltraSurf sem precisar de regras e limitei a velocidade de banda por usuários, para 1mbps e 256kbps, os administradores que terão acesso full não incluí em regra alguma e ficou 100%.

#acl banda_1mbps proxy_auth -i "/etc/squid/usuarios/banda_internet/banda_1mbps"
#acl banda_256kbps proxy_auth -i "/etc/squid/usuarios/banda_internet/banda_256kbps"

###Quantidade de Controles de banda
#delay_pools 2

###Controle #1 | 1mbps
#delay_class 1 2
#delay_parameters 1 128000/128000 128000/128000
#delay_access 1 allow banda_1mbps

###Controle #2 | 256kbps
#delay_class 2 2
#delay_parameters 2 32768/32768 32768/32768
#delay_access 2 allow banda_256kbps

No arquivo de texto "banda_1mbps" adicionei os usuarios utilizarão 1Mb, em "banda_256kbps" os usuários que farão uso de 256kb e o nome que estiver em nenhum dos arquivos utilizará 100% da banda. Lembro que configurei de maneira a acessarem qq site na velocidade definida.

Para chegar ao resultado execute a seguinte soma, saiba qual a velocidade que será destinada àquele usuário, multiplique por 1024 e divida por 8.
Ex: Para 512 de velocidade de banda ficaria assim: 512 * 1024 = 524288 / 8 = 65536
Ou simplesmente multiplique o valor por 128, que é 1024/8 --> 512 * 128 = 65536.

Espero ter ajudado!

[3] Comentário enviado por gelcimarF em 05/05/2014 - 15:10h

valeu, as tempos que procuro um opção de limitar banda por sites. sera que isso funciona com o facebook

[4] Comentário enviado por talididai em 10/02/2016 - 16:33h

Boa tarde,

O meu está funcionando muito bem.

# Limitador de Velocidade
acl sites_limite url_regex -i "/squid/etc/mod_bandwidth/sites_limite"
delay_pools 1
delay_class 1 3
delay_parameters 1 625000/625000 625000/625000 90000/90000
delay_access 1 allow sites_limite

Neste caso estou limitando velocidade para os sites que estão dentro do sites_limite.
Adicionei vídeos como youtube.



Contribuir com comentário