Falha de Segurança - SquidAnalyzer
-
Estava testando ontem o SquidAnalyzer (muito legal por sinal). Acho que encontrei uma falha de segurança… ???
Quem tiver acesso liberado pela internet no webConfigurator, deixa exposto para todos o squidanalyzer.
:o :o :o :o
Ex.: IP Válido - 200.200.200.200
webConfigurator - https://200.200.200.200:9443
URL Squidanalyzer - https://200.200.200.200:9443/squidreport
Se você abrir diretamente a URL do squidanalyzer, você tem o acesso SEM autenticação no webConfigurator.
TESTEM AÍ…
Ambiente testado:
PF 2.3.2_1 64 bits
HTTPS - porta diferente do padrão -
Putz cara, baaita falha de segurança… Reporta isso no Bug Database do pfsense > https://redmine.pfsense.org/projects/pfsense <
-
Esse PKG não é homologado por eles. Será que vão dar atenção? :-\
-
Agora que o pfSense é da Netgate acho que sim, pois mesmo não sendo homologado, ainda sim é considerada uma falha de segurança, indicando que existe uma forma de burlar o acesso sem credenciais, sem importar se isso é por um bug de pacote.
É o que eu penso pelo menos né…
-
Relatado problema:
https://redmine.pfsense.org/issues/6995
-
Show de bola.. é uma grande ajuda para a comunidade pfSense essa descoberta.
Parabéns pela iniciativa de informar os colegas.. -
Recusaram o chamado, devido o pacote não ser homologado. :(
Quem tem webConfigurator liberado para acesso externo e utiliza o SquidAnalyzer, repensem esta situação.
É possível ver os registros de navegação, de qualquer lugar.
-
Putz, sacanagem..
-
O pacote mantido por eles é o Lightsquid, então não é falha de segurança do pfSense.
Se voce usa um pacote de "terceiros" não ha como eles garantirem segurança, e inclusive até pouco tempo o Lightsquid não tinha autenticação.A questão aí é que "não" pode deixar a interface de configuração "aberta" para internet, pra mim isso sim é falha de segurança.
Faça uma VPN, e sobre o squidanalyzer creio que seja possível fazer autenticação, ajustando o servidor web.
-
Eu consegui fazer um contorno, para o SquidAnalyzer ficar disponível somente na rede interna.
Precisamos de uma 2º instância do NGINX rodando e mais algumas pequenas alterações.
Contando que o IP lan do seu PF seja 192.168.1.1 (altere se necessário).
Para o NGINX, podemos fazer o mesmo procedimento descrito aqui https://forum.pfsense.org/index.php?topic=118346.0 (até a parte do nginx apenas).
Depois de validar, vamos mover a pasta do squidanalyzer
mv /usr/local/www/squidanalyzer /usr/local/www/nginx-dist/
Desta forma, ja pode testar o acesso: http://ip_lan_pf/squidreport
Legal, mas vamos melhorar…
Vamos editar através do SHELL os arquivos squidanalyzer.inc e squidanalyzer.xml.
.INC
sed -ri "" s/\\\/usr\\\/local\\\/www\\\/squidreport/\\\/usr\\\/local\\\/www\\\/nginx-dist\\\/squidreport/g /usr/local/pkg/squidanalyzer.inc
Altera todas as linhas que contenham o path web atual, para o novo destino nginx-dist (ouvindo pela 2ª instância do NGINX).
.XML
sed -ri "" s/"\/squidreport"/"http:\/\/192.168.1.1\/squidreport"/g /usr/local/pkg/squidanalyzer.xml
Altera a URL que aparece no menu Services > SquidAnalyzer > SquidAnalyzer Report, apontando para sua rede interna.
-
Eu consegui botar a autenticação do LightSquid para o SquidAnalyzer… :P
Testes, testes e testes... :'(
Meu SquidAnalyzer está solicitando a mesma autenticação utilizada no LightSquid, inclusive está na mesma porta (7445).
Ainda em TESTES! 8)
-
As alterações em memória funcionaram.
Agora estou validando alterações nos .INC, porém, não tenho conhecimento em PHP.
Fiz alteração no lightsquid.inc, mas ao rebootar, apareceu mensagem de crash report:
PHP Parse error: syntax error, unexpected '"', expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /usr/local/pkg/lightsquid.inc on line 271
Nesta linha, fiz a inclusão disto:
$HTTP["url"] =~ "^/lightsquid|^/squidreport" {
Qual seria o "problema" ?
Código completo da instrução:
$HTTP["url"] =~ "^/lightsquid|^/squidreport" { auth.require = ( "" => ( "method" => "basic", "realm" => "Password Required", "require" => "valid-user" ) ) }
Obs.: Alterando o CONF manualmente, exatamente como está ali, funciona! É algo de sitanxe do PHP, mas não consegui identificar ainda.
-
Finalmente um protótipo funcional! 8)
Depois de correr atrás e quebrar a cabeça, consegui fazer os ajustes nos arquivos INC e XML.
Após modificações e testes, pude rebootar o pfsense sem perder as configs.
Esclarecendo, o SquidAnalyzer vai rodar na mesma instância do LightSquid e utilizará a mesma forma de autenticação (credenciais definidas na página de configuração do LightSquid). ;)
-
Aceito colaborações (tanto em conhecimento como em $ :P) para validar e liberar um script que aplica segurança no SquidAnalyzer, através de credenciais para acesso.
Estou implementando e testando ainda… Mas já está funcional, faltando alguns pequenos ajustes e avisos.
-
Aceito colaborações (tanto em conhecimento como em $ :P) para validar e liberar um script que aplica segurança no SquidAnalyzer, através de credenciais para acesso.
Estou implementando e testando ainda… Mas já está funcional, faltando alguns pequenos ajustes e avisos.
Amigo tem como disponibilizar o escript? estou batendo cabeça aqui para inserir uma autenticação para o squidanalyzer.
-
Finalmente um protótipo funcional! 8)
Depois de correr atrás e quebrar a cabeça, consegui fazer os ajustes nos arquivos INC e XML.
Após modificações e testes, pude rebootar o pfsense sem perder as configs.
Esclarecendo, o SquidAnalyzer vai rodar na mesma instância do LightSquid e utilizará a mesma forma de autenticação (credenciais definidas na página de configuração do LightSquid). ;)
Amigo vc pode me auxiliar nas configurações do Lightsquid .inc e .xml para integrar a autenticação no squidreport?
-
O pacote que disponibilizei via repositório já tem isso corrigido a muito tempo. Uso a mesma técnica que implementei no pacote sarg para visualizar o relatório via arquivo php no lugar de chamadas diretas aos htmls gerados.
-
O pacote que disponibilizei via repositório já tem isso corrigido a muito tempo. Uso a mesma técnica que implementei no pacote sarg para visualizar o relatório via arquivo php no lugar de chamadas diretas aos htmls gerados.
Não sei se me expressei bem!!!
Preciso colocar a pagina de login, para poder autenticar o usuário admin antes de visualizar os relatórios, através dos posts vi que vc acertou em usar a autenticação do lightsquid, poderia me ajudar a integrar isso ao squidanalyzer?
-
Preciso colocar a pagina de login, para poder autenticar o usuário admin antes de visualizar os relatórios
É exatamente isso que eu implementei no pacote.
-
Preciso colocar a pagina de login, para poder autenticar o usuário admin antes de visualizar os relatórios
É exatamente isso que eu implementei no pacote.
Se entendi bem!!!
Package / Squid log analyzer / General Settings –-> Pagina de configuração ok
depois de fazer as configurações e o update dos log, eu clico na aba squidanalyzer report-->link do squidreport e ele cai direto na tela do relatório sem nenhuma autenticação!
Está certo?
Se eu colocar direto no navegador .....
meu dns: porta/squidreport ele vcai direto sem autenticação.
Mesma coisa rede interna.
Esta certo, onde estou errando pois não consigo essa autenticação (login) de acesso ao squidreport.
Me da um help ai por favor!
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Entendi porque não consigo o login!!!!
Estou usando a versão 0.1!!
Como usar a versão 0.2 no pfsense 2.4?