SquidGuard + Proxy Transparente (SSL Interception)
-
Bem, vim aqui ao forum justamente para ver se alguém já fez o caminho das pedras para conseguir rodar o pfsense 2.3.2 com proxy transparente e filtrando SSL.
A última vez que consegui botar para funcionar esse filtro foi na versão 2.1.5, desde então, tenho tentado, mas sem sucesso.
Ocorre justamente o que vocês informaram…
Fica dando erro de certificado, mesmo com certificado instalado.Alguem conseguiu fazer funcionar?
Pode passar como fez?Abraço
-
Bom dia,
Aqui ocorre a mesma coisa: Erro de certificado, mesmo ele instalado em todas as máquinas.
O SquidGuard bloqueia corretamente as categorias que estão bloqueadas (shallalist), porém a empresa inteira não consegue acessar nenhum site que seja em HTTPS.
Já segui todas as dicas do fórum e não funciona.Por exemplo, tentando acessar o site "chrome.google.com":
Pelo Chrome, ele apresenta o erro:
"_Sua conexão não é particular
Invasores podem estar tentando roubar suas informações de chrome.google.com (por exemplo, senhas, mensagens ou cartões de crédito). NET::ERR_CERT_COMMON_NAME_INVALID
Este servidor não conseguiu provar que é chrome.google.com. O certificado de segurança é de http. Isso pode ser causado por uma configuração incorreta ou pela interceptação da sua conexão por um invasor._"
Logo abaixo há um link: "Ir para chrome.google.com (não seguro)"
Se eu clico nele, o seguinte erro é mostrado:
"_**ERROR
The requested URL could not be retrieved**
The following error was encountered while trying to retrieve the URL: https://http/*
Unable to determine IP address from host name http
The DNS server returned:
Server Failure: The name server was unable to process this query.
This means that the cache was not able to resolve the hostname presented in the URL. Check if the address is correct._"Estou utilizando a última versão do pfSense: 2.3.2-RELEASE.
O que estou fazendo para contornar a situação é pegar os IP's dos sites HTTPS que o pessoal precisa acessar, e dando um bypass nele.
No Chrome quando dá o erro de certificado, ele mostra o IP do site. Eu pego o endereço IP, vou nas configurações do Squid e adiciono o IP em "Bypass Proxy for These Destination IPs".Obviamente não é o ideal. Toda hora alguém precisa acessar um site HTTPS e eu tenho que ficar liberando o IP. Sem contar que vários sites tem mais de um IP, e etc.
Como já disseram em outros tópicos, notei que na tela de erro a data que ele informa está 3 horas adiantado (agora são 10h10 aqui, e no erro mostra que é 13h10), apesar do horário do pfSense estar correto. Não sei se isso influencia em algo, e também não sei se é possível corrigir esse horário.
Enfim, se alguém tiver a solução por favor nos informe.
Obrigado.
-
Rodrigo, sobre o erro de horário, dei uma dica neste tópico aqui:
https://forum.pfsense.org/index.php?topic=115570.msg641470#msg641470
Mas não é este o problema com os acessos HTTPS.
-
Realizando diversos testes, constatei o que eu disse mais acima.
SquidGuard só funciona 100% nestes dois casos:
Proxy ATIVO
ou
Proxy transparente SEM INTERCEPTAÇÃO SSL
-
rodrigo.passini pra tu não ficar que nem loco liberando por IP, cria uma target para o site no squidguard.
brunok:
Nesse caso você diz para não deixarmos marcado o SSL correto? Aqui eu uso dessa forma, entretanto para o cara visualizar minha mensagem que eu coloquei no meu squidguard ele precisa ir naquela opção de: ir para página não segura, que o google da. E eu queria poder usar o SSL para resolver isso.
-
Bom dia,
no meu foi realmente problema no horário, para resolver esses problemas fiz 2 procedimentosem Genereal setup / Timeservers
coloquei o servidor ntp.br
a.st1.ntp.br 200.160.7.186 e 2001:12ff:0:7::186
b.st1.ntp.br 201.49.148.135
c.st1.ntp.br 200.186.125.195
d.st1.ntp.br 200.20.186.76
a.ntp.br 200.160.0.8 e 2001:12ff::8
b.ntp.br 200.189.40.8
c.ntp.br 200.192.232.8
gps.ntp.br 200.160.7.193 e 2001:12ff:0:7::1932 em DHCP tem um carinnha que chama
Time format change
deixa selecionado para que ele possa alterar o horário para o do servidor pfsenseAbç.
Lembando não esqueça de ver a validade do certificado e tbm, verificar se ele realmente está na Autoridade de Raiz Confiável…. -
Meu querido Douglas Araujo
Desculpe a ignorância, eu não entendi essa parte dos IP's:
coloquei o servidor ntp.br
a.st1.ntp.br 200.160.7.186 e 2001:12ff:0:7::186
b.st1.ntp.br 201.49.148.135
c.st1.ntp.br 200.186.125.195
d.st1.ntp.br 200.20.186.76
a.ntp.br 200.160.0.8 e 2001:12ff::8
b.ntp.br 200.189.40.8
c.ntp.br 200.192.232.8
gps.ntp.br 200.160.7.193 e 2001:12ff:0:7::193 -
Bom aqui ao invés de aparecer a pagina de bloqueio do squidguard aparece a opção de adicionar exceção conforme imagem erro01.png e quando adiciono a exceção aparece o erro da imagem erro02.png
-
Boa tarde,
Brunok, obrigado pelo retorno. Pelo que vi realmente aquele é apenas o horário do Squid, não deve estar interferindo. Com o Proxy eu já fiz os testes e realmente funciona, porém por outras razões preciso utilizar o proxy transparente na empresa e ao mesmo tempo fazer interceptação de SSL. Uma pena ter esse 'bug' na versão 2.3.2, já que vi gente falando aqui que em versões anteriores funcionava (não usei esse recurso em versões anteriores para confirmar).
danilosv.03, obrigado pela dica. Porém não funcionou criar uma target no squidguard pois esse bloqueio não está sendo feito pelo squidguard, mas sim pelo certificado do squid.
Douglas Araújo, obrigado também, mas fiz os testes e não funcionou. De qualquer forma realmente não deve ser o horário o causador deste erro de certificado.
sevenstones, é esse mesmo o erro que ocorre. Obrigado por postar as imagens.
Fico no aguardo para ver se alguém sabe como contornar este problema, ou se isso é corrigido na próxima versão. Não queria precisar desinstalar a versão atual e instalar uma antiga para isso funcionar :-)
-
rodrigo.passini pra tu não ficar que nem loco liberando por IP, cria uma target para o site no squidguard.
brunok:
Nesse caso você diz para não deixarmos marcado o SSL correto? Aqui eu uso dessa forma, entretanto para o cara visualizar minha mensagem que eu coloquei no meu squidguard ele precisa ir naquela opção de: ir para página não segura, que o google da. E eu queria poder usar o SSL para resolver isso.
Com proxy ATIVO, não há necessidade de instalar o certificado.
Era para funcionar normalmente.
Quanto a tela de bloqueio do squidguard, só aparece em páginas HTTP.
Quando o acesso a uma página HTTPS que está bloqueada, aparece página de "erro de navegação" informando problemas no firewall ou proxy. No caso, o bloqueio.
No seu caso, há uma solução alternativa, subindo uma segunda instância do NGINX na porta 80 e apontando o erro do squidguard para EXT ERROR.
Procure por NGINX2.CONF aqui no forum que você acha o tópico.
Eu estou implementando desta maneira e funciona 100%!
Desmarcando as guias Proxy transparente e Interception SSL, obrigatoriamente você precisa setar no navegador, ip e porta do proxy (para fins de testes).
Para automatizar isso, pesquise por WPAD via DHCP e DNS (fiz num ambiente de testes e funcionou 100%).
-
Resumindo:
Realmente há um problema com estas versões mais recentes. Não consegui reproduzir de forma transparente com SSL Interception.
Se você quiser fazer uso do squidGuard, somente nestes moldes:
-
Proxy ATIVO
-
Proxy transparente SEM interceptação SSL.
EXTRA: Se usa WEBGui com HTTPS (Recomendado), suba uma 2ª instância do NGINX apenas para apresentar o erro do squidguard sempre em HTTP:
https://forum.pfsense.org/index.php?topic=115653.0
-
-
Sim, brunok. Perfeito, Obrigado.
Com Proxy ativo funciona mesmo, eu já utilizava exatamente dessa forma aqui.
Precisei voltar a utilizar proxy transparente por outros motivos, por isso que caí nesse problema.Tks.
-
Mas as páginas estão dando erro ainda?
-
Sim, danilosv.
Sendo assim, vejo duas opções até que esse 'bug' não seja corrigido:
Opção 01:
Proxy Não-Transparente + Interceptação SSL + SquidGuard = Funciona 100%;Obs: Vai ter que setar o proxy nos navegadores dos usuários. O pessoal recomenda WPAD, eu fiz por GPO mesmo.
Opção 02:
Proxy Transparente + Interceptação SSL + SquidGuard = Ok para sites HTTP, mas dá erro de Certificado em todos sites HTTPS;Obs: Possível contornar dando bypass nos endereços ou IP's dos sites HTTPS, porém é trabalhoso pois tem que liberar todo site https que alguém for tentar acessar.
Se existir alguma outra alternativa por favor nos informem rs
-
Rodrigo Passini
Estou nessa luta contigo amigo. KKKK. Essas duas alternativas que tu deu a melhor delas é nãos transparente. E eu curto mais o transparente é mais legal de se trabalhar. -
Eu só tenho uma observação a fazer. Eu fiz um cenário no virtualbox e o proxy transparente com autentificação funcionou perfeitamente. Agora quando vou colocar em produção, ele não funciona.
-
Opção 01:
Proxy Não-Transparente + Interceptação SSL + SquidGuard = Funciona 100%;Obs: Vai ter que setar o proxy nos navegadores dos usuários. O pessoal recomenda WPAD, eu fiz por GPO mesmo.
Desse jeito, os bloqueios https caem na página sgerror.php do squidGuard? ???
Meio estranho isso, já que o browser "sabe" que as requisições vão passar pelo proxy, teoricamente, a interceptação SSL só traria "transtornos". :P
Via GPO, basicamente, só é possível ajustar para Chrome ou IE/EDGE;
Firefox ou Opera, tem um outro esquema mais avançado para se fazer por GPO.
Ou você contorna com WPAD via DHCP e DNS Forwarder, que aí, nenhum navegador escapa (exceto de aparelhos mobile - tablet/smartphone que não reconhecem por padrão o wpad). :D
-
Desse jeito, os bloqueios https caem na página sgerror.php do squidGuard?
Infelizmente não. Ele bloqueia apenas o que está bloqueado no squidguard (http ou https), mas apenas as http caem no sgerror.php. As https caem em outra tela, mas pelo menos está bloqueado rs
Via GPO, basicamente, só é possível ajustar para Chrome ou IE/EDGE;
Firefox ou Opera, tem um outro esquema mais avançado para se fazer por GPO.
Ou você contorna com WPAD via DHCP e DNS Forwarder, que aí, nenhum navegador escapa (exceto de aparelhos mobile - tablet/smartphone que não reconhecem por padrão o wpad).
Obrigado. Não tinha conhecimento disso, mas é bom saber. Aqui o Chrome é padrão para todos usuários e ninguém tem permissão para instalar outros navegadores, sendo assim eu nem havia chegado a testar no Firefox ou no Opera.
-
Validei um ambiente de testes, fazendo com que funcione tudo de forma transparente, baseado no cenário comentado pelo Rodrigo.
Vou restaurar de fábrica e configurar novamente este esquema.
Se ficar 100%, vou publicar em um novo tópico, o manual para este cenário que apresenta muitas dúvidas pela galera (além de problemas).
Ao navegar (se for bloqueado):
HTTP, cai no sgerror.php porta 80, independente do protocolo e porta do seu WebGUI
HTTPS, aparece mensagem do próprio navegador, avisando problema com o tunel ssl (pois foi bloqueado)
Proxy ativo + Interceptação SSL + SquidGuard + WPAD via DHCP e DNS
** Sem a necessidade de instalar o certificado nos clientes!!! 8)
-
Caso você consiga fazer isso, nos avise por aqui também, para ficarmos sabendo de seu novo ambiente.
Outra coisa que eu estou sofrendo aqui também é com a lentidão em meus download. Alguém poderia ajuda?