01
ago

Squid Proxy: Configurações Automáticas e Performance [atualizado 20/08/2008]

Descobri recentemente pra que serve a opção “Autodetectar as configurações de proxy para esta rede” existente nos navegadores. No caminho me deparei com algumas dicas de performance para o Squid. Então seguem dicas de performance e como configurar seu Squid para ser “Autodetectado” na rede, sem precisar ficar configurando micro por micro para usar o proxy.

 

Performance:
Basta alterar as seguintes opções no arquivo de configuração do Squid, normalmente em /etc/squid/squid.conf:. Caso elas não existam, adicione!

cache_mem 64 MB
cache_swap_low 95
cache_swap_high 98
maximum_object_size 16384 KB
maximum_object_size_in_memory 20 KB
cache_dir ufs /var/spool/squid 2048 16 256

A última opção especifica o tamanho do cache a ser alocado em disco, 2GB no caso (2048MB). Já experimentei 2048 64 64, 2048 64 256, 2048 256 256, mas pelo jeito 2048 16 256 é a melhor combinação, pelo menos para HDs comuns ATA/SATA.
A primeira opção especifica o quanto de memória RAM deve ser usada pelo Squid. Quanto mais melhor! Alias se o cache todo pudesse ficar em RAM, tudo ficaria muito mais rápido. O padrão dele é 8MB, bem mixuruca. Por isso sugiro pelo menos 64MB que já faz diferença. Se você tiver mais memória livre, aumente este valor, os usuários da rede vão agradecer.
As demais opções também se referem ao uso de memoria e ajudam a reduzir o acesso ao disco rígido, que é muito mais lento que memória RAM.

Depois para ativar as alterações:
service squid stop (ou sudo /etc/init.d/squid stop)
squid -z (ou sudo squid -z)
service squid start (ou sudo /etc/init.d/squid start)

Autodetecção do Proxy:

Bom, como vocês já devem saber, quando mais usuários na rede, mais trabalho para configurar o proxy deles, sem contar quando o usuário mexe nesta configuração tentando burlar as políticas de navegação da empresa. Proxy transparente ajuda mas serve apenas para a porta 80, ou seja, acesso a bancos e páginas seguras não vão funcionar automaticamente. Outra situação é quando você quer disponibilizar um acesso básico para usuários visitantes sem ter que mexer nas configuração de proxy deles. Os navegadores (Firefox, Internet Explorer, Opera, etc) normalmente já vem configurados para tentar descobrir automaticamente as configurações de proxy da rede, muito prático.

Resumindo esta “autoconfiguração” depende de 2 padrões/protocolos existentes, um tal de PAC e um tal de WPAD. Vamos configurar os 2 de uma vez para ser compatível com as diversas versões de navegadores.

Precisamos criar um arquivo que contém um JavaScript, na raiz de um servidor Web da rede. Pode estar no mesmo servidor do Squid ou em qualquer outro servidor da rede.

No meu caso: /var/www/html/wpad.dat
function FindProxyForURL(url, host) {
if(isPlainHostName(host) || isInNet(host, “192.168.0.0”, “255.255.255.0”) || dnsDomainIs(host, “speedtest.net”))
return “DIRECT”;
else
return “PROXY 192.168.0.88:3128”;
}

Observe no “if” que caso o site tentando ser acesso seja dentro de minha rede (192.168.0.0) ou seja o speedtest.net, a autoconfiguração diz para que seja acessado diretamente (DIRECT), sem passar pelo proxy. Caso contrario tudo vai passar pelo proxy de minha rede (192.168.0.88 na porta 3128).

Em seguida, vamos criar um link simbólico deste arquivo para outro (assim não precisamos ter 2 cópias do mesmo arquivo e ter que mante-los ambos atualizados).
ln -s /var/www/html/wpad.dat /var/www/html/proxy.pac

Adicione nas configurações do seu servidor web, neste caso o Apache, definições MIME para estes arquivos.

No meu caso adicionei ao /etc/httpd/conf/httpd.conf:
AddType application/x-ns-proxy-autoconfig .dat
AddType application/x-ns-proxy-autoconfig .pac

E reinicie seu Apache:
service httpd restart (ou sudo /etc/init.d/apache2 restart)

[Atualização Importante!]
Defina um host wpad dentro de seu domínio, apontando para o IP de seu servidor web. Exemplo de registro DNS:
wpad.sdev.com A 192.168.0.71

Este host deve fazer parte do domínio especificado no DHCP, conforme descrito abaixo. Por exemplo, se o navegador percebe que o sufixo de domínio é servidor1.cliente.sdev.com, ele vai tentar os seguintes endereços para encontrar o arquivo de configuração do proxy:

  • http://wpad.servidor1.cliente.sdev.com/wpad.dat
  • http://wpad.cliente.sdev.com/wpad.dat
  • http://wpad.sdev.com/wpad.dat

Só falta o DHCP. Insira logo no começo junto com as outras “option”s (/etc/dhcpd.conf):
option domain-name “sdev.com”;
option wpad code 252 = text;
option wpad “http://192.168.0.71/wpad.dat\n”;

Observe que precisa definir um domínio para sua rede, e na terceira linha definir o caminho completo (URL) de onde acessar o arquivo de configuração que você criou. 192.168.0.71 é meu servidor Web com Apache. Teste este caminha de um navegador para confirmar! Ele deve oferecer para fazer o download do arquivo.

Agora reinicei seu DHCP:
service dhcpd restart (ou /etc/init.d/dhcpd restart)

Agora deixe seu navegar configurado para detectar as configurações de proxy automaticamente e faça seus testes para confirmar que ele esta navegando automaticamente pelo proxy da rede.

OBS:

  • Cuidado ao copiar/colar estas configurações deste site, ou qualquer outro site. Possivelmente as áspas (“) serão convertidas para caracteres especiais (levemente inclinadas), o que gera erro nos arquivos de configuração. Verifique e re-digite as áspas.
  • Testei no Nokia N95 e o browser nativo do Symbian não detecta automaticamente.

Links e Refs:

Alroger Filho

9 Responses to “Squid Proxy: Configurações Automáticas e Performance [atualizado 20/08/2008]”

  1. 1
    Júnior Rocha Says:

    Olá amigo, e se o proxy tiver autenticação? Funciona também?

    Porque eu quero que detecte automáticamente, mas que peça autenticação

    Um abraço, aguardo retorno.

  2. 2
    Alroger Filho Says:

    Sim! Outra grande utilidade.

  3. 3
    Squid Proxy: Configura??es Autom?ticas e Performance - Under-Linux.org F?runs Says:

    […] Proxy: Configura??es Autom?ticas e Performance Squid Proxy: Configura??es Autom?ticas e Performance Link: Cafe TI – pra perder o sono. ? Blog Archive ? Squid Proxy: Configurações Automáticas e […]

  4. 4
    PALUDO Says:

    Olá amigo, fiz a configuração igual a sua, e nada do firefox 3 navegar
    o resto funciona tudo!! mas o firefox 3 merda não. to pensando em adotar novamente o velho e bom internet explorer nas máquinas windows e nas debian rodo via wine, por favor, me dê uma luz!!!

  5. 5
    Alroger Filho Says:

    Ah, não diga isso!
    Se você se refere a detecção automática, basta ativa-la nas configurações do Firefox, e por via das dúvidas apagar o cache fechar o Firefox e abrir novamente.
    Lembre do wpad.dominio.com apontando para seu servidor HTTP que tem o arquivo wpad…

  6. 6
    Marcello Says:

    Infelizmente só funciona no IE. Já tentei de tudo, mas o firefox não aceita em modo automático.
    Tem alguma dica para firefox aceitar o wpad em modo automático?
    Obrigado!

  7. 7
    Alroger Filho Says:

    Marcello, aqui funciona.
    Você colocou o Proxy em Automatico no Firefox?
    Se voce pingar wpad.dominio.com (o dominio que seu servidor DHCP fornece) ele resolve para o IP correto do seu servidor HTTP onde o arquivos wpad está? Usando este IP você consegue navegar no http://IP para encontrar o arquivo wpad?

  8. 8
    Tobxxx Says:

    Olá!
    Aqui funciona com o Internet Explorer (via DHCP). Via DNS (que é o único jeito que o Firefox consegue obter) não tem jeito. Ele não consegue dar ping em wpad.meudomino.local . Não acha o domínio de jeito nenhum. Será que tem alguma coisa a mais que devo fazer? Eu configuirei corretamente o CNAME no DNS, o que será que estou errando?

  9. 9
    Alroger Filho Says:

    Tobias, se você não consegue pingar o wpad.meudominio então o DNS está configurado errado ou o PC não está usando o DNS que você acha que está.

© 2017 Cafe TI – pra perder o sono. | [RSS] Artigos and [RSS] Comentários

Design by Web4 Sudoku - Powered By Wordpress