Squid

Squid

O Squid é um Servidor proxy cache de alto desempenho que suporta os protocolos HTTP, HTTPS,FTP, TLS, SSL. Reduz o uso da banda e melhora os tempos de resposta de páginas solicitadas que estão em cache. O Squid tem um grande controle de ACLS sendo muito flexível. Ele aumenta a velocidade de entrega da página solicitada ao cliente. Funciona em Linux, Unix e Windows, é licenciado sob o GNU GPL.

Um servidor proxy é uma ferramenta importante em uma rede interna que tenha contato com outra pública como a internet, pois implementa uma série de facilidades e controles, de modo a possibilitar que máquinas de uma rede privada possam acessar uma rede pública sem que para isso tenham uma ligação direta.

Ao final deste documento saberemos como instalar e configurar basicamente um servidor proxy Squid, e como faze-lo funcionar como proxy transparente.

Instalando e Configurando

Instalando o Squid

Instalando os pacotes necessários

sudo aptitude install squid squid-common

verificando se o pacote foi instalado corretamente

sudo dpkg -l |grep squid

sudo dpkg -l |grep squid
squid-common  2.6.5-4ubuntu2  Internet Object Cache (WWW proxy cache)

Configuração básica do Squid

cd /etc/squid

sudo cp squid.conf  squid.conf.sample

Editando o arquivo de configuração:

sudo vim /etc/squid/squid.conf

descomente as seguintes opções:

Porta padrão onde o squid vai escutar as solicitações http_port 3128.

Nome do host em rede, para exibição em possíveis erros nas solicitações dos clientes.

visible_hostname nomedohost.

ex: visible_hostname serverproxy.

"Isso vai fará com que quando o Squid ler o arquivo squid.conf ele apresente o nome do servidor definido na opção visible_hostname"

agora salve o arquivo

" esc"

:wq!

Iniciando o Squid

Isso vai criar a estrutura do cache do Squid de acordo com as definiçoes da 'opção cache_dir' no arquivo squid.conf.

sudo  squid -z

Iniciando o Daemon do Squid

 sudo /etc/init.d/squid start
 * Starting Squid HTTP proxy squid              [ OK ]

verificando se a porta 3128 esta aberta e escutando:

sudo netstat -nlt

Conexões Internet Ativas (sem os servidores)
Proto Recv-Q Send-Q Endereço Local          Endereço Remoto         Estado      
    
tcp        0      0 0.0.0.0:3128            0.0.0.0:*                OUÇA

A saida deve ser algo como isso, dependendo dos serviços que estão rodando em sua máquina.

Pronto nosso servidor já esta funcionando!!! =)

Agora é so configurar o navegador das estações.

ex: 10.0.0.1:3128

onde 10.0.0.1 é o ip do servidor proxy e 3128 a porta do squid.

Proxy Transparente

Agora precisamos adicionar a seguinte regra no Iptables, isso ira redirecionar o tráfego da porta 80 para a porta 3128

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 

Entendendo os LOGS e estrutura do cache

  • O diretorio onde se encontram os arquivos são gerados: /var/log/squid

  • Registra toda atividade como URLS acessadas falha na autenticação: /var/log/squid/access.log

  • Registra informações do cache: /var/log/squid/cache.log

  • Registra atividade dos objetos gravados e retirados do cache: /var/log/store.log

Dica do dia

Monitoramento o acesso dos usuários de forma simples e tempo real

sudo tail -f /var/log/access.log | grep " IP da máquina que se quer monitorar"

Ex:

sudo tail -f /var/log/access.log | grep " 10.0.0.1"

Obs: Existem outras ferramentas mais complexas que geram relatórios detalhados, como o SARG (squid analysis report generator), projeto de um Brasileiro chamado Pedro Orso. Mais informações em http://sarg.sourceforge.net .

Estrutura do cache

O cache do squid é o local onde se armazena os objetos.
Observando a opção "cache_dir" no arquivo de configuração /etc/squid.conf podemos ver o diretorio default é o /var/log/squid.
como no exemplo : /var/spool/squid 100 16 256

  • 100 = numero de Megas 16 = Diretórios 256 = Subdiretórios

Para saber mais

Créditos

CategoryExpandir

Squid (last edited 2011-09-19 23:18:55 by localhost)