Acelerador de conexões dial-up para provedores de acesso

Você é provedor de acesso dial-up e ISDN? Quer aumentar a velocidade do acesso do clientes? Acelere em até 8 vezes a conexão dial-up compactando os dados antes de enviá-los para links lentos e sem precisar instalar nenhum programa nos PCs dos clientes e ainda economize sua banda.

[ Hits: 70.432 ]

Por: Patrick Brandao em 30/09/2004 | Blog: http://www.patrick.eti.br


Instalação dos programas



3.1 - SQUID


O Squid Proxy-Cache vai ser o responsável por economizar nossa banda com a Internet. Centenas de tutoriais para fins diferentes podem ser encontrados no Google (http://www.google.com.br/search?...q=squid...). Entre eles, o mais conhecido é o Squid Ninja (http://www.linuxman.pro.br/squid/).

Instalação:

# mkdir /etc/squid
# groupadd squid
# useradd squid -g squid -d /dev/null -s /bin/false -c "Squid Proxy Cache"

# cd /usr/local/src/
# wget
http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE6.tar.gz
# tar -xvzf squid-2.5.STABLE6.tar.gz
# cd squid-2.5.STABLE6

# ./configure --prefix=/usr --enable-err-languages=Portuguese --enable-arp-acl --sysconfdir=/etc/squid --enable-delay-pools --enable-cache-digests --enable-poll --disable-ident-lookups --enable-truncate --enable-removal-policies

# make all
# make install


Squid instalado. Vamos ao arquivo de configuração. Preencha-o com o conteúdo abaixo, caso queira e souber, configure da sua maneira.

/etc/squid/squid.conf

http_port 3128

cache_effective_user squid
cache_effective_group squid

# no nosso caso de servidor exemplo em BABA ACESSO, cache_mem poderia ser 1000 MB
cache_mem 30 MB
minimum_object_size 0 KB
maximum_object_size 4096 KB
maximum_object_size_in_memory 100 KB
acl QUERY urlpatch_regex cgi-bin \?
no_cache deny QUERY

cache_dir ufs /var/cache/squid 500 16 128
cache_access_log /var/cache/squid/access.log
cache_store_log /var/cache/squid/store.log
coredump_dir /var/cache

refresh_pattern    ^ftp:       1440       20%       10080
refresh_pattern    ^gopher:    1440       0%        1440
refresh_pattern    .           1440       20%       4320

# definição de listas de acessos
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
acl Safe_ports port 21
acl Safe_ports port 443 563
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT

# definição de permissões de acesso
http_access allow localhost
http_access allow localhost manager
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
http_reply_access allow all
icp_access allow all

# suporte a proxy transparente
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

A configuração acima permite acesso apenas para a máquina local ao Squid e isso será comentado mais a frente. Se você deseja ter acesso direto ao Squid da sua rede, criar uma acl para ela.

O Squid ainda não está pronto, necessário ajusta os arquivos de cache e de log:

Ajustando arquivos de log:

# mkdir -p /var/log/squid
# touch /var/log/squid/access.log
# touch /var/log/squid/store.log
# chown squid.squid /var/log/squid -R
# chown squid.squid /var/cache/squid -R


Ajustando cache:

# squid -z

Agora sim, Squid pronto. Para iniciá-lo, digite:

# squid

O resultado do comando "nmap localhost -p 3128" deve ser:

# nmap localhost -p 3128
Starting nmap 3.50 ( http://www.insecure.org/nmap/ ) at 2004-09-15 16:56 BRT
Interesting ports on localhost (127.0.0.1):
PORT      STATE   SERVICE
3128/tcp   open      squid-proxy

Nmap run completed - 1 IP address (1 host up) scanned in 0.450 seconds

3.1 - ZIPROXY
Conceito de ziproxy: Proxy sem cache que atende as requisições dos clientes como todo proxy http faz, a diferença que o torna especial é o fato de compactar os arquivos que passam por ele, exemplos: html, jpeg, gif, javascript, msword, msexcel, etc. Com isso, consegue um ganho de velocidade muito grande para quem está na ponta final de um link lento (dial-up, ISDN 64k, 128k), com uma perda grande de pacotes ou com lerdeza própria mesmo.

Nos testes que fiz, ele se mostrou fantástico: foi capaz de transformar arquivos jpeg do site www.1000imagens.com de 150kb em 25kb sem alterar a qualidade de imagem, cheguei a ficar espantado. O mesmo ele fez com arquivos html de 100kb, que foram reduzidos pelo gzip para 6kb. Com muitas qualidades, mas um defeito chato: não suporta proxy transparente.

Vamos começar a instalação pelas primeiras pendências:

3.1.1 - ZLIB


Nota: Slackware 10.0 não necessita desse passo, pois já vem com zlib 1.2.1 instalada.

# cd /usr/local/src
# wget
http://aleron.dl.sourceforge.net/sourceforge/libpng/zlib-1.2.1.tar.gz
# tar -xvzf zlib-1.2.1.tar.gz
# cd zlib-1.2.1
# ./configure
# make
# make install


3.1.2 - LIBUNGIF


Nota: Slackware 10.0 não necessita desse passo, pois já vem com libungif 4.1.2 instalada, caso deseja atualizar para versão 4.1.3, digite antes:

# removepkg libungif

# cd /usr/local/src
# wget
http://aleron.dl.sourceforge.net/sourceforge/libungif/libungif-4.1.3.tar.gz
# tar -xvzf libungif-4.1.3.tar.gz
# cd libungif-4.1.3
# ./configure
# make
# make install


3.1.3 - LIBPNG


Nota: Slackware 10.0 não necessita desse passo, pois já vem com libpng 1.2.5 instalada, caso deseja atualizar para versão 1.2.7, digite antes:

# removepkg libpng

# cd /usr/local/src
# wget
http://aleron.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.7rc1.tar.gz
# tar -xvzf libpng-1.2.7rc1.tar.gz
# cd libpng-1.2.7rc1
# make -f scripts/makefile.std
# make -f scripts/makefile.std install


3.1.4 - LIBJPEG-6b


Nota: Slackware 10.0 não necessita desse passo, pois já vem com libjpeg-6b instalada.

# cd /usr/local/src
# wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz
# tar -xvzf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure --prefix=/usr -enable-shared
# make
# make install


3.1.5 - JASPER-JPEG


Nota: Não tem no Slackware 10.0, você vai ter que instalar. Jasper-JPEG concede ao ziproxy a habilidade de manipular imagens JPEG2000. Para visualizar esse tipo de imagem, os navegadores precisam ter o plug-in instalado.

# cd /usr/local/src
# wget
http://www.ece.uvic.ca/~mdadams/jasper/software/jasper-1.701.0.zip
# unzip jasper-1.701.0.zip
# cd jasper-1.701.0
# ./configure
# make
# make install


3.1.6 - LIBCONFUSE


Nota: Não tem no Slackware 10.0, você vai ter que instalar.

# cd /usr/local/src
# wget
http://savannah.nongnu.org/download/confuse/confuse-2.4.tar.gz
# tar -xvzf confuse-2.4.tar.gz
# cd confuse-2.4
# ./configure
# make
# make install


3.1.7 - ZIPROXY


Bom, agora chegou a hora da instalação do programa que faz o negócio acontecer.

# cd /usr/local/src
# wget
http://umn.dl.sourceforge.net/sourceforge/ziproxy/ziproxy-1.3c.tar.gz
# tar -xvzf ziproxy-1.3c.tar.gz
# cd ziproxy-1.3c
# ./configure --with-cfgfile=/etc/ziproxy.conf
# make
# make install


Um arquivo de configuração padrão já vem junto aos códigos fonte do ziproxy, copie-o para /etc:

# cd /usr/local/src
# cd ziproxy-1.3c
# cp ziproxy.conf /etc/ziproxy.conf


Mais a frente verão como configurá-lo detalhadamente.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Objetivo e ambiente
   3. Instalação dos programas
   4. Iniciando ZIPROXY
   5. Configurando ZIPROXY (ziproxy.conf)
   6. Acelerador no cliente
   7. Ajuda
Outros artigos deste autor

Gateway de email com Qmail - proteção antivírus e antispam

Freeradius - servidor radius eficiente e completo

Ziproxy - Proxy de compactação e redução de imagens

Qmail e chkuser - fila de mensagens limpa

NoCatAuth - Construindo um firewall/gateway autenticado

Leitura recomendada

Newsbeuter Feed Reader - Instalação e configuração

Compilando o Apache 2 com PHP e MySQL

Sarg + Relatórios Automáticos + Domínio Autenticado + Desbloqueio na Página do Squid

Interoperabilidade monitorando servidores e estações Windows com servidor Linux usando MRTG

Instalando o Nagios-mysql no Debian Etch

  
Comentários
[1] Comentário enviado por fabio em 30/09/2004 - 09:08h

Excelente artigo Patrick, meus parabéns! Enfim, agora sei qual é o segredo do famoso "Acelerador UOL" no qual eles fazem tanto marketing em cima.

Como minha mãe não tem UOL, vou configurar um ziproxy pra ela aqui no meu Velox 512 e fazer uns testes com ela usando meu servidor como proxy. Capaz de funcionar :P

[]'s

[2] Comentário enviado por AValle em 30/09/2004 - 09:37h

Excelente artigo, já tirei um modem da gaveta pra fazer uns testes :-)

[3] Comentário enviado por y2h4ck em 30/09/2004 - 11:14h

Pow muito bacana isso hein Patrick, sera que isso daria um GAz a mais em um servidor para clientes de Radio ?

[]s

Anderson

[4] Comentário enviado por daaugusto em 30/09/2004 - 11:51h

Interessante o artigo, entretanto faltou mencionar a configuração dos clientes (máquina/navegadores) rodando *Linux*.

Obs.: O artigo (versão atualizada) poderia estar disposto em um formato mais portável, como o PDF.

[5] Comentário enviado por nunix79 em 30/09/2004 - 12:27h

Parabéns pelo artigo ficou otimo, agora é testar nas vpns e RAS por ai a fora.

Fabio Nunes

[6] Comentário enviado por patrickbrandao em 30/09/2004 - 12:42h

Obrigado pessoal,

a aplicacao vai depender muito do ambiente, uma experiencia pode ser feita para verificar se o ganho vale a pena,

em links rápidos, pode nao fazer muita diferenca:

Se voce gasta num link dial-up, 7 segundos para baixar certo site e o ziproxy consegui baixar para 4 segundo, sendo que 2 segundo foi gasto no processamento de compactacao,

num link em que voce baixa em 3 segundos, voce vai aumentar para 5, entenderão?!

logo a diferenca vai mais nos dial-up do que nos adsl e radio PARA SITES PEQUENOS.

tomarei nota sobre o formato da publicacao atualizada!

Patrick Brandão

[7] Comentário enviado por lucianojs em 30/09/2004 - 13:46h

Excelente artigo, uma coisa que fiz na empresa foi configurar o DIAL-IN para suportar os protocolos MPPE e MPPC, assim ele tambem comprime dos dados no momento da conexão. Para isto vc deve aplicar patch´s no Kernel e no PPP. A unica coisa que não consegui foi configurar para fazer CALL-BACK, por isto ainda utilizo um winxp como servidor DIAL-UP.
Para quem não sabe o CALL-BACK faz retorno de chamada, ou seja, quando vc realizar a conexão ao final da autenticação ele abre uma caixa solicitando o numero do telefone que vc está utilizando para conexão, apois informado o numero, ele prepara sua maquina para receber uma chamada dial-up e encerra a conexão, em seguida ele inicia a ligação (do lado do servidor) e autentica no cliente, ou seja, os custos de telefonia ficam do lado do provedor, atualmente utilizo isto para dar manutenção remota nos servidores da minha empresa.


[8] Comentário enviado por patrickbrandao em 30/09/2004 - 14:10h

Brilhante,

realmente há várias formas de se compactar dados para otimizar a velocidade:

Hardaware e software

Para hardware a solucao indicada acima ajuda muito, para software, meu artigo e o artigo ensinando a usar o mod_gzip do Apache (http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1220) de Fabio Nunes sao algumas escolhas. No site do ziproxy (ziproxy.sourceforge.net) ha algumas notas de outros projetos usando softwares.

Patrick Brandão

[9] Comentário enviado por removido em 28/02/2005 - 22:05h

Soh algo que me ocorreu e que eu achei relevante o suficiente para comentar:

esses famosos "aceleradores" que foram mencionados eu imagino configuram seus discadores para adicionar/remover o proxy na hora da conexao/terminacao da conexao para evitar que caso o usario queria conectar com outra fonte (ex. outro servidor discado) haja um problema de "nao foi possivel conectar ao proxy", por que eles provavelmente soh servem (arquivos) aos seus proprios IPs.

Pensem o que quiser.

[10] Comentário enviado por Ruy_Go em 18/04/2007 - 13:00h

Então não ha nenhuma possibilidade de uso do mesmo com proxy transparente????

[11] Comentário enviado por kernelzinhu em 09/05/2009 - 02:07h

Eu fiz um ambiente proxy transparente, com compactação de dados e cache.
1. rodei o zipproxy em localhost
2. rodei o squid, com as confs de cache certinho, configurei ele transparente e apontei o cache_peer para o zipproxy


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts