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:
Nenhum comentário foi encontrado.