Corrigindo a opção de Delay Pools e autenticação Ldap do Squid 2.7.8_1 no PfSense 1.2.3-Release

Publicado por Rafael Igor Alexandre Vasco em 31/03/2010

[ Hits: 13.175 ]

 


Corrigindo a opção de Delay Pools e autenticação Ldap do Squid 2.7.8_1 no PfSense 1.2.3-Release



Olá galera do VOL, este documento visa para corrigir o Squid 2.7.8_1 encontrado no PfSense 1.2.3-Release.

O pacote do Squid 2.7.8_1, que na verdade usa o pacote 2.7.7, não foi compilado com a opção para delay pools, que é responsável pelo limite de tráfego, por isso você não poderá aplicar o limite existente na configuração da interface web.

Para este material já deduzo que o Squid esteja instalado na versão 2.7.8_1(2.7.7) do PfSense 1.2.3-Release, caso você tenha atualizado o PfSense poderá ser que tal problema não exista.

Vamos lá, primeiro vamos constatar o erro.

Abra o shell do PfSense, via ssh ou local mesmo e digite:

# pkg_info | grep squid

Deve retornar algo como:

squid-2.7.7         HTTP Caching Proxy
squid_radius_auth-1.10 RADIUS authenticator for squid proxy 2.5 and later

Ok, confirmado que a versão do Squid é a 2.7.7, agora vamos ativar o limite de tráfego.

Abra a interface web do PfSense e vá em Services -> Proxy Server -> Traffic Mgmt.

Aplique um limite qualquer e clique em save. Após, volte ao shell do PfSense e digite:

# squid -z

Deve retornar algo como:

parseConfigFile: squid.conf:59 unrecognized: 'delay_pools'
parseConfigFile: squid.conf:60 unrecognized: 'delay_class'
parseConfigFile: squid.conf:61 unrecognized: 'delay_parameters'
parseConfigFile: squid.conf:62 unrecognized: 'delay_initial_bucket_level'
parseConfigFile: squid.conf:63 unrecognized: 'delay_access'
Creating Swap Directories

Ou seja, ele não consegue "entender" os parâmetros do delay pools.

Agora vamos resolver o problema:

1° Vamos para o Squid

Crie um script com o seguinte conteúdo:

#!/bin/sh
kill `ps -auxw | grep proxy_monitor.sh | grep -v grep | awk '{print $2}'`
/usr/local/sbin/squid -k shutdown
while [ `ps auxw | grep "squid -D" | grep -v grep |awk '{print $2}'| wc -l | awk '{ print $1 }'` -gt 0 ] ; do
   echo 'please wait...squid still shutting down'
   sleep 5
done

Após aplique permissão de execução:

# chmod +x nome_do_arquivo.sh

E depois execute:

# ./nome_do_arquivo.sh

Obs.: Código retirado do script:http://pfsense-cacheboy.googlecode.com/svn/trunk/script/squid2.7.7.sh

Fonte: http://code.google.com/p/pfsense-cacheboy/wiki/Pfsense_Squid2

Agora com o Squid parado, vamos instalar os pacotes necessários para que ele funcione corretamente, mas antes uma observação:

Se apenas trocarmos o pacote do Squid por outro ele vai reclamar a versão do openldap-client, que tem uma versão associada a cada versão do Squid.

Portanto como nós queremos atualizar o nosso Squid, teremos também que atualizar o openldap-client, pois caso você queria implantar autenticação pelo AD via ldap ele não irá funcionar adequadamente.

Remova o pacote atual do openldap-client e o Squid:

# pkg_delete -f openldap-client-2.4.10
# pkg_delete -f squid-2.7.7


Modifique a fonte http do pkg, baixe e instale os novos pacotes

# setenv PACKAGESITE http://files.pfsense.org/packages/7/All/
# pkg_add -r openldap-client-2.4.11
# pkg_add -r squid-2.6.21


Agora vamos verificar se está tudo ok!

# squid -z

Deve retornar algo como:

Creating Swap Directories

Inicie o Squid clicando em save em qualquer aba do gerenciador web proxy server.

Pronto, o Squid está com a versão compilada para delay pools e a versão correta do openldap-client.

Essa dica agora é pra quem quer configurar a autenticação para o AD utilizando ldap. Existe um bug na programação da interface web na aba "Auth Settings", quando você escolhe a opção ldap, ele não desabilita o drop down da versão e nem o campo "Ldap Search Filter". Na verdade ele não executa corretamente a habilitação e desabilitação dos campos de acordo com os tipos de autenticação.

Para resolvermos isso teremos que alterar o arquivo /usr/local/pkg/squid.inc.

Substitua a string "ldap_password" pela "ldap_pass", com o comando sed fica bem fácil:

# sed 's/ldap_password/ldap_pass/g' /usr/local/pkg/squid.inc > squid.inc.tmp
# mv squid.inc.tmp /usr/local/pkg/squid.inc


Pronto, clique na aba "Auth Settings" para recarregar a página e verá que está tudo ok.

Espero ter ajudado!

Galera, um forte abraço e até outra oportunidade.

Referências:
Outras dicas deste autor

Recuperando a senha do root com o Kurumin

Instalando Jboss no Debian Lenny

Gerenciando inicialização de serviços no Debian

Leitura recomendada

Funções de diretórios

Nagios Core 4.0.6 no CentOS 6.5

Lazarus no Fedora

Configurar IP estático no Damn Small Linux

Ambiente seguro com chroot

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts