Página de erro do SquidGuard customizada | Nova instancia NGINX (suporte PHP)
-
Olá javcasta,
Eu quem agradeço por compartilhar conhecimento no seu site.
Depois testa e compartilhe com o que pode ser melhorado ! ;D
Abs.
-
Bom, depois de diversas tentativas, realmente este processo de subir uma segunda instância foi a única solução.
Utilizo o webConfigurator com HTTPS e uma porta diferente do padrão, aí o SquidGuard se perde no redirecionamento.
Desta forma, o problema foi contornado! 8)
-
Ótimo tutorial!
Realizei os procedimentos e estou muito satisfeito com o resultado! Parabéns e continue sempre auxiliando a comunidade!
-
Olá,
Esse procedimento só funciona com sites http, correto? No meu caso, com proxy não transparente, o squidguard já consegue exibir a mensagem de bloqueio para sites http conforme imagem abaixo, sem a necessidade de executar o procedimento do post:
Porém, com sites https, eu só tenho a mensagem de erro do navegador, mesmo eu tentando levantar uma nova instância do nginx e executar os procedimentos citados pelo colega.
Eu estava usando proxy transparente e interceptação SSL, usando alias no firewall e bypass do squid pra fazer com que sites de banco e do governo não viessem passar pelo filtro, mas ao longo dos meses comecei ter vários problemas, eu tinha erro de websocket em alguns sites (rejeição do certificado pelo que li), mesmo colocando no bypass e liberando a rede desses sites, eu tinha outros erros, o squidguard as vezes se perdia e não conseguia bloquear mais nada do dia pra noite, acabei desistindo no inicio desta semana e agora estou tentando usar o proxy não transparente.
Agradeço desde já se alguém tiver uma luz, se eu encontrar algo, posto aqui.
-
Olá rafaelfborges,
O procedimento é justamente para que a mensagem customizada seja exibida em qualquer acesso (http e https).
Reveja todos os passos do procedimento que vai funcionar !Abs.
WW
-
Quando rodo o script : /usr/local/etc/rc.d/nginx2.sh recebo um erro; Alguém poderia me explicar o que está acontecendo?
Segue mensagem:
/usr/local/etc/rc.d/nginx2.sh
nginx: [emerg] bind() to 0.0.0.0:81 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:81 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:81 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:81 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:81 failed (48: Address already in use)
nginx: [emerg] still could not bind()
-
Boa noite. Podem me tirar uma dúvida?
Ante de fazer como descrito no primeiro post, eu tenho que deixar o System>Advanced>Admin:
web configurator em http ou https ?
webgui redirector marcado ou desmarcado?Alguém pode me orientar?
-
Boa noite. Podem me tirar uma dúvida?
Ante de fazer como descrito no primeiro post, eu tenho que deixar o System>Advanced>Admin:
web configurator em http ou https ?
webgui redirector marcado ou desmarcado?Alguém pode me orientar?
Fiz idêntico, mas https não aparece tela de bloqueio…
-
Boa noite meu caro,
Para customização eu apenas edito o arquivo /usr/local/www/sgerror.php do pfsense, não entendo muito de php, mas consegui editar o arquivo conforme minha necessidade, pegando como base as próprias linhas que existiam lá logo após a linha 205, mas se quiser pode alterar o arquivo também por uma página html, mas aí perde aquelas customizações informando quem acessou.
Fica a adica aí pra galera também quem quiser fazer desta forma alternativa que fiz, acredito que também que pode ser útil a vocês.
Pra quem quiser um modelo, acrescentar e alterar o código abaixo no arquivo sgerror.php conforme sua necessidade (alterar ip, nome de imagens, etc), no meu caso foi logo apos a linha 205 e substituir da linha function get_error_page($er_code_id, $err_msg='') { até a linha return implode("\n", $str);
Segue modelo, se alguém quiser testar numa máquina virtual de teste, não vão colocar direto no de produção hein… ;D ;D:
O código abaixo foi feito com base num acesso do squid autenticado no AD, por isso informa grupos, estações, usuários etc, mas isso vocês podem alterar também conforme sua necessidade, basta apagar as linhas. O IP 192.168.1.1 no código é ficticio, acho que não precisava falar isso, mas vai que né.. rsrs :o :o
function get_error_page($er_code_id, $err_msg='') { global $err_code; global $cl; global $g; global $config; $str = Array(); header("HTTP/1.1 " . $err_code[$er_code_id]); $str[] = ''; $str[] = ''; if ($config['installedpackages']['squidguarddefault']['config'][0]['deniedmessage']) { $str[] = " ### {$config['installedpackages']['squidguarddefault']['config'][0]['deniedmessage']}: {$err_code[$er_code_id]} "; } else { $str[] = ' <center> ![](http://192.168.1.1/imagens/logosuamepresa.png) </center> '; $str[] = ' **ACESSO NÃO AUTORIZADO** '; $str[] = ' **O site solicitado não pode ser exibido.** '; $str[] = ' * * * '; $str[] = ' ### Requisição não permitida no site'; $str[] = " {$cl['u']} "; } if ($err_msg) $str[] = " **Informações:** $err_msg "; if ($cl['a']) $str[] = " **IP Acesso:** {$cl['a']} "; if ($cl['n']) $str[] = " **Estacao:** {$cl['n']} "; if ($cl['i']) $str[] = "** Usuario: ** {$cl['i']} "; if ($cl['s']) $str[] = " **Grupo:** {$cl['s']} "; if ($cl['t']) $str[] = " **Target Bloqueada:** {$cl['t']} "; if ($cl['u']) $str[] = " **URL acessada:** {$cl['u']} "; $str[] = ' O site foi negado. Verifique se a URL foi digitada corretamente '; $str[] = ' A tentativa foi gravada, caso não concorde, envie um email para seu administrador: [administrador@suaempresa.com.br](mailto:administrador@suaempresa.com.br) '; $str[] = ' * * * '; $str[] = " ### Servidor de Proxy SuaEmpresa "; $str[] = ""; return implode("\n", $str);
Dica: Usem o winscp com notepad ++ para editar o arquivo.
Lembre-se que logo ao final do código acima, abaixo da linha return implode("\n", $str); tem uma chave ( } ), mas essa eu não substituí, por isso não informei ela.
Outro detalhe, NÃO FUNCIONA COM PÁGINAS HTTPS :'( -
Quando rodo o script : /usr/local/etc/rc.d/nginx2.sh recebo um erro; Alguém poderia me explicar o que está acontecendo?
Segue mensagem:
/usr/local/etc/rc.d/nginx2.sh
nginx: [emerg] bind() to 0.0.0.0:81 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:81 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:81 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:81 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:81 failed (48: Address already in use)
nginx: [emerg] still could not bind()Ao que tudo indica, já tem algum serviço rodando nessa porta. Mas, você pode ajustar a conf, para ouvir só na interface LAN.
Quando é colocado somente a porta, ele escuta em todas as interfaces.
Eu fiz um pequeno ajuste nisso, você encontra aqui:
https://forum.pfsense.org/index.php?topic=118346.0
-
Ola
Fiz todos os procedimentos conforme mencionado, inclusive troquei a porta do WebGUI para 9443…
Os sites http estão redirecionando para a página de erro, mas não tem jeito de funcionar os sites https.
Obs: uso o pfSense 2.3.3 integrado ao ad com script pf2ad.
Obrigado desde já, abraços.