Squid - Limitar banda para determinados sites e IPs

Publicado por Adriano Henrique Ferraz em 04/07/2012

[ Hits: 20.192 ]

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

Instalando modem Lucent no Slackware 11 com Kernel 2.6x

openSUSE - Guia pós-instalação

Palestra - A história do Viva o Linux

Como habilitar execução do sudo no Cron

Bloqueando e liberando domínios com Firewall IPFW

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts