Pesquisa em LivreSocial

sábado, 2 de maio de 2009

Acesso mais rápido à Internet

\Moro em um local onde o acesso à internet rápida ainda não é uma realidade para a maioria dos (potenciais) usuários. Por isso, preciso de recursos que me proporcionem uma maior velocidade de acesso. Vou mostrar aqui como usar as vantagens oferecidas por uma distribuição Linux, como o Ubuntu.

O cenário atual
Estou usando 3G. Infelizmente aqui no Brasil o funcionamento desta tecnologia é ridículo, pois apresenta grande instabilidade (a conexão cai frequentemente) e velocidade baixíssima. Por contrato, apenas 10% de velocidade é garantida. Assim, pela possibilidade de "estar conectado em qualquer lugar", pago R$ 100,00 por 1 Mega de velocidade, mas apenas algo em torno de 100k me é garantido.

A solução
O melhor é usar um proxy para acelerar o acesso. Segundo a wikipedia, a definição de proxy é "um servidor que atende a requisições repassando os dados a outros servidores. Um usuário (cliente) conecta-se a um servidor proxy, requisitando algum serviço, como um arquivo, conexão, website, ou outro recurso disponível em outro servidor".

Assim, todo acesso à internet vai ser passado para o proxy, e este vai na internet buscar a página. Esta página vai permanecer durante algum tempo na máquina, pois no próximo acesso boa parte da página já estará no sistema. Consequentemente, o browser buscará menos informação na rede, acelerando o acesso.

Estas modificações serão feitas em duas partes: Uma no proxy, e outra no browser.

O Software
Usaremos o Squid, um software extremamente famoso, totalmente gratuito e largamente utilizado para isto. Esta configuração é de complexidade média, exigindo algum conhecimento de edição de arquivos de configuração em Linux. Isto é bom, pois nos leva a aprender um pouco mais.

Instalação do Squid
Como sempre, instalar a maioria dos softwares no Ubuntu é muito fácil. Como é o meu foco, vamos evitar a interface gráfica e dar preferência a CLI. Para facilitar, as linhas abaixo devem ser copiadas e coladas no terminal.

Acesse o terminal e digite as seguintes linhas, informando sua senha quando solicitado:
sudo aptitude update
sudo aptitude install squid
Caso seja cometido algum erro e se queira desfazer tudo para começar do zero, pode ser feito o seguinte:
sudo chattr -i /etc/squid/squid.conf.original
sudo rm
/etc/squid/squid.conf.original
sudo aptitude purge squid
É necessário que o editor vim esteja instalado. Caso não esteja, ou você não tenha esta certeza, digite a seguinte linha:
sudo aptitude install vim

Configuração do Squid

Para isso, vamos fazer uma cópia de segurança do arquivo de configuração do squid:
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
sudo chattr +i /etc/squid/squid.conf.original
Agora, vamos retirar os comentários do arquivo, que apesar de serem bastante úteis e explicativos, atrapalham a leitura do arquivo:
sudo egrep -v "^$|^ *#" \
/etc/squid/squid.conf.original > /etc/squid/squid.conf
Ao escrever este artigo, esta era a minha versão do squid:
sudo dpkg -p squid

Package: squid
Priority: optional
Section: web
Installed-Size: 1748
Maintainer: Ubuntu Core Developers
Architecture: i386
Version: 2.7.STABLE3-4.1ubuntu1
Replaces: squid-novm
Depends: libc6 (>= 2.4), libcomerr2 (>= 1.01), libdb4.7, libkrb53 (>= 1.6.dfsg.2), libldap-2.4-2 (>= 2.4.7), libpam0g (>= 0.99.7.1), netbase, adduser, logrotate (>= 3.5.4-1), squid-common (>= 2.7.STABLE3-4.1ubuntu1), lsb-base (>= 3.2-14), ssl-cert (>= 1.0-11ubuntu1)
Pre-Depends: debconf (>= 1.2.9) | debconf-2.0
Suggests: squidclient, squid-cgi, logcheck-database, resolvconf (>= 0.40), smbclient, winbind
Conflicts: sarg (<<>
Apenas para acrescentar, outra forma de verificar a versão do squid instalado seria:
sudo dpkg -l | grep squid
No meu sistema, o resultado foi o seguinte:
ii squid 2.7.STABLE3-4.1ubuntu1 Internet object cache (WWW proxy cache)
É importante mencionar isto, pois mudando de versão, o arquivo da sua versão pode apresentar diferenças.

Agora, vamos editar o arquivo com as mudanças necessárias:
sudo vim /etc/squid/squid.conf -c ":set number"
No meu arquivo, as modificações foram as seguintes:
...
35 icp_access deny all
36 http_port 127.0.0.1:3128
37 hierarchy_stoplist cgi-bin ?
...
48 extension_methods REPORT MERGE MKACTIVITY CHECKOUT
49 dns_nameservers 200.169.116.23 200.169.116.22
50 hosts_file /etc/hosts
Eu alterei a linha 36, para aumentar a segurança do meu Ubuntu. Também acrescentei a linha 49, com os IPs do DNS do meu provedor. Se você não souber destes endereços (que devem ser obtidos com o seu provedor), você pode consultar os que foram automaticamente configurados no seu Ubuntu.
sudo cat /etc/resolv.conf
No meu sistema, o resultado foi o seguinte:
nameserver 200.255.121.39
nameserver 200.169.117.14
Feitas as modificações acima, precisamos reiniciar o squid. Isto é feito com a linha a seguir:
sudo /etc/init.d/squid reload
Para confirmar que o Squid está completamente funcional, poderemos listar as portas abertas para conexão, entre as quais deve constar a linha do Squid:
sudo netstat -ltnp | grep -i squid
No meu sistema, o resultado foi o seguinte:
tcp 0 0 127.0.0.1:3128 0.0.0.0:* OUÇA 3216/(squid)
Note que o destaque em negrito é o que foi definido na linha 36 do arquivo de configuração.

Configuração do Browser
A modificação no browser, é muito mais tranquila. Para este nosso exemplo, vou usar o Firefox, já presente no Ubuntu.






O primeiro passo é acessar as configurações no Browser. No menu EDITAR, acesse o item Preferências.














Escolha o botão AVANÇADO, logo após a aba REDE, e a seguir o botão CONFIGURAR.
















Escolha os itens marcados na imagem ao lado, e digite as mesmas informações que também estão na imagem












A partir de agora os acessos sempre passarão pelo proxy. No meu caso, estou acessando este proxy no meu (muito antigo) notebook, com um hd (muito) limitado de 20G, e com o seguinte consumo de acesso:
sudo du -sh /var/spool/squid/
32M /var/spool/squid/
É sempre bom controlar a quantidade de espaço consumido pelo cache. Se for necessário eliminar todo o cache, basta digitar o seguinte:
sudo squid -z

Um comentário:

Anônimo disse...

bom....muito bom o post

Security Fix

Dicas-L: Dicas técnicas de Linux e Software Livre

 
Creative Commons License
Blog Livre e Social by Gilberto Martins is licensed under a Creative Commons Atribuição 2.5 Brasil License.