Squid - Implementando controle de banda

Publicado por Kleber Pardal em 13/04/2005

[ Hits: 83.112 ]

 


Squid - Implementando controle de banda



Com o recurso de limite de banda no Squid você pode priorizar a banda para certo grupo de usuários. Dessa forma não corremos o risco de um diretor da empresa estar necessitando baixar um email importantíssimo pelo link, enquanto um estagiário puxa o último episódio de sua mini-série favorita.

Edite o arquivo de configuração do Squid (squid.conf) e adicione as seguintes linhas:

# Crie uma acl com as extensões que serão aplicadas o filtro
acl download url_regex -i ftp .mov .mpeg .wav .tar .mp3 .exe .zip .rar

# Crie outra acl com os IPs que serão aplicados à regra
acl chefes src 192.168.0.22
acl estagiario src 192.168.0.30

delay_pools 2
# Significa que teremos dois controles de banda

# Primeiro controle
delay_class 1 2

# -1/-1 significa que não teremos limites para a delay pool 1
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow chefes

# Segundo controle
delay_class 2 2

# Limita a sua banda para +- 64Kbits
delay_parameters 2 3000/3000 3000/3000
delay_access 2 allow estagiario

Se você não quer que a pessoa faça download da net é só trocar:

delay_parameters 2 3000/3000 3000/3000

Por:

delay_parameters 2 0/0 0/0
Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Squid x Hotmail

Montando um roteador com um 486

Proxy no Google Chrome e Vivaldi

Adquira a Linux Magazine Community

Atualizando para o Firefox 2.0

  

Comentários
[1] Comentário enviado por jeffestanislau em 13/04/2005 - 11:00h

Boa,
Ficou bem simples a explicação!

[2] Comentário enviado por kleberpardal em 18/04/2005 - 10:57h

Obrigado jeffestanislau. Coloquei esse recurso aki na empresa e funcionou bem, Você pode fazer tambem um arquivo txt com as extenções que deseja limitar o download

[3] Comentário enviado por mgoncalves em 09/05/2005 - 17:58h

Amigos,
Vi o tutorial para controle de banda e pretendo testar aqui na empresa. uma duvida, é possivel controlar tambem a banda para programas do tipo Skype ou MSN?

Obrigado
Mauro Goncalves

[4] Comentário enviado por micato em 06/04/2006 - 16:34h

Amigo e se eu precisar limitar a banda para uma faixa de IP´s, como proceder ?

[5] Comentário enviado por kleberpardal em 04/07/2007 - 13:45h

Mauro,
No caso do Skype e Msn acho dificil o controle de velocidade. Para um controle mais profundo é necessário uma aplicação de sock's para tais.

[6] Comentário enviado por kleberpardal em 04/07/2007 - 13:49h

Micato,
Pode-se usar:
acl chefes src 192.168.0.10-192.168.0.20/24

[7] Comentário enviado por marcusaugustolim em 09/07/2007 - 12:06h

cara, gostei ficou muito claro pra mim.... muito bom mesmo me ajudou legal... valeu...

[8] Comentário enviado por marceloespindola em 12/07/2007 - 00:29h

Depois de instalar o cbq é bom ter uma ferramenta de teste eu tenho um velocimetro em flash com os arquivos fontes abertos no seguinte endereço: http://marcelolinux.blogspot.com/2007/07/tenha-seu-prprio-velocmetro-em-flash.html

[9] Comentário enviado por kaiomix em 18/07/2007 - 03:52h

amigo!! apliquei os comandos no meu squid.conf e não rodou!!! eu poderia te mandar meu squid.conf em txt para vc ver o q eu estou errando??? ai está

http_port 192.168.100.1:3128

acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

cache_mem 120 MB
cache_swap_low 90
cache_swap_high 95

maximum_object_size 10024 KB
minimum_object_size 1 KB
maximum_object_size_in_memory 128 KB

ipcache_size 1024
ipcache_low 90
ipcache_high 95

cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF

digest_rebuild_period 30 minutes
digest_rewrite_period 30 minutes

cache_dir ufs /usr/squid/cache/squid1 1000 64 256
cache_dir ufs /usr/squid/cache/squid2 1000 64 256
cache_dir ufs /usr/squid/cache/squid3 1000 64 256
cache_dir ufs /usr/squid/cache/squid4 1000 64 256

cache_access_log /usr/squid/logs/access_log
cache_log none
cache_store_log none

emulate_httpd_log off
pid_filename /usr/squid/logs/squid.pid
visible_hostname Servidor Linux
cache_mgr root@server.local
cache_effective_user nobody
cache_effective_group nobody

dns_nameservers 192.168.100.1

acl html rep_mime_type text/html
reply_body_max_size 0 allow html

acl all src 0.0.0.0/0.0.0.0
acl rede src 192.168.100.0/255.255.255.0
acl master src 192.168.100.222

acl SSL_ports port 443
acl Safe_ports port 80 # Web Normal
acl Safe_ports port 443 #Conexoes ssl
acl CONNECT method CONNECT
acl GET method GET

acl navegacao urlpath_regex -i \.htm$ \.html$ \.php \.cgi \.pl \.asp \.cf$
acl imagem urlpath_regex -i \.jpeg$ \.jpg$ \.png$ \.gif$
acl velocimetro urlpath_regex /velocimetro/

acl mime_navegacao req_mime_type text/html
acl mime_imagem req_mime_type image

delay_initial_bucket_level 10
delay_pools 2
delay_class 1 2
delay_access 1 allow all navegacao mime_navegacao
delay_access 1 allow all velocimetro navegacao
delay_access 1 allow all imagem mime_imagem
delay_access 1 allow master
delay_parameters 1 -1/-1 70000/70000

delay_class 2 2
delay_access 2 allow all
delay_parameters 2 -1/-1 30000/30000

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow rede
http_access deny all
icp_access allow rede
http_access deny all
icp_access allow rede
icp_access allow master

httpd_accel_host virtual

httpd_accel_port 80

httpd_accel_with_proxy of
httpd_accel_uses_host_header on


acl download url_regex -i ftp .mov .mpeg .wav .tar .mp3 .exe .zip .rar

acl chefes src 192.168.100.40
acl estagiario src 192.168.100.4

delay_pools 2

delay_class 1 2

delay_parameters 1 -1/-1 -1/-1
lelay_access 1 allow chefes

delay_class 2 2

delay_parameters 2 3000/3000 3000/3000
delay_access 2 allow estagiario

[10] Comentário enviado por pontozip em 08/08/2007 - 18:50h

Qual o calculo pra chegar nos 3000 e saber que equivalem a +/- 64Kbps ??

Ats.
Rodrigo.
Curitiba/Pr.

[11] Comentário enviado por joaovitorlinux em 21/09/2007 - 09:30h

Gostaria de saber tambem como voce calculou os 64Kbps que equivale aos 3000 ?
Porque nos calculos normais de velocidade os 64Kbps daria 8192bits.

[12] Comentário enviado por tuxjr em 29/10/2007 - 13:42h

Ainda existem algum respondendo aqui? Estou precisando de uma orientação. Aqui no nosso exemplo é criado duas redes, qria colocar 3 como faço?
Pela lógica, seria add uma nova configuração além de adcionar uma nova ACL certo? mas já fiz e dá erro fatal.
Alguém pode ajudar?

[13] Comentário enviado por thiagosc em 10/07/2009 - 15:29h

Olá amigo,

Tenho a seguinte situação:
Os usuários que utilizam a internet aqui na empresa necessitam de autenticação, porém gostaria de fazer uma limitação de banda (qos) para um determinado usuário é possível?

[]´s

Thiago

[14] Comentário enviado por pingolin em 13/12/2009 - 20:09h

É complicado, os caras copiam essas dicas de outros sites, a gente vai testar, não funciona, pede ajuda e ninguem aparece pra responde. Foda msm!!!

[15] Comentário enviado por linux_roger em 10/03/2010 - 10:57h

ai ficou legal, e super esplicado como eu estava procurando....

só queria saber como faço para calcular a velocidade já que 3000 = +-64 como faso para calcular 128 ou 256????

[16] Comentário enviado por rickps em 22/04/2010 - 15:50h

Achei aqui mesmo no VOL acho que já ajuda !

# vamos ao significado:
# -1/-1:
# Valor AGREGADO: aqui especificamos quanto toda a banda vai utilizar, no caso -1/-1 significa
# valor ilimitado, por isso, se você quer limitar sua banda nunca coloque -1/-1.

# 24000/24000:
# Valor NETWORK(REDE):aqui especificamos quanto cada uma de nossas redes irá poder utilizar, no caso algo em torno de 23Kb/s.

# 1000/1000:
# Valor INDIVIDUAL:aqui especificamos quanto cada um de nossos usuários poderá utilizar, no caso menos de um 1K/s.

# Cada valor tem duas áreas, uma antes da barra e outra depois. Vamos lá.
# RESTORE:O antes da barra.
# Especifica quantos bits poderá ser trafegado por segundo.

# MAX:E lógico, o depois da barra.
# Especifica quantos bits poderá trafegar no total.

# Delay pools sempre trabalham com bits, não se esqueça.
delay_parameters 1 -1/-1 500/1000 #leia acima para entender.
delay_parameters 2 -1/-1 15000/25000 #leia acima para entender.

[17] Comentário enviado por leco2612 em 14/12/2010 - 16:58h

se eu quiser liberar mais de um Ip como faço abraços

[18] Comentário enviado por bonner em 20/11/2011 - 17:24h

Amigo, como implementaria esta regra para grupos e não para IPs?
Tenho um squid.conf montado com dois grupos, sendo um deles Administradores e o outro FUNCIONARIOS.
Porém, gostaria que o grupo funcionários tivesse 30% do uso de banda para downloads e o grupo Administradores tivessem 70% do uso da banda também para downloads.

Poderia me ajudar nesta implementação? Segue meu squid.conf:

################### Squid.conf ######################
############# Escrito por Pedro Oliveira ##################

http_port 3128
visible_hostname proxy.squid.com.br

cache_mem 512 MB
maximum_object_size_in_memory 512 KB
maximum_object_size 4096 KB
minimum_object_size 4 KB
cache_swap_low 80
cache_swap_high 85
cache_dir ufs /var/cache/squid 4096 16 256
cache_access_log /var/log/squid/access.log
dns_nameservers 8.8.8.8 8.8.4.4
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # whois
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT

# Autenticação
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/grupos/userpass
auth_param basic realm Digite login e senha:
auth_param basic children 5
auth_param basic credentialsttl 2 hours
acl userpass proxy_auth REQUIRED

# Grupo de usuarios Admin (acesso full)
acl admin proxy_auth "/etc/squid/grupos/admin"

# Grupo de usuarios Funcionarios (controlados)
acl funcionarios proxy_auth "/etc/squid/grupos/funcionarios"

# Permissoes
# Liberando expressao ou parte da url que estejam apresentando problemas de acesso
acl sites-liberados dstdom_regex -i "/etc/squid/acls/sites-liberados"
acl msn url_regex -i "/etc/squid/acls/msn"

# Bloqueios
# Bloqueando expressão da url ou textos proibidos
acl sites-bloqueados dstdom_regex -i "/etc/squid/acls/sites-bloqueados"

# Bloqueando arquivos por extensoes
acl extensoes-bloqueadas url_regex "/etc/squid/acls/extensoes-bloqueadas"
# Diretório com os links de erros
error_directory /usr/share/squid/errors/Portuguese

# Minha rede local
acl minharede src 192.168.1.0/24

# Nega tudo e libera somente para os usuarios master
http_access deny sites-bloqueados extensoes-bloqueadas !admin !sites-liberados !msn
http_access deny manager
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

# Acesso liberado para os usuarios masters e sites problematicos
http_access allow admin
http_access allow sites-liberados
http_access allow msn

# Acesso liberado para o grupo funcionarios exceto os bloqueios
http_access allow funcionarios !sites-bloqueados !extensoes-bloqueadas

# Nega todo o resto da rede
http_access deny all

http_access allow minharede
icp_access allow all
miss_access allow all
cache_effective_user squid
cache_effective_group squid

[19] Comentário enviado por bonner em 21/11/2011 - 14:56h

É complicado... O pessoal posta o conteúdo e não dá suporte ou ajuda os demais no comentário.. É completamente chato!
Diferente da maioria dos posts que o pessoal ajuda com feedbacks positivos... Este post podem considerar como MORTO pois não existe mais colaborador para ele.

Abs.

[20] Comentário enviado por amdmlm em 12/12/2011 - 12:21h

Muito bem explicado o post, mas faltou voce aplicar os filtros
delay_access 1 allow chefes download
delay_access 1 allow estagiario download

caso contrário a acl download de nada servirá.

[21] Comentário enviado por salomao12 em 28/11/2013 - 10:22h

Bom dia.

Parabéns pelo post e pelas contribuições nos comentários.

Estou começando a usar o delay_pools agora e como eu faço pra liberar banda a uma lista de IP fixa. e controlar banda para todo o restante da rede que é DHCP?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts