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.
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!