Squid
De Fórum Debian Wiki
Índice de conteúdo |
Introdução
O que é o Squid?
É um dos servidores Proxy mais utilizados no mercado, possui licença de uso livre (GNU/GPL). Pode ser utilizado desde controle de acessos à Internet, ou somente como cache http, ftp e outros protocolos.
Instalação
A instalação do Squid é bastante simples. Na maioria dos casos apenas rode:
aptitude install squid
Após isso, vá para a parte de #Configuração.
Configuração
A configuração do squid pode ser básica, criando-se apenas uma ACL e mudando a proxy no navegador/programa da máquina cliente ou bastante complexa, utilizando conceitos de proxy transparente, limitando acesso em certos horário e até limitando a banda.
Uma configuração básica é simplesmente criar uma ACL (como no exemplo abaixo) e depois alterar o endereço da proxy nos navegadores das máquinas (geralmente a porta padrão é 3128).
Caso esteja procurando algo mais complexo, leia esse documento e veja o que se aplica as suas necessidades.
Criando uma ACL
ACL são regras de acesso. Elas geralmente são bastante maleáveis. Por exemplo, você pode criar uma ACL que libere o acesso de tal ip apenas durante o horário de almoço. E em outras partes do dia o squid simplesmente bloqueia o acesso.
Nesse documento iremos criar uma ACL básica para liberar o acesso de uma rede. É claro que você deverá mudar a faixa de ips caso a sua for diferente.
Abra então o arquivo de configuração do squid, geralmente /etc/squid/squid.conf:
acl minha_rede src 192.168.0.0/255.255.255.0 http_access allow minha_rede
Nesse caso, o squid dará acesso para qualquer máquina com IP 192.168.0.0 até 192.168.0.255 e máscara de subrede 255.255.255.0.
Proxy transparente
Na maioria das redes onde se tem uma proxy acessamos ela alterando a configuração do navegador ou programa que vamos utilizar. Muitas vezes essa proxy está proibindo o acesso a algum recurso ou site porém apenas mudando a configuração no navegador ou programa não utilizamos mais a proxy, deixando o acesso livre.
Para contornar isso podemos colocar o squid no gateway da rede e redirecionar o tráfego da porta 80 para a porta do squid 3128. Assim não precisamos mais configurar a proxy em todas as máquinas pois automaticamente elas estarão utilizando a proxy.
Iniciamos criando um regra no iptables:
iptables -t nat -A PREROUTING -p TCP --dport 80 -j REDIRECT --to-port 3128
Agora vem a configuração do squid, que varia dependendo da versão. Para saber qual a versão do seu squid, use
squid -v
Agora veja a configuração para a #Versão 2.5 ou menor e a #Versão 2.6 ou maior;
Versão 2.5 ou menor
Por favor, edite.
Versão 2.6 ou maior
Abra o squid.conf e procure por http_port. Geralmente se encontra algo assim:
http_port 3128
Para que possamos utilizar o squid como proxy transparente substitua a linha acima por:
http_port 3128 transparent
E reinicie seu squid:
/etc/init.d/squid restart
Fazendo o Squid utilizar outro Squid
Abra o /etc/squid/squid.conf e adicione as seguintes linhas
never_direct allow nome_do_seu_acl cache_peer ip_ou_dns_do_servidor parent 3128 0 no-query default
Explicação
nome_da_acl = Aqui você coloca a acl em questão. ip_ou_dns_do_servidor = IP ou DNS do servidor externo. Ou seja aquele que você quer conectar. 3128 = Porta TCP que você usa para conectar no squid externo. 0 = Porta ICP. Caso tenha dúvidas deixe 0.
Certo e se o servidor externo requisitar um usuário e senha?
Coloque no final da linha cache_peer o seu usuário e senha da seguinte forma.
login=seu_usuário:sua_senha
Agora é só reiniciar o squid e está funcionando.
Links
- Squid Cache - Página official do projeto.
- ViSolve Squid Support - Detalhes de todas as op¢ões, dicas de configura¢ão e algo mais.
