Squid transparente com cache de arquivos + Windows Update + taxa de transferência em downloads

Este artigo implementa o Squid com cache de páginas, cache de downloads, limitação de taxa de transferência em downloads padrão de 30kbps, mas com possibilidade de aumento de velocidade para IPs específicos. Hoje em dia esses pequenos recursos são muito úteis, pois assim podemos diminuir e muito a utilização de banda da Internet.

[ Hits: 79.807 ]

Por: Lucas Tavares Soares em 26/02/2009


Iniciando as configurações padrões



Sistema operacional: Linux Debian Lenny 5.0
Versão do kernel: 2.6.26-1-686

Versão dos pacotes utilizados:
  • Squid cache: Version 2.7.STABLE3
  • SARG Version: 2.2.5 Mar-03-2008
  • Apache/2.2.9

Sistema de proxy transparente:
  • Cache de download de arquivos de no máximo 300MB por arquivo e um total de 10GB de armazenamento total de arquivos;
  • Cache para Windows Update;
  • Limite de download:
    * 30kbps padrão para todos;
    * 70kbps para usuários cadastrados.
  • Bloqueio de block_list de sites com histórico de spam ou vírus, atualização automática diária;
  • Bloqueio/liberação de site;
  • Cadastro de IPs liberados para acesso livre à internet.

Instalação do Debian Lenny 5.0

Instale o Debian Lenny 5.0 selecionando apenas a seguinte opção:

[x] Sistema básico

* NOTA: Todos os endereços IP deste documento são de exemplo, sendo diferentes para cada rede.

Instalação de pacotes adicionais

Após o término da instalação básica, é necessário instalar alguns pacotes adicionais:

# apt-get install ssh sarg squid vim vim-common apache2

Configuração da rede

Verifique o IP atribuído à máquina pelo DHCP e acesse via SSH como "root".

Edite o arquivo /etc/network/interfaces e deixe-o da seguinte maneira, adaptando à sua rede:

# Loopback
auto lo
iface lo inet loopback

# Interface - Internet
auto eth0
iface eth0 inet static
address 192.168.254.1
netmask 255.255.255.0
network 192.168.254.0
broadcast 192.168.254.255
gateway 192.168.254.254

# Interface - LAN
auto eth1
iface eth1 inet static
address 192.168.100.1
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255

    Próxima página

Páginas do artigo
   1. Iniciando as configurações padrões
   2. Configuração do Squid
   3. Finalizando
Outros artigos deste autor

Autenticando cliente Linux Ubuntu 8.10 no PDC Samba com perfil móvel

Servidor de DNS com DNS reverso, DHCP3 e wpad.dat

Leitura recomendada

Integrando autenticação do Squid ao Active Directory

Cache Full Squid + WebHTB

Controle de clientes e acessos no Squid

Filtragem de páginas SSL (443) no Squid transparente

Grace - Usando a função "Regression"

  
Comentários
[1] Comentário enviado por drc em 26/02/2009 - 13:14h

Parabéns pelo artigo, me ajudou muito aqui na empresa para limitação de download.

[2] Comentário enviado por vjmartins em 26/02/2009 - 14:12h

Muito bom o artigo..Parabéns

O ficheiro do malware é actualizado regularmente?

PS: Podia colocar para que serve algumas das funções do squid...

[3] Comentário enviado por removido em 26/02/2009 - 17:55h

Meu Amigo, meus PARABENS!

Exelente Artigo! Debian hehe!!!! (Exelente SO)

Flw

[4] Comentário enviado por jucinaldo em 26/02/2009 - 18:10h

Bom artigo parabéns!!

[5] Comentário enviado por tinti em 27/02/2009 - 00:07h

UNBELIVEBLE ... deitou cara, aqui, também serviria de cache para .deb's de um apt?

refresh_pattern archive.debian.org/.*\.(deb) 10080 100% 43200 reload-into-ims

vlws

[6] Comentário enviado por lucastavarestga em 27/02/2009 - 08:37h

Amigo, do jeito que esta ai o proxy, já esta fazendo cache de apt.

Por exemplo. Se eu faço uma nova instalação de debian ou ubunto, tanto faz. As instalações e atualizações executadas por apt, estão passando diretamente por proxy, com isso esta criando cache. Quando alguem for atualizar e já estiver em cache, puxa muito rápido. Não faz requisição por internet.

Fica muito show.

[7] Comentário enviado por rodrigomanga em 27/02/2009 - 17:57h

ele não está fazendo um cache efetivo do windows update, pois o sistema deles inclui um timestamp no final dos arquivos, confundindo o squid.

Pra isso desenvolvi um sistema que faz o cache do windows update e tudo quando é coisa

Procure sobre o ECache, o cache efetivo no squid

[8] Comentário enviado por lordhulk em 01/03/2009 - 18:05h

o ECache sim, faz um cache eficiente...

[9] Comentário enviado por lanaf em 04/03/2009 - 17:53h

Lucas blz, cara , o seu tutorial esta maneiro d+, cara so que estou com um probleminha eu estou tentando configurar o delay pools para liberar algumas mauinas acesso full, quando eu digito squid -k reconfigure aparece a seguinte mesagem:

FATAL: Bungled squid.conf line 161: delay_parameters 1 -1/-1 -1/-1
Squid Cache (Version 2.7.STABLE3): Terminated abnormally.

Tem como ajudar?
Valeu

[10] Comentário enviado por lucastavarestga em 04/03/2009 - 17:57h

Amigo envia pra mim o seu squid.conf para eu verificar - lucastavarestga@gmail.com

até mais...

[11] Comentário enviado por w4gn3rr em 06/03/2009 - 22:53h

Ao ler o título deste artigo fiquei interessado no cache do Windws Update, e fiz os testes com máquinas virtual, funcionou 100%, parabéns, funcionalidade nota 10.

[12] Comentário enviado por andriopj em 11/03/2009 - 10:06h

realmente muito interessante esse artigo... gostei bastante do cache windows...
estou a procura agora, d ealgo que proiba cache de video youtube/[*****] e outros.
se alguem souber, me avise, plz

[13] Comentário enviado por lucastavarestga em 11/03/2009 - 10:26h

Amigo,

*** Acesse o arquivo "/etc/squid/squid.conf" e adicione as linhas:

acl youtubecache dstdomain .youtube.com
cache deny youtubecache

*** Salve, e reconfigure o squid.

Qualquer dúvida entre em contato.

[14] Comentário enviado por cesargodoy em 06/04/2009 - 17:15h

caro amigo lucas, segui seu tuto e funfou legal, porem estou tendo problemas com sites como o ministerio da agricultura, sisbov.agricultura.gov.br pede o loguin normal, mas quando abre a pagina principal, da erro no botão que creio que é java, ja instalei o java na maquina, atualizei, mas continua gerando o erro no botão java.. "erro na pagina", se puder dar uma solução, ficaria muito grato!

[15] Comentário enviado por lucastavarestga em 07/04/2009 - 08:24h

Ola Amigo,

Tenta adicionar esse endereço web no arquivo:

vim /etc/squid/conf/sistema_direto

E reconfigure o squid

# squid -k reconfigure

Faça o teste.

Qualquer dúvida entre em contato.

[16] Comentário enviado por lemos1107 em 07/04/2009 - 14:49h

Muito bom, instalei e estou usando, mas tem site, por exemplo o ministerio do trabalho: www.mte.gov.br, ja liberei nos sites liberados, ja tentei varias opcoes e nao consigo desbloquear, vc ja passou por isso??? pode me ajudar??
Um grande Abraco e Parabens pelo utilissimo artigo.
antonio

[17] Comentário enviado por lucastavarestga em 07/04/2009 - 15:53h

Amigo, siga o seguinte procedimento;

# vim /etc/squid/conf/malware_block_list

Apague a linha:

^http\:\/\/(.+@)?www\.mte\.gov\.br\/

saia e salve o arquivo

Reconfigure o squid.

squid -k reconfigure

Ai é só alegria.

[18] Comentário enviado por lucastavarestga em 07/04/2009 - 15:53h

Amigo, siga o seguinte procedimento;

# vim /etc/squid/conf/malware_block_list

Apague a linha:

^http\:\/\/(.+@)?www\.mte\.gov\.br\/

saia e salve o arquivo

Reconfigure o squid.

# squid -k reconfigure

Ai é só alegria.

[19] Comentário enviado por lemos1107 em 07/04/2009 - 16:10h

Valeu, blz, eu estava procurando no malware_block_list e nao tinha visto...

Obrigado,

So alegria agora


[20] Comentário enviado por lemos1107 em 08/04/2009 - 13:03h

O meu windows update parece nao estar fazendo cache, onde eu confirmo isso? e vc colocou a opcao de gerar relatorio de conexoes? ex. qual usuario conectou em qual site?? O meu esta funcionando muito bem, ficou rapido, blz, entao estou abusando, se puder me ajudar mais uma vez...
Abracos
opa, ja resolvi, tudo certo agora. valeu

[21] Comentário enviado por viniciuspedra em 27/04/2009 - 10:39h

primeiramente parabéns pelo tuto..

olá! no titulo do seu artigo diz q eh 30k a taxa de down e ake no conf está 70k, qual eh o real?
como é feito o calculo?

[22] Comentário enviado por lucastavarestga em 27/04/2009 - 10:52h

Amigo..

- Como padrão todos fazem download a 30k.

- O ip que for cadastrado no arquivo "/etc/squid/conf/ips_download_70", fará download a 70k.

Qualquer dúvida entrem em contato.

[23] Comentário enviado por viniciuspedra em 02/05/2009 - 02:11h

olá lucas... valeu pela resposta em minha dúvida..
estarei implantando sua configuração nessa madrugada...
a taxa de down a 70k já está otimo... assim evita mto down na rede... liberando acesso aos demais...

e como é feito este calculo?

abs

[24] Comentário enviado por ch4c4r em 15/05/2009 - 13:50h

Show de bola, muito bem explicado e muito útil, estou usando aqui nos meus servidores esse esquema com malware block list e não tenho nenhuma dor de cabeça !!!

Valeu por compartilhar conosco !!!!

[25] Comentário enviado por rslrdx em 26/06/2009 - 14:00h

Não tenho nescessidade do limite de velocidade, posso remover as configurações sem problema?

Tem algum exemplo da formatação do conteúdo destes arquivos? ou apenas listo um por linha? posso colocar um faixa de ips ao invéz de um por um?

/etc/squid/conf/ips_admin
/etc/squid/conf/sites_bloqueados
/etc/squid/conf/sites_liberados
/etc/squid/conf/download
/etc/squid/conf/ips_download_70
/etc/squid/conf/sistema_direto
/etc/squid/conf/malware_block_list

Não quero fazer cache nem de páginas nem de downloads, apenas do windows updates.

Obrigado.

[26] Comentário enviado por lucastavarestga em 26/06/2009 - 20:10h

Amigo, segue abaixo:

Limite de velocidade: só comentar as linhas referentes ao Parâmetros para controle de banda.

Faixa de ip: pode sim adicionar uma faixa. Ex: 192.168.0.0/255.255.255.0

Cache de páginas ou de downloads: deve haver um jeito sim de fazer somente cache de windows update e não de páginas, mas no momento não sei te responder. Mas quando eu puder, realizarei testes e te retorno.

[27] Comentário enviado por manoserpa em 20/07/2009 - 20:51h

Parabéns cara, aprendi vários parâmetros nesse seu artigo.

Um abraço.

[28] Comentário enviado por cesargodoy em 25/08/2009 - 20:46h

olá amigo, implementei seu proxy transparente, mas estou tendo alguns problemas...

primeiro.. tenho que colocar todos os ips da rede no ips_admin pra que naveguem..
segundo.. tenho que configurar o proxy dentro do ie para que naveguem tb..
terceiro.. no orkut, ninguem consegue postar msg, da erro e nao envia nem apaga nada..

se puder me ajudar estou tendo um trabalhao danado...

minha rede esta assim:
eth0 192.168.3.1 (conectada ao modem adsl)
eth2 192.168.2.254 (rede local)

segui a risca seu squid.conf, alterando somente a faixa de ip...


[29] Comentário enviado por glaucoluiz em 02/09/2009 - 12:41h

Lucas ta 10 seu squid, parabéns
serviu na medida na empresa aonde eu trabalho!

[30] Comentário enviado por fabiolaborda em 16/09/2009 - 00:12h

Oi gostaria de uma ajuda, estou precisando e ainda não encontrei, como faço para atualizar o antivirus pelo cache do squid, na qual eu atualizo somente uma estação e as proximas quando solicitarem, não precisem consumir banda, e ppuxam diretamente do cache?

[31] Comentário enviado por viniciusap em 08/09/2010 - 08:04h

Bom dia, Amigo Lucas

Utilizo na minha empresa o seu tutorial, pois achei muito legal, porém de uns dias pra cá ficou uma carroça, já utilizei quase tudo o que tem no viva o Linux. Estou entrando em contato porque estou desesperado por uma solução aqui, já até mudei o squid.conf para outro mas continua mesma coisa, será que você poderia dar uma luz no final do túnel?

OBRIGADO

Vinicius Aires Pedroso
Gerente Financeiro
Churrascaria Bufalo Branco Ltda
viniciusap.bufalo@foznet.com.br
(45) 3523-9744
(45) 8416-2910

[32] Comentário enviado por lucastavarestga em 08/09/2010 - 16:25h

Amigo, isso ocorre quando o cache do squid esta muito grande, com isso o squid se perde e acaba ficando lento. Uma das soluções para isso, é refazer a estrutura de diretórios de cache do squid do zero.

Procedimento:

- Pare o serviço do squid:
/etc/init.d/squid stop

- Acesse o diretório onde fica localizado todo o cache do squid
cd /var/spool/squid/

- Apague o cache armazenado
rm -rf *

- Crie novamente toda a estrutura de diretorios responsável pelo armazenamento de cache do squid:
squid -z

* Retorno:
2010/09/08 16:19:26| Creating Swap Directories

- Visualizando se o squid criou o cache
ls -lha /var/spool/squid

* Retorno:
total 72K
drwxr-x--- 18 proxy proxy 4,0K Set 8 16:19 .
drwxr-xr-x 5 root root 4,0K Abr 13 15:05 ..
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 00
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 01
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 02
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 03
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 04
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 05
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 06
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 07
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 08
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 09
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 0A
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 0B
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 0C
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 0D
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 0E
drwxr-x--- 258 proxy proxy 4,0K Set 8 16:19 0F

- Iniciando o squid
/etc/init.d/squid start

- Verificando se o serviço esta levantado:
ps ax | grep squid

* Retorno:
25404 ? Ss 0:00 /usr/sbin/squid -D -YC
25408 ? S 0:00 (squid) -D -YC
25418 pts/0 R+ 0:00 grep squid

- Agora é só navegar, e verificar se o squid esta funcionando, e navegando mais rapidamente.

[33] Comentário enviado por diogoamorim1020 em 22/09/2010 - 18:25h

Ola, tudo bem meu amigo!!!

Mto bom o tutorial!!! Parabens!!!

Segui a risca o seu tutorial e adicionei umas linhas a mais para efetuar alguns controles extras aqui para a empresa, mas é praticamente o mesmo .conf, que vc postou aqui.
minha duvida é a seguinte: Quando eu vou iniciar o Squid ele aparece um erro, gostaria que ajudasse a resolver, pois eu ja tentei varias soluções e até agora não encontrei.

##### inicio do erro ######

srvnet:/etc/squid# /etc/init.d/squid start
Starting Squid HTTP proxy: squidFATAL: Error Directory /usr/share/squid/erros/Portuguese: (2) No such file or directory
Squid Cache (Version 2.7.STABLE3): Terminated abnormally.
CPU Usage: 0.024 seconds = 0.024 user + 0.000 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
/etc/init.d/squid: line 73: 9273 Abortado start-stop-daemon --quiet --start --pidfile $PIDFILE --chuid $CHUID --exec $DAEMON -- $SQUID_ARGS < /dev/null
failed!
srvnet:/etc/squid#

##### fim do erro ######

Desde ja agradeço a atenção!!!

Obrigado!!!

[34] Comentário enviado por lucastavarestga em 22/09/2010 - 18:50h

Amigo,

Analisando o erro, percebi que o squid.conf não esta encontrando o diretório "/usr/share/squid/erros/Portuguese".

Então execute os seguintes procedimentos para descobrir onde está localizado este diretório, e assim inserir a linha corretamente no squd.conf

# updatedb
# locate -i portuguese | grep -i squid
Resultado:
/usr/share/squid-langpack/Portuguese

*NOTA: Este foi o resultado que obtive aqui, o seu pode ser diferente, fique atento.

- Edite o "/etc/squid/squid.conf" e altere a seguinte linha:

De:
error_directory /usr/share/squid/errors/Portuguese

Para:
error_directory /usr/share/squid-langpack/Portuguese

*Salve o arquivo e aplique as configurações:

*OBS: Se o squid estiver ativo somente aplique com o comando:

# squid -k reconfigure

* Se não estiver ativo, levante o serviço:

#/etc/init.d/squid start
ou
#/etc/init.d/squid restart

*** Espero ter ajudado.

[35] Comentário enviado por tosko em 20/10/2010 - 00:45h

me explica uma coisa, deste jeito ai ele faz cache do windows update apenas do XP né que é feito por navegador e pra fazer do windows vista ou 7 alguem ja descobriu como se faz?

[36] Comentário enviado por wp3m5 em 06/01/2011 - 22:04h

Parabens pelo seu tutorial, so acrescentando ao inves de usar ip para controle vc pode usar mac ai quando o usuário trocar o ip ele ainda vai continuar bloqueado...


Ok!

wp3m5..

[37] Comentário enviado por hadres em 04/02/2011 - 19:41h

Boa Tarde Lucas!!

bem explicado seu artigo, parabens!!! estou tendo que refazer meu proxy e copiei de cabo a rabo suas dicas, o meu antigo proxy era com debian 4 e squid 3 tem algum misterio por aqui com esse debian 5 que nao consigo resolver, começei instalando o debina 5 com o netinst basicão imaginei que so precisaria instalar os pacotes que ja tinha rodando no 3 e restaurar meus .conf para ser um cara feliz...hehe consegui td menos a aceleração, buscando na net vi que tinha mais uma galera com problemas no squid3 e o meu antigo apesar de acelerar tinha uns outros porens que nao me agradavam (atualização de arquivos pequenos no cache lenta) resolvi entao começar do zero denovo segui seu artigo para configuração do squid mas nao consigo fazer aceleração funcionar o que tenho de diferente por aqui é o bind9, samba e o dhcp3-server rodando sem problemas, so to morrendo no squid...heheheh

sera que voce tem alguma luz pr me dar

Grande Abraço!


[38] Comentário enviado por gustavinhoO em 08/03/2011 - 22:28h

Squid is already running! Process ID 2320
root@debian:/# /etc/init.d/squid start
Starting Squid HTTP proxy: squid failed!

faço toda a configuração mas depois me aparece esse seguinte erro

oque pode ser??

se alguem souber me ajudem

[39] Comentário enviado por jonatasvales em 24/02/2013 - 01:11h

Olá, qual a funcionalidade da acl "sistema_direto" ? Não entedi.

[40] Comentário enviado por lucastavarestga em 24/02/2013 - 11:09h

Amigo,

No arquivo /etc/squid/conf/sistema_direto deve ficar a listagem de sites sem cache e sem autenticação Java, mais utilizado quando ocorrem erros a acesso a sites de bancos.


+ Linha no arquivo squid.conf:
# ---- Cache sistema Interno desabilitado ----
acl sistema_direto dstdomain "/etc/squid/conf/sistema_direto" always_direct
acl sistema_direto_no_cache url_regex -i "/etc/squid/conf/sistema_direto"
cache deny sistema_direto_no_cache

*NOTA: Esta linha serve para não gerar cache de paginas, pois geralmente ocorrem erros nos sites de bancos. Então só cadastrar dentro do arquivo "/etc/squid/conf/sistema_direto" e cadastrar o endereço do site


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts