O principal objetivo de um
servidor proxy é disponibilizar que hosts clientes de uma rede interna (privada) consigam acessar uma rede externa (pública), como a Internet por exemplo. O servidor proxy Squid geralmente é instalado em uma máquina que tenha acesso direto à rede externa (pública), sendo que os clientes desta rede efetuam as solicitações através deste servidor.
Por isso é chamado de proxy, pois trabalha como um agente procurador, ou seja, ele faz as solicitações a Internet em nome dos clientes.
Instalação
O
Squid geralmente é um pacote candidato nos repositórios do Ubuntu, portanto basta correr o comando no terminal:
sudo apt-get update (atualizando os pacotes)
sudo apt-get install squid
Após isso devemos parar o serviço para que possamos configurá-lo:
sudo /etc/init.d/squid stop
Configuração
Vamos fazer um backup do arquivo de configuração do Squid (padrão):
cd /etc/squid
$ cp squid.conf squid.conf.original
$ > squid.conf
Pronto, deixamos o arquivo de configuração do squid zerado!
Obs.: algumas pessoas preferem excluir este arquivo por ele ser bastante extenso. Prefiro backupear, é mais seguro.
Agora vamos editar o arquivo de configuração do Squid, colando as configurações abaixo no seu
squid.conf:
#----------------------------------#
# Arquivo de configuração do Squid
# Autor: Gleudson Junior
# gleudson.jr@gmail.com
# http://gleudson.blogspot.com
# Licença: GNU/GPL
#----------------------------------#
#-----------------------------------------#
# CONFIGURAÇÕES PARA AUTENTICAÇÃO DO PROXY
#-----------------------------------------#
# INFORMA O CAMINHO DO PROGRAMA DE AUTENTICAÇÃO E O ARQUIVO DE LOGINS E SENHAS
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
# PADRÃO
auth_param basic children 5
# DEFINE O TIMEOUT DE LOGON NO PROXY
auth_param basic credentialsttl 1 hour
# DEFINE O TEXTO QUE APARECERÁ NA CAIXA DE LOGIN
auth_param basic realm Digite seu Login e Sua Senha
# DESATIVA A VERIFICAÇÃO DE LETRAS MAIÚSCULAS E MINÚSCULAS
auth_param basic casesensitive off
#-----------------------#
# CONFIGURAÇÕES BASICAS
#-----------------------#
# PORTA DE ACESSO
http_port 3128
# DEFINE O NOME DO SERVIDOR (COMANDO hostname)
visible_hostname nome_do_servidor
# ATIVA A LINGUAGEM DAS PAGINAS DE ERRO PARA PORTUGUÊS
error_directory /usr/share/squid/errors/Portuguese/
# OPÇÕES DO CACHE
cache_dir ufs /var/cache/squid 5000 16 256
# LOG
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
# ACLS
acl manager proto cache_object
# LIBERA O ACESSO PARA O IP DE LOOPBACK
acl localhost src 127.0.0.1/32
acl SSL_ports port 443 563
acl Safe_ports port 80 21 70 210 888
acl CONNECT method CONNECT
# PEDE A AUTENTICAÇÃO NO PROXY
acl autenticados proxy_auth REQUIRED
# DEFINE O CAMINHO DO ARQUIVO DE SITES BLOQUEADOS
acl sitebloqueado url_regex -i "/etc/squid/sitebloqueado"
http_access deny sitebloqueado
# DEFINE O CAMINHO DO ARQUIVO DE PALAVRAS BLOQUEADAS
acl palavrabloq dstdom_regex "/etc/squid/palavrabloq"
http_access deny palavrabloq
# DEFINE O IP E MASCARA DA REDE INTERNA
acl permitidos src 192.168.1.0/24
acl all src 192.168.1.0/24
http_access allow autenticados permitidos
http_access deny all
Nota: Você pode baixar esse .conf através do link:
download squid.conf
Antes de startar o serviço será necessário criamos e darmos acesso a alguns diretórios do sistema de arquivo. Para tanto abra um terminal e corra os seguintes comandos:
1. Criar o arquivo que irá armazenar os logins e senhas dos usuários do Proxy:
sudo touch /etc/squid/passwd
2. Criar os arquivos que receberão os sites e as palavras a serem bloqueadas para acesso:
sudo touch /etc/squid/sitebloqueado
$ sudo touch /etc/squid/palavrabloq
3. Dar permissão ao diretório onde será armazenado nosso cache. O ideal é darmos a permissão ao dono, mas aqui daremos permissão total para facilitar:
sudo chmod 777 /var/cache/squid
Obs.: Os nomes podem ser escolhidos por vocês, apenas devendo igualá-los, tanto no squid.conf quanto no próprio diretório.
4. Pronto, agora vamos levantar o serviço:
sudo /etc/init.d/squid start
Se tudo ocorreu bem, teremos nosso Squid em produção!
Você pode testá-lo, setando o proxy no seu browser, através das configurações de rede.