Squid - Limitar Velocidade do Download e Upload por Extensão

Iniciado por ivo_b_jr, 18 de Março de 2011, 19:54

tópico anterior - próximo tópico

ivo_b_jr

Imagem eu já fiz em todas, isso para uma futura reinstalação, mas não é restaurar o sistema o problema, o problema e as atualizações dos jogos da level up que saem as vezes semanalmente, aí esse sistema de restauração que eu entendi por você não resolveria, eu teria que ir uma a uma atualizar pois possuo um software que bloqueia a maquina e impede de atualizar automaticamente e quando os usuarios resolvem gravar coisas na maquina assim que a maquina é reiniciada ela volta como estava antes sem nenhuma arquivo deixado.

Bem a idéia do servidor seria manter tudo instalado nele e as maquinas compartilhar esses jogos, aí uma simples atualização faria com que todas as estações ficassem atualizadas, pelo motivo de todas estarem puxando do ubuntu os arquivos. Minha preocupação é que aí o disco do servidor ficaria sendo usado constantemente e não sei se a rede cairia de rendimento pois assim que todos os jogos fossem carregados haveria uma leitura grande por parte do servidor. Mas o servidor é pra isso não é? Vc acha que instalar todos os jogos num unico lugar (servidor umbunt Samba)para todas as estações derrubaria muito o desempenho? a configuração de minha maquina servidor esta nos topicos acima e as estações possuem otimos processadores e 4 gb de ram (Core 2 Duo maquinas da DEL Vostro 220,)

zekkerj

Olha, eu acho que mesmo que se houver alguma queda de desempenho por conta da rede local, ainda seria menor que a gerada pela própria internet, então dificilmente seus usuários sentiriam o problema.

Só recomendo que você invista em redundância (RAID1 nos discos, também servidores redundantes), pra minimizar a chance de uma falha tirar seu negócio do ar.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

ivo_b_jr

Por favor, fiquei muito decepcionado, tentei montar um servidor SAMBA no Ubuntu 10.10 e simplesmente criar algumas pastas compartilhadas com acesso total para as estações, para concentrar os games e outros arquivos dos clientes no linux, mas não consegui, ja li varios tutoriais, tentei executar e nada. Olha o que já fiz:

Intalei o Samba no ubuntu = sudo apt-get install samba (foi instalado)
Acessei e editei o arquivo "complexo" smb.conf, já peguei uma infinidade de dicas na internet e nada de funcionar, reinicio o Samba reiniciando a maquina Linux e nada de enxergar o servidor nos clientes.
Já defini o grupo de rede (simplesmente "LAN") no smb.conf e mesmo assim nada de funcionar, o nome do usuário do servidor é o meu mesmo ex: Ivo, tambem definido no arquivo smb.conf e nada de aparecer no windows Seven Home Basic e Vista.

Por favor se puder me ajudar, qual a forma correta de instalar o SAMBA, eu fiz certo? aparentemente nada apareceu errado quando instalei. Só quero fazer as maquinas da lan com windows acessarem as pastas compartilhadas sem senha e com total acesso aos arquivos. No fórum não acho uma orientação facil pra conseguir fazer isso, tem como me ajudar?

zekkerj

Acho melhor separar a questão do Samba em outro tópico, pra não misturar o assunto com as questões do Squid.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

ivo_b_jr

Depois que acrescentei os últimos comandos indicados para fazer limite de banda para os downloads em minha rede tive a sensação que o mesmo não estava mais fazendo cache, como sou usuário iniciante não sei checar se o cache está sendo gravado mesmo ou não, acessando a pasta onde indiquei para fazer o cache /var/spool/squid vejo arquivos (claro, não em forma de arquivos mas uma série de pastas 01 02) . Acredito então que o cache esteja sendo feito sim, mas não estou conseguindo baixar um arquivo já baixado em velocidade maior pois acredito que ele também esteja limitando o que já está em cache de disco. Li que isso poderia acontecer caso fizesse limitação de download.
Bem preciso de ajuda para saber com certeza o que está acontecendo, ou seja: ele está mesmo fazendo o cache de disco com o script abaixo que me mandou? Se estiver, ele está tambem limitando o download que já está no cache? caso sim, como criar uma regra para impedir que arquivos em cache não passem pelas regras de limite de download. E a ultima, qual utilitario instalo e como instalo para verificar de forma gráfica se o cache está em disco, arquivos em cache, graficos e etc. Ouvi falar de um tal de SARG, mas não conheço a fundo, nem sei instalar e configurar, gostaria de sua ajuda para as duvidas acima e tambem desse utilitario ou qualquer outro que faço o pque preciso. Eu ia me esquecendo as linhas do Cache de Video inseridas no script funcionam? estão corretas? peguei na internet mas caso não estejam corretas ou não funcionam eu apago. Obrigado

Meu squid.conf

#a porta onde o servidor squid ficará disponível
http_port 3128

#nome do servidor
visible_hostname proxy

error_directory /usr/share/squid/errors/Portuguese/

cache_mem 350 MB
maximum_object_size_in_memory 512 KB
maximum_object_size 1000 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 50000 16 256
cache_access_log /var/log/squid/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280


acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 192.192.1.200/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

acl bloqueados url_regex -i "/etc/squid/bloqueado"
http_access deny bloqueados

acl redelocal src 192.168.1.0/255.255.255.0
http_access allow localhost
http_access allow redelocal
http_access deny all

########### Cache Videos ###########
refresh_pattern -i .flv$ 10080 90% 999999 ignore-no-cache override-expire ignore-private

acl youtube dstdomain .youtube.com

cache allow youtube
################################


#Ajuda dos amigos do Forum Ubuntu (limitar banda por extensão)
delay_pools 2
delay_class 1 1
delay_class 2 2
delay_parameters 1 512000/512000 # 4Mbps
delay_parameters 2 512000/512000 6250/64000 # 4Mbps de agregado, 50K de banda com rajada de 64K.
acl diretoria src "/etc/squid/lista-de-ips-sem-limitacao"
acl horas_livres time MTWHF 14:00-23:00
acl downloads_limitados urlpath_regex .*\.mp3 .*\.avi .*\.zip .*\.exe
delay_access 1 allow diretoria
delay_access 1 allow horas_livres
delay_access 1 deny downloads_limitados
delay_access 1 allow all
delay_access 2 allow all
#Termina aqui.

zekkerj

CitarBem preciso de ajuda para saber com certeza o que está acontecendo, ou seja: ele está mesmo fazendo o cache de disco com o script abaixo que me mandou?
Todos os acessos ficam registrados no log do sistema.

CitarSe estiver, ele está tambem limitando o download que já está no cache? caso sim, como criar uma regra para impedir que arquivos em cache não passem pelas regras de limite de download.
Não que eu lembre ou saiba.

CitarE a ultima, qual utilitario instalo e como instalo para verificar de forma gráfica se o cache está em disco, arquivos em cache, graficos e etc. Ouvi falar de um tal de SARG, mas não conheço a fundo, nem sei instalar e configurar, gostaria de sua ajuda para as duvidas acima e tambem desse utilitario ou qualquer outro que faço o pque preciso.
SARG -> "Squid Analisys and Report Generator".
É um utilitário que pega os logs do squid num período (diário, semanal, mensal) e gera relatórios de uso.

Pra instalar:
sudo apt-get install sarg

Depois deixe rodar por alguns dias e acesse:

http://localhost/sarg
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

ivo_b_jr

Voltando para o Squid, preciso das seguintes informações:
Criei duas acls para bloquear sites por dominio (bloqueados) e outra pproibidas. São arquivos de textos contendo dentro informações como por exemplo:
bloqueados
redtube.com.br
www.redtube.com.br
google.com.br
www.google.com.br
google.com
www.google.com.br
---------------------------------
e pproibidas
orkut
google
sexo
----------------------------
mas não estou conseguindo fazer algumas funcionarem, o estranho é que algumas funcionam mas outras não, exemplo: se eu digito sexo no navegador ele mostra o resultado da pesquisa (google), assim que clico no link caso ele tenha sexo na url ele barra, mas caso naum tenha na url ele entra. Até aí tudo bem visto que o squid bloqueia por url, mas e o google? ele acessa normalmente, mesmo estando nas regras.
Será que estou com problemas ao recarregar o squid. ex. service squid restart? as vezes acabo parando os servicos (service squid stop) e reinicio novamente. vou mandar abaixo meu squid novamente e os comandos que uso para iniciar e parar o squid como tambem atualizar.

root@ubuntu:/etc/squid# service squid status
squid stop/waiting
root@ubuntu:/etc/squid# service squid -z
squid: unrecognized service
root@ubuntu:/etc/squid# service squid start
start: Job failed to start
root@ubuntu:/etc/squid# service squid restart
restart: Unknown instance:
root@ubuntu:/etc/squid#
porque esses erros acontecem e não consigo as vezes usa-lo?
meu squid.conf é esse


#a porta onde o servidor squid ficará disponível

http_port 3128



#nome do servidor

visible_hostname servidor



error_directory /usr/share/squid/errors/Portuguese/



cache_mem 350 MB

maximum_object_size_in_memory 512 KB

maximum_object_size 1000 MB

minimum_object_size 0 KB

cache_swap_low 90

cache_swap_high 95

cache_dir ufs /var/spool/squid 50000 16 256

cache_access_log /var/log/squid/access.log

refresh_pattern ^ftp: 15 20% 2280

refresh_pattern ^gopher: 15 0% 2280

refresh_pattern . 15 20% 2280





acl all src 0.0.0.0/0.0.0.0

acl manager proto cache_object

acl localhost src 192.168.1.49/24

acl SSL_ports port 443 563

acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535

acl purge method PURGE

acl CONNECT method CONNECT



http_access allow manager localhost

http_access deny manager

http_access allow purge localhost

http_access deny purge

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports





acl bloqueado url_regex -i "/etc/squid/bloqueados"

http_access deny bloqueado



acl palavraproibida dstdom_regex "/etc/squid/pproibidas

http_access deny palavraproibida





acl redelocal src 192.168.1.0/24

http_access allow localhost

http_access allow redelocal

http_access deny all





#Ajuda dos amigos do Forum Ubuntu (limitar banda por extensão)

delay_pools 2

delay_class 1 1

delay_class 2 2

delay_parameters 1 512000/512000 # 4Mbps

delay_parameters 2 512000/512000 65536/65536 # 4Mbps de agregado, 50K de banda.

acl diretoria src "/etc/squid/ipssemlimitacao"

acl horas_livres time MTWHF 14:00-23:00

acl downloads_limitados urlpath_regex .*\.mp3 .*\.avi .*\.zip .*\.exe

delay_access 1 allow diretoria

delay_access 1 allow horas_livres

delay_access 1 deny downloads_limitados

delay_access 1 allow all

delay_access 2 allow all

#Termina aqui.

zekkerj

Pelo que eu consegui ver, vc está usando dois tipos de ACLs diferentes nesses bloqueios: url_regex (bloqueio)e dstdom_regex (proibidas). O "url_regex" faz a comparação por expressão regular em todo o URL, o que significa que deveria olhar também nos parâmetros das consultas GET, usadas pelo google (e por alguns sites de proxy anônimo). Já o dstdom_regex  olha apenas no nome do site. Esse deve ser o motivo do comportamento que vc descreveu.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

ivo_b_jr

Olá, Zekkerj, voce me ajudou passando essa linha de comando para que eu pudece configurar minha conexão de 4 megas num limite de 50 k com rajada de 64 para minhas estações em minha rede. Agoro dobrei a conexão para 8 e gostaria de dobrar tambem o limite para 100 k. Os valors 512000/512000 = 4 mbps eu gostaria de entender como chegou nesse valor para que eu pudece aqui aprender a calcular, e tambem os valores na outra linha 6250/64000. Se puder me ajudar fico muito grato e mando a linha que me passou da ultima vez abaixo. Obrigado

delay_pools 2
delay_class 1 1
delay_class 2 2
delay_parameters 1 512000/512000 # 4Mbps
delay_parameters 2 512000/512000 6250/64000 # 4Mbps de agregado, 50K de banda com rajada de 64K.
acl diretoria src "lista-de-ips-sem-limitacao.txt"
acl horas_livres time MTWQF 14:00-23:00
acl downloads_limitados urlpath_regex .*\.mp3 .*\.avi .*\.zip .*\.exe
delay_access 1 allow diretoria
delay_access 1 allow horas_livres
delay_access 1 deny dowloads_limitados
delay_access 1 allow all
delay_access 2 allow all

zekkerj

Se vc quer dobrar os limites, basta dobrar todos os valores:

delay_parameters 1 1024000/1024000 # 8Mbps
delay_parameters 2 1024000/1024000 12500/64000# 8Mbps (1024KB/s) de agregado, 100Kbps de banda (12,5KB/s), 64KB de rajada.

O primeiro valor é o agregado, ou seja, o que tem pra todas as conexões. O segundo valor é o que você libera pra cada máquina. E nessa liberação você diz quantos bytes uma máquina pode baixar em um segundo.

O valor depois depois da barra é a rajada; diz quantos bytes uma estação pode baixar antes que o controle de banda comece a atuar, após ficar um certo tempo inativa.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

ivo_b_jr

Olá, muito obrigado pelo auxilio até agora, confesso que estou aprendendo muito sobre o assunto graças a ajuda de vcs.
minha nova dúvida é sobre como adaptar essa configuração do meu squid até agora funcional, para PROXY Transparente com algumas opções ou seja:
- Gostaria que minhas maquinas da rede Win7 (somente navegadores a detectar automaticamente o proxy squid), mas não os demais seviços como msn messager, skype, oovoo, jogos como tibia que usam a internet. Isso porque meus clientes já manjaram em desativar o proxy pelo navegador.
- Fazendo isso, gostaria de poder desativar quando necessário algumas maquinas do proxy, ou seja, preciso fazer download rapido aí somente na maquina escolhida eu desativo temporariamente (até o download concluir) esse proxy transparente (isso porque criei regras para limitar download e tambem para acessar sites indesejados). Se criar uma arquivo de texto especificando o IP da maquina a desativar o proxy transparente e dando um squid restart resolver por exemplo pra mim estaria bom, mas não tenho ideia de como fazer ou melhor adaptar isso na minha configuração que mando logo abaixo. Se puder me ajudar com isso ficarei muito grato.

Se não for encomodo de uma analizada na minha configuração ela está ajustada para uma maquina com 512 MB de Ram  Celerom D acho que dever ser 1,8 algo assim, HD de 80 GB, mas to percebendo que as vezes minha rede e jogos como tibia ficam lentos, será essa configuração que está causando isso? Desculpe por tantas perguntas num unico post, pode me ajudar aos poucos mesmo, o principal é o Proxy TRansparente.

Squid meu abaixo sem proxy transparente até agora.

#a porta onde o servidor squid ficará disponível
http_port 3128

#nome do servidor
visible_hostname ubuntuserver

error_directory /usr/share/squid/errors/Portuguese/

cache_mem 128 MB
maximum_object_size_in_memory 512 KB
maximum_object_size 1024 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 2048 16 256
cache_access_log /var/log/squid/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280


acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.0.0.0
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports


acl bloqueado url_regex -i "/etc/squid/bloqueados"
http_access deny bloqueado

acl palavraproibida dstdom_regex "/etc/squid/pproibidas
http_access deny palavraproibida


acl redelocal src 192.168.1.0/24
http_access allow localhost
http_access allow redelocal
http_access deny all


#Ajuda dos amigos do Forum Ubuntu (limitar banda por extensão)
delay_pools 2
delay_class 1 1
delay_class 2 2
delay_parameters 1 1024000/1024000 # 8Mbps
delay_parameters 2 1024000/1024000 131072/131072 # 8Mbps de agregado, 100K de banda.
acl diretoria src "/etc/squid/ipssemlimitacao"
acl horas_livres time MTWHF 00:00-08:59
acl downloads_limitados urlpath_regex .*\.mp3 .*\.avi .*\.zip .*\.exe .*\.rar .*\.mpg .*\.rmvb .*\.iso .*\.001 .*\.002
delay_access 1 allow diretoria
delay_access 1 allow horas_livres
delay_access 1 deny downloads_limitados
delay_access 1 allow all
delay_access 2 allow all
#Termina aqui.

zekkerj

Citarminha nova dúvida é sobre como adaptar essa configuração do meu squid até agora funcional, para PROXY Transparente
Posso perguntar o porquê? Proxy transparente não é necessariamente melhor do que o proxy configurado, nem mais seguro, nem mais fácil de fazer funcionar...
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

ivo_b_jr

sim o motivo é que algumas máquinas como notebooks em minha lan pegam ip automatico, e por esse motivo elas acabam ficando fora do proxy, mas tambem o numero desse notebook em minha lan é pequena, são poucos clientes, muito trabalho para pouca coisa deve mesmo ser desnecessário, acho que posso resolver isso ajustando meu roteador para limitar a banda fora da faixa de ip especifica, (meu roteador tem controle de banda). Aí configuro meu roteador pra liberar banda total para o ip 192.168.1.48 que é o ip da máquina com o squid.

Se eu fizer isso eu resolvo meu problema certo?
Mas lembrando que meus clientes acessam as configurações do internet explorer e tambem do firefox nas máquinas (win7) e retiram a configuração do proxy que coloco lá, será que consigo então bloquear os dois navegadors para que os clientes não acessem as opções de configuração dos navegadores? há possibilidade de bloquear isso com senha? se há vc sabe como proceder ou onde posso encontrar a explicação?

zekkerj

#28
Citarsim o motivo é que algumas máquinas como notebooks em minha lan pegam ip automatico, e por esse motivo elas acabam ficando fora do proxy
Tem outras formas de resolver isso mais elegantes que o proxy transparente. Por exemplo, a descoberta automática (WPAD)...

CitarMas lembrando que meus clientes acessam as configurações do internet explorer e tambem do firefox nas máquinas (win7) e retiram a configuração do proxy que coloco lá, será que consigo então bloquear os dois navegadors para que os clientes não acessem as opções de configuração dos navegadores? há possibilidade de bloquear isso com senha? se há vc sabe como proceder ou onde posso encontrar a explicação?
No Internet Explorer, você pode obrigar o usuário a usar o seu proxy via GPO, e bloquear a alteração disso. Outros browsers dependem de configuração própria.

No meu entender, a forma mais fácil de implementar esse controle é via bloqueio: mexeu, parou de funcionar. Quem liga reclamando que parou, vc pergunta: "mexeu no proxy?" Se disser que sim, vc diz "é só voltar ao que estava antes e parar de fuçar no que funciona". ;)
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

ivo_b_jr

Ok, pesquisei sobre GPO, acredito que fica dificil usar isso pois me falta um Windows Server, agora WPAD pesquisei e achei um tutorial bem legal explicando isso, acredito que consigo executar (penso em testar principalmente para aprender) no tutorial fala de forma prática para fazer os navegadores buscarem automaticamente o proxy. Agora preciso apenas saber se uso DNS ou DHCP.

Me perdoe pela minha ignorancia, preciso ler mais sobre DHCP e DNS, mas me corrija se eu estiver errado, eu uso DHCP na minha rede, pois DNS seria Dominio certo? Não uso domínio e sim IPs mas máquinas para conexão certo?
Sabendo disso posso executar o tutorial usando a configuração por DHCP o WPAD.

A ideia sobre mexeu no proxy por bloqueio teria que ser manual certo? ou tem algo que posso configurar para ele parar de funcionar tirando o proxy? ::)