Squid 3.3.10 para pfsense 2.0 e 2.1 com filtro de SSL/HTTPS
-
Pessoal Boa Tarde,
Alguem já testou o squid3-dev com o Dansguardian ?
Estou começando um ambiente de teste e gostaria de saber se tem gente usando e como está se comportando o ambiente. -
Sim, o pacote squid-3.3.8.tbz não está em http://files.pfsense.org/packages/amd64/8/All/
-
Bom dia Marcelloc!
Andei lendo o tópico, mas fiquei confuso com algumas coisas. Eu não tenho interesse em usar o filtro SSL por enquanto, a maioria dos meus clientes usa proxy não transparente com regras de firewall liberando só estritamente o necessário.
Minhas perguntas são:
1 - Essa versão em desenvolvimento é a mesma que está na lista de pacotes do PFSense como Squid3-Dev?
2 - Nessa versão já está incluida a questão do balanceamento de carga e Fail Over?
3 - Como é feita a integração com o SquidGuard e com o AD?(Se puder passar o link para a resposta do tópico em especifico, pois li aqui e não filtrei a informação correta)
4 - Para autenticação transparente, usando aquele esquema do Samba, é possivel usar com essa versão? -
1 - Essa versão em desenvolvimento é a mesma que está na lista de pacotes do PFSense como Squid3-Dev?
Exatamente a mesma
2 - Nessa versão já está incluida a questão do balanceamento de carga e Fail Over?
Ainda não incluí nenhum teste ou regra a mais para balanceamento de link.
Se não houve alteração no tratamento das regras da aba floating na 2.0.3 ou na 2.1, os tutoriais disponíveis no fórum devem funcionar.3 - Como é feita a integração com o SquidGuard e com o AD?(Se puder passar o link para a resposta do tópico em especifico, pois li aqui e não filtrei a informação correta)
A integração que o Luis Gustavo fez, já faz parte do pacote.
4 - Para autenticação transparente, usando aquele esquema do Samba, é possivel usar com essa versão?
Perfeitamente. :)
-
Fiz uma vm no XenServer e não estou conseguindo fazer o proxy autenticado com o squid3-dev.
Eu fiz um teste. Criei uma nova vm e instalei apenas o squid (2). funcionou ok.
Então desinstalei o squid(2) e instalei o squid3 e aquelas dependencias lá! não mudei nenhuma configuração, contudo não está funcionando. O browser não abre o prompt pra autenticação!any ideas?
-
@UnDr3aD:
Então desinstalei o squid(2) e instalei o squid3 e aquelas dependencias lá! não mudei nenhuma configuração, contudo não está funcionando. O browser não abre o prompt pra autenticação!
Veja se o squid está escutando na porta que você configurou. Se não estiver, habilite o ipv6, mate todos os processos do squid e em seguida salve as configurações para iniciar o daemon novamente.
É importantíssimo para o sysadmin olhar os logs para identificar erros.
-
Marcello eu novamente lhe atormentando.
Encontrei mais 2 probleminhas.
O primeiro que quando inicializo o serviço do squid e tento rodar o squid -k reconfigure via terminal ele não roda apresenta a seguinte mensagem:
squid -k reconfigure
squid: ERROR: Could not send signal 1 to process 40565: (3) No such processMas o serviço esta inicializado mas num consigo ver se tem algum erro de configuração.
Tentei usar o squid-dev usando o openldap ou autenticação local porem o proxy so recusa conexão.
Vi esta mensagem abaixo no log o cache do squid.
ail -f /var/squid/logs/cache.log
2013/05/16 17:07:44 kid1| Max Mem size: 131072 KB
2013/05/16 17:07:44 kid1| Max Swap size: 2097152 KB
2013/05/16 17:07:44 kid1| Rebuilding storage in /var/squid/cache (no log)
2013/05/16 17:07:44 kid1| Using Least Load store dir selection
2013/05/16 17:07:44 kid1| Current Directory is /usr/local/www
2013/05/16 17:07:44 kid1| Loaded Icons.
2013/05/16 17:07:44 kid1| HTCP Disabled.
2013/05/16 17:07:44 kid1| WARNING: no_suid: setuid(0): (1) Operation not permitted
2013/05/16 17:07:44 kid1| sendto FD 25: (1) Operation not permitted
2013/05/16 17:07:44 kid1| ipcCreate: CHILD: hello write test failedpfSense 2.1 amd64. squid 3.3.8 -dev
[2.1-RELEASE][root@noc]/root(22): /usr/pbi/squid-amd64/sbin/squid -d 5
[2.1-RELEASE][root@noc]/root(22): 2013/09/27 00:46:19 kid1| Starting Squid Cache version 3.3.8 for amd64-portbld-freebsd8.3... 2013/09/27 00:46:19 kid1| Process ID 77987 2013/09/27 00:46:19 kid1| Process Roles: worker 2013/09/27 00:46:19 kid1| With 9799 file descriptors available 2013/09/27 00:46:19 kid1| Initializing IP Cache... 2013/09/27 00:46:19 kid1| DNS Socket created at [::], FD 7 2013/09/27 00:46:19 kid1| DNS Socket created at 0.0.0.0, FD 8 2013/09/27 00:46:19 kid1| Adding domain domain.com.br from /etc/resolv.conf 2013/09/27 00:46:19 kid1| Adding nameserver 127.0.0.1 from /etc/resolv.conf 2013/09/27 00:46:19 kid1| Adding nameserver 8.8.8.8 from /etc/resolv.conf 2013/09/27 00:46:19 kid1| Adding nameserver 8.8.4.4 from /etc/resolv.conf 2013/09/27 00:46:19 kid1| Adding nameserver 200.176.2.12 from /etc/resolv.conf 2013/09/27 00:46:19 kid1| Logfile: opening log /var/squid/logs/access.log 2013/09/27 00:46:19 kid1| WARNING: log parameters now start with a module name. Use 'stdio:/var/squid/logs/access.log' 2013/09/27 00:46:19 kid1| WARNING: no_suid: setuid(0): (1) Operation not permitted 2013/09/27 00:46:19 kid1| Unlinkd pipe opened on FD 13 2013/09/27 00:46:19 kid1| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec 2013/09/27 00:46:19 kid1| Store logging disabled 2013/09/27 00:46:19 kid1| Swap maxSize 102400 + 8192 KB, estimated 8507 objects 2013/09/27 00:46:19 kid1| Target number of buckets: 425 2013/09/27 00:46:19 kid1| Using 8192 Store buckets 2013/09/27 00:46:19 kid1| Max Mem size: 8192 KB 2013/09/27 00:46:19 kid1| Max Swap size: 102400 KB 2013/09/27 00:46:19 kid1| Rebuilding storage in /var/squid/cache (no log) 2013/09/27 00:46:19 kid1| Using Least Load store dir selection 2013/09/27 00:46:19 kid1| Current Directory is /root 2013/09/27 00:46:19 kid1| Loaded Icons. 2013/09/27 00:46:19 kid1| HTCP Disabled. 2013/09/27 00:46:19 kid1| WARNING: no_suid: setuid(0): (1) Operation not permitted 2013/09/27 00:46:19 kid1| sendto FD 17: (1) Operation not permitted 2013/09/27 00:46:19 kid1| ipcCreate: CHILD: hello write test failed
[2.1-RELEASE][root@noc]/root(22): netstat | more
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 0 0 noc.3128 . CLOSED
tcp4 0 0 noc.https d-hall.47294 FIN_WAIT_2
tcp4 0 0 noc.https d-hall.47293 FIN_WAIT_2
tcp4 0 0 noc.ssh d-hall.48163 ESTABLISHEDO serviço sobe alegremente mas persistentemente CLOSED.
O que será que esse IPC está tentando fazer que não consegue ?
Algum outro processo não estava pronto ou conflito ?Num outro servidor (com outro backup de configuração, ambos sem pacotes) deu certo. Estou tentando identificar alguma pista comparando as duas instalações mas no momento não sei bem o que procurar.
-
Habilite o ipv6, mate todos os processos do squid e salve a configuração.
-
eu fiz uma CA interna no pfSense e criei um certificado nela.
exportei os dois e instalei no root directories (algo assim).sem o proxy no navegador eu consigo acessar o pfsense diboa, o certificado é validado direitinho! Contudo, ao configurar o proxy, o squid bloqueia a conexão!
isso aqui é do cache.log2013/09/27 10:26:17 kid1| clientNegotiateSSL: Error negotiating SSL connection on FD 17: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol (1/-1)
isso é o que aparece na tela:
The following error was encountered while trying to retrieve the URL: https://192.168.0.50/* Failed to establish a secure connection to 192.168.0.50 The system returned: (92) Protocol error (TLS code: X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN) Self-signed SSL Certificate in chain: /C=BR/ST=DF/L=BSB/O=NTU/emailAddress=user@domain.com/CN=pfSense-ca This proxy and the remote host failed to negotiate a mutually acceptable security settings for handling your request. It is possible that the remote host does not support secure connections, or the proxy is not satisfied with the host security credentials. Your cache administrator is admin@localhost.
-
Marque a opção "accept certificate errors" para o usuário decidir se quer ou não acessar um site que não tem um certificado válido.
-
Marque a opção "accept certificate errors" para o usuário decidir se quer ou não acessar um site que não tem um certificado válido.
vlw, funfou "OK". agora apresenta o erro de certificado.
tem alguma forma de fazer o proxy reconhecer esse certificado (do próprio pfsense), para que as telas de erro do squid não apresentem erro de certificado? -
Instala o crt da ca em cada maquina.
Importe como ca confiável.
-
Instala o crt da ca em cada maquina.
Importe como ca confiável.
aí que está! eu já fiz isso!
Sem configurar o proxy no navegador o site não da erro nenhum de ssl. Funciona perfeitamente! Contudo ao configurar o proxy o erro de ssl começa a ser apresentado!
Estou testando isso acessando o pfSense com ssl ativado (https) e nas telas de erro do proxy. -
Neste caso deve ser necessário incluir o CRT da ca na lista de certificados raiz que o squid está lendo.
Não lembro de cabeça onde fica.
-
Habilite o ipv6, mate todos os processos do squid e salve a configuração.
Ia mesmo demorar para chegar nesse ponto. Agora funcionou certinho.
Pelo que entendi o squid tem algum tipo de suporte nativo a IPv6 que dependendo do contexto pode apresentar problema ao manipular sockets.
Se estiver fácil de apontar material de referência sobre esse assunto, estaria disposto a ler. -
Não sei se é dependência ou bug.
Tenho uma versão do squid 3.3.5 no meu repositório sem o ipv6 compilado e sobe tranquilo na 2.0.3 e 2.1
-
Neste caso deve ser necessário incluir o CRT da ca na lista de certificados raiz que o squid está lendo.
Não lembro de cabeça onde fica.
joguei os certificados dentro das pastas /usr/local/share/certs e /usr/pbi/squid-amd64/share/certs, mas não surtiu efeito.
já reiniciei o servidor pra ver, mas também nada. -
Exportou colando o hash no nome do certificado?
/usr/bin/openssl x509 -hash -noout -in /tmp/cert.pem
trecho do código do squid-dev que gera isso
if ($cert_count < 10){ conf_mount_rw(); #create ca-root hashes from ca-root-nss package log_error("Creating root certificate bundle hashes from the Mozilla Project"); $cas=file(SQUID_LOCALBASE.'/share/certs/ca-root-nss.crt'); $cert=0; foreach ($cas as $ca){ if (preg_match("/--BEGIN CERTIFICATE--/",$ca)) $cert=1; if ($cert == 1) $crt.=$ca; if (preg_match("/-END CERTIFICATE-/",$ca)){ file_put_contents("/tmp/cert.pem",$crt, LOCK_EX); $cert_hash=array(); exec("/usr/bin/openssl x509 -hash -noout -in /tmp/cert.pem",$cert_hash); file_put_contents(SQUID_LOCALBASE."/share/certs/".$cert_hash[0].".0",$crt,LOCK_EX); $crt=""; $cert=0; } } }
-
Exportou colando o hash no nome do certificado?
/usr/bin/openssl x509 -hash -noout -in /tmp/cert.pem
trecho do código do squid-dev que gera isso
if ($cert_count < 10){ conf_mount_rw(); #create ca-root hashes from ca-root-nss package log_error("Creating root certificate bundle hashes from the Mozilla Project"); $cas=file(SQUID_LOCALBASE.'/share/certs/ca-root-nss.crt'); $cert=0; foreach ($cas as $ca){ if (preg_match("/--BEGIN CERTIFICATE--/",$ca)) $cert=1; if ($cert == 1) $crt.=$ca; if (preg_match("/-END CERTIFICATE-/",$ca)){ file_put_contents("/tmp/cert.pem",$crt, LOCK_EX); $cert_hash=array(); exec("/usr/bin/openssl x509 -hash -noout -in /tmp/cert.pem",$cert_hash); file_put_contents(SQUID_LOCALBASE."/share/certs/".$cert_hash[0].".0",$crt,LOCK_EX); $crt=""; $cert=0; } } }
não fiz isso aí não! e acho que também não entendi isso aí!
eu somente colei os .crt nos diretórios supracitados! Eu ainda não entendi o que eu devo fazer com esse código aí! sry, but I'm a newbie! -
O que você tem no diretório dos certificados?
Um monte de arquivos ou só um?
Consegue ver que são certificados e que o nome do arquivo é o hash gerado pelo comando do openssl que passei no post anterior?