Pular para o conteúdo

Squid - Limitar banda para determinados sites e IPs

Dica publicada em Linux / Introdução
Adriano Henrique Ferraz adrianohf
Hits: 23.261 Categoria: Linux Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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 ###################
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Nenhuma dica encontrada.

Conectividade Social - conexão segura

Livro gratuito - Linux comandos básicos e avançados

Adicionar Google Friend Connect no Google Sites

Instalando uudecode

Uma nova rede de IRC brasileira direcionada ao Software Livre

#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

Entre na sua conta para comentar.