O texto abaixo foi publicado no BR-Linux antes de 2005, e está mantido aqui por razões históricas.
Veja o material atualizado diariamente do BR-Linux em
http://br-linux.org
Criando uma proxy web com o Squid
Publicado em 10 de junho de 2003
Este é mais um artigo introdutório sobre a proxy web squid. Leia abaixo como instalar e configurar uma proxy e dar acesso Internet aos computadores da sua rede local, mesmo que eles não tenham rota direta para a Internet.
Criando uma proxy web com o Squid
O Squid é um software especializado em fazer a operação de proxy de web e
ftp, completamente free e com excelente suporte para operação em
servidores Linux.
Com o Squid você pode instalar um servidor Linux com acesso à Internet, e
fazer com que outras máquinas clientes (usando Linux, Windows ou outro
sistema operacional) acessem páginas web e sites ftp através do servidor
Linux, mesmo que estas máquinas clientes não tenham conexão direta com a
internet - tudo que elas precisam é o acesso ao próprio servidor onde está
rodando o Squid.
A única configuração necessária na máquina cliente é feita no próprio
browser: você precisa definir qual o endereço do servidor proxy. Esta é uma
operação bastante simples, disponível nos menus do Netscape, do Internet
Explorer e dos demais browsers em geral.
Mas não confunda as coisas: o squid dá acesso a serviços como http, https
(web segura) e ftp, mas não dá acesso a outros serviços como ICQ, e-mail
e
IRC. Se você está procurando este tipo de acesso, leia nossa seção sobre
IP Masquerading.
Mesmo em redes onde seria possível instalar IP Masquerading, muitos
administradores optam por limitar o acesso direto das máquinas internas à
web, por várias razões, entre as quais se incluem a segurança e o controle
de acesso (através de mecanismos de restrição e de log).
Mas o recurso que mais atrai atenção no squid é o cache de páginas. Como em
geral o link entre as máquinas clientes e o servidor proxy é de alta
velocidade (rede local ethernet ou similar) e o link entre o proxy e a web é
mais lento, é bastante interessante a possibilidade que o squid oferece de
armazenar localmente as últimas páginas acessadas, de forma a não ter que
buscar novamente na internet uma página que tenha sido recentemente vista
por outro usuário da mesma rede. Naturalmente você pode configurar o tempo
de armazenamento de cada página no cache, e o protocolo HTTP tem recursos
suficientes para reconhecer páginas que não devem ser guardadas no cache,
precisando ser buscadas novamente a cada requisição.
Obtendo o squid
Você pode obter o squid em um dos vários
mirrors disponíveis na
Internet. Uma boa escolha é o mirror da Matrix
.
Mas se você está rodando qualquer uma das principais distribuições correntes
de Linux, muito provavelmente ela já veio com sua própria versão
pré-compilada e pronta para instalar do Squid. A não ser que você tenha
necessidades muito especiais, comece suas experiências com esta versão
disponibilizada pela sua própria distribuição. De modo geral ela já vai ter
vindo com seus próprios mecanismos de inicialização no momento do boot da
máquina, encerramento correto no shutdown, rotacionamento de logs e tudo o
mais que precisa ser adaptado a cada um dos "sabores" de Linux.
Instalando o squid
Não estaremos apresentando um tutorial de instalação do squid, pois ele é um
software que evolui muito rapidamente, e nosso guia ficaria rapidamente
ultrapassado. Além disso, ele é muito bem documentado! Se você está
usando a versão que acompanha a sua própria distribuição de Linux, muito
provavelmente a instalação já virá acompanhada de um arquivo de configuração
(/etc/squid.conf) pronto para o uso básico, e com comentários (em
inglês) mais do que suficientes para as suas primeiras experiências.
Quando surgirem dúvidas, consulte a documentação fornecida com a sua
distribuição de Linux, e em seguida o FAQ e o Guia do Usuário disponíveis no
site oficial do Squid.
Algumas dicas:
Lembre-se de que um serviço de proxy exige bastante memória e espaço em
disco. Dimensione seu sistema adequadamente.
Se você está atrás de uma firewall, mesmo assim tem plenas condições de
configurar o squid corretamente para repassar os requests para outro
servidor proxy (mesmo que ele não esteja rodando squid) que tenha acesso à
Internet através da firewall. Consulte a documentação.
Leia com atenção o arquivo /etc/squid.conf - ele tem tantos
comentários que vale por um manual.
Controle de acesso
Não encare estas dicas como um guia completo, pelos mesmos motivos expostos
no item anterior. Mas uma característica do squid que irá agradar a muitos
administradores de pontos de acesso públicos (escolas, empresas...) que vêem
o seu link internet saturado com acessos a sites nem remotamente
relacionados à finalidade da sua rede é a possibilidade de definir listas de
restrição de acesso.
Por exemplo, as seguintes linhas no arquivo /etc/squid.conf impediriam que
qualquer pessoa na sua rede acesse sites cuja URL contenha a palavra
jumento ou a palavra fogueira:
acl asno1 url_regex jumento
acl bruxa1 url_regex fogueira
http_access deny asno1
http_access deny bruxa1
http_access allow all
Outra maneira de restringir o acesso é negar a conexão a determinados sites.
As linhas a seguir impedem acesso ao site da Microsoft (calma, é apenas um
exemplo!) :
acl bill1 dstdomain microsoft.com
http_access deny bill1
http_access allow all
Você pode definir listas de controle de acesso baseado no endereço de
destino ou na origem da requisição. Assim, você pode definir que os alunos
do laboratório "A" não podem acessar determinados sites, enquanto que os
alunos do laboratório "B" acessam sem restrições. Utilizando um script
externo de filtragem (e existem vários pré-prontos) você pode até mesmo
criar regras baseadas no horário de acesso. Assim, você vai poder liberar
que seus usuários façam download de arquivos mp3 durante a noite, e impedir
que o façam durante os horários de maior tráfego.
Postado por brain em junho 10, 2003 10:50 AM