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

Ferramentas pessoais