Squid - Limitar banda para determinados sites e IPs
Dica publicada em Linux / Introdução
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:
2. Configuração do Squid: editar o squid.conf
No arquivo squid.conf, insira as seguintes linhas:
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.
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 ###################
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.