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.
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.
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.
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.
O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.