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: 12.216 ]

 


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

Gerenciando inicialização de serviços no Debian

Recuperando a senha do root com o Kurumin

Instalando Jboss no Debian Lenny

Leitura recomendada

Conectar a internet discada por modo texto

Criptografando Shell Script

Cotação do Dólar no Linux em modo texto

Instalando o Kurumin

Servidor FTP vsftpd com usuário admin

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário