SEGUE UM TUTORIAL..Pagina de bloqueio personalizada SQUID3 E SQUIDGUARD!
-
Segue um modelo de página de bloqueio personalizada do SQUID3 e SQUIDGUARD!
MODELO PARA O SQUID3
Obs: Versão do PFSENSE 2.2.6 (amd64)1° Vamos ir até o caminho dos arquivos da página de bloqueio do SQUID3
click em DIAGNOSTICOS > EDITAR ARQUVOS
COPIE E COLE O CAMINHO ABAIXO E DEPOIS CLIQUE EM NAVEGARpfsense 2.2.6(i386) /usr/pbi/squid-i386/local/etc/squid/errors/pt-br
pfsense 2.2.6(amd64) /usr/pbi/squid-amd64/local/etc/squid/errors/pt-br
OBS: Devido as atualizações do pfsense, o caminho pode variar!Acessem o arquivo " ERR_ACCESS_DENIED "
Ele e o responsável por exibir a página de broqueio realizado pelo o SQUID3Vc verá este código padrão da pagina de bloqueio do Squid3
<title>ERRO: A URL requisitada não pode ser recuperada</title> # ERRO ## A URL requisitada não pôde ser recuperada * * * O seguinte erro foi encontrado ao tentar recuperar a URL: [%U](%U) > **Acesso negado.** A configuração do controle de acesso impede que sua requisição seja permitida neste momento. Por favor, contate seu provedor de serviço se você acha que isso está incorreto. Seu administrador do cache é [%w](mailto:%w%W). * * * Gerado %T por %h (%s) Para quem ja conheçe HTML basta modificar os códigos(ou criar outra pagina) ao seu gosto! Para quem nao saca de HMTL segue um modelo da pagina personalizada! apague todo o código HTML padão do SQUID3 e substitua pelo codigo HTML personalizado! <title>Proibido o Acesso</title> # Acesso Negado! ![geblockt](https://i0.wp.com/cdn1.vaicomtudo.com/wp-content/uploads/2012/03/Sites-bloqueados-1.jpg) A Tecnologia da Informação e Comunicação, TIC, informa que o acesso ao site/download: **%U**, está bloqueado por infringir as regras definidas na Diretriz Geral de Segurança da Informação. Caso não esteja de acordo, contate o administrador da rede: [%w](mailto:%w%W).
Obs: Para quem quizer trocar a imagen de broqueio bastar escolher uma imagen, hospedar em algum servidor web.
Procure esta linha:```e troque esta URL da imagen https://i0.wp.com/cdn1.vaicomtudo.com/wp-content/uploads/2012/03/Sites-bloqueados-1.jpgL pela sua nova URL da imagen hospedada por vc! Clique em **SALVAR** e pronto! sua nova pagina esta pronta! **MODELO PARA O SQUIDGUARD** Obs: Versão do PFSENSE 2.2.6 (amd64) 1° Vamos ir até o caminho dos arquivos da página de bloqueio do SQUID3 click em DIAGNOSTICOS > EDITAR ARQUVOS COPIE E COLE O CAMINHO ABAIXO E DEPOIS CLIQUE EM NAVEGAR **/usr/local/www/sgerror.php** OBS: Devido as atualizações do pfsense, o caminho pode variar! Pfsense 2.2.6 (AMD64) Acessem o arquivo sgerro.php Ele e o responsável por exibir a página de broqueio realizado pelo o SQUIDGUARD Vc verá o código padrão da pagina de bloqueio do Squidguard Obs: O meu ja está mudado, portanto ja nao e mas padrão…rsrsr
include "globals.inc";
include "config.inc";
$page_info = <<<eod<br># ----------------------------------------------------------------------------------------------------------------------SquidGuard error page generator
(C)2006-2007 Serg Dvoriancev
----------------------------------------------------------------------------------------------------------------------
This programm processed redirection to specified URL or generated error page for standart HTTP error code.
Redirection supported http and https protocols.
----------------------------------------------------------------------------------------------------------------------
Format:
# sgerror.php?url=[http://myurl]or[https://myurl]or[error_code[space_code]output-message][incoming SquidGuard variables]
Incoming SquidGuard variables:
# a=client_address
# n=client_name
# i=client_user
# s=client_group
# t=target_group
# u=client_urlExample:
# sgerror.php?url=http://myurl.com&a=..&n=..&i=..&s=..&t=..&u=..
# sgerror.php?url=https://myurl.com&a=..&n=..&i=..&s=..&t=..&u=..
# sgerror.php?url=404%20output-message&a=..&n=..&i=..&s=..&t=..&u=..----------------------------------------------------------------------------------------------------------------------
Tags:
# myurl and output messages can include Tags
# [a] - client address
# [n] - client name
# [i] - client user
# [s] - client group
# [t] - target group
# [u] - client urlExample:
# sgerror.php?url=401 Unauthorized access to URL [u] for client [n]
# sgerror.php?url=http://my_error_page.php?cladr=%5Ba%5D&clname=%5Bn%5D // %5b=[ %d=]----------------------------------------------------------------------------------------------------------------------
Special Tags:
# blank - get blank page
# blank_img - get one-pixel transparent image (for replace banners and etc.)Example:
# sgerror.php?url=blank
# sgerror.php?url=blank_img----------------------------------------------------------------------------------------------------------------------
EOD;
define('ACTION_URL', 'url');
define('ACTION_RES', 'res');
define('ACTION_MSG', 'msg');define('TAG_BLANK', 'blank');
define('TAG_BLANK_IMG', 'blank_img');----------------------------------------------------------------------------------------------------------------------
?url=EMPTY_IMG
# Use this options for replace baners/ads to transparent picture. Thisbetter for viewing.
----------------------------------------------------------------------------------------------------------------------
NULL GIF file
HEX: 47 49 46 38 39 61 - - -
SYM: G I F 8 9 a 01 00 | 01 00 80 00 00 FF FF FF | 00 00 00 2C 00 00 00 00 | 01 00 01 00 00 02 02 44 | 01 00 3B
----------------------------------------------------------------------------------------------------------------------
define(GIF_BODY, "GIF89a\x01\x00\x01\x00\x80\x00\x00\xFF\xFF\xFF\x00\x00\x00\x2C\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3B");
$url = '';
$msg = '';
$cl = Array(); // squidGuard variables: %a %n %i %s %t %u
$err_code = array();$err_code[301] = "301 Moved Permanently";
$err_code[302] = "302 Found";
$err_code[303] = "303 See Other";
$err_code[305] = "305 Use Proxy";$err_code[400] = "400 Bad Request";
$err_code[401] = "401 Unauthorized";
$err_code[402] = "402 Payment Required";
$err_code[403] = "403 Forbidden";
$err_code[404] = "404 Not Found";
$err_code[405] = "405 Method Not Allowed";
$err_code[406] = "406 Not Acceptable";
$err_code[407] = "407 Proxy Authentication Required";
$err_code[408] = "408 Request Time-out";
$err_code[409] = "409 Conflict";
$err_code[410] = "410 Gone";
$err_code[411] = "411 Length Required";
$err_code[412] = "412 Precondition Failed";
$err_code[413] = "413 Request Entity Too Large";
$err_code[414] = "414 Request-URI Too Large";
$err_code[415] = "415 Unsupported Media Type";
$err_code[416] = "416 Requested range not satisfiable";
$err_code[417] = "417 Expectation Failed";$err_code[500] = "500 Internal Server Error";
$err_code[501] = "501 Not Implemented";
$err_code[502] = "502 Bad Gateway";
$err_code[503] = "503 Service Unavailable";
$err_code[504] = "504 Gateway Time-out";
$err_code[505] = "505 HTTP Version not supported";----------------------------------------------------------------------------------------------------------------------
check arg's
----------------------------------------------------------------------------------------------------------------------
if (count($_POST)) {
$url = trim($_POST['url']);
$msg = $_POST['msg'];
$cl['a'] = $_POST['a'];
$cl['n'] = $_POST['n'];
$cl['i'] = $_POST['i'];
$cl['s'] = $_POST['s'];
$cl['t'] = $_POST['t'];
$cl['u'] = $_POST['u'];
}
elseif (count($_GET)) {
$url = trim($_GET['url']);
$msg = $_GET['msg'];
$cl['a'] = $_GET['a'];
$cl['n'] = $_GET['n'];
$cl['i'] = $_GET['i'];
$cl['s'] = $_GET['s'];
$cl['t'] = $_GET['t'];
$cl['u'] = $_GET['u'];
}
else {
# Show 'About page'
echo get_page(get_about());
exit();
}----------------------------------------------------------------------------------------------------------------------
url's
----------------------------------------------------------------------------------------------------------------------
if ($url) {
$err_id = 0;// check error code
foreach ($err_code as $key => $val) {
if (strpos(strtolower($url), strval($key)) === 0) {
$err_id = $key;
break;
}
}# blank page
if ($url === TAG_BLANK) {
echo get_page('');
}
# blank image
elseif ($url === TAG_BLANK_IMG) {
$msg = trim($msg);
if(strpos($msg, "maxlen_") !== false) {
$maxlen = intval(trim(str_replace("maxlen_", "", $url)));
filter_by_image_size($cl['u'], $maxlen);
exit();
}
else {
# --------------------------------------------------------------
# return blank image
# --------------------------------------------------------------
header("Content-Type: image/gif;"); // charset=windows-1251");
echo GIF_BODY;
}
}
# error code
elseif ($err_id !== 0) {
$er_msg = strstr($_GET['url'], ' ');
echo get_error_page($err_id, $er_msg);
}
# redirect url
elseif ((strpos(strtolower($url), "http://") === 0) or (strpos(strtolower($url), "https://") === 0)) {
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# redirect to specified url
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
header("HTTP/1.0");
header("Location: $url", '', 302);
}
// error arguments
else {
echo get_page("sgerror: error arguments $url");
}
}
else {
echo get_page($_SERVER['QUERY_STRING']); //$url . implode(" ", $_GET));
# echo get_error_page(500);
}~~~~~~~~~~
Exit
~~~~~~~~~~
exit();
----------------------------------------------------------------------------------------------------------------------
functions
----------------------------------------------------------------------------------------------------------------------
function get_page($body) {
$str = Array();
$str[] = '';
$str[] = "\n$body\n";
$str[] = '';
return implode("\n", $str);
}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IE displayed self-page, if them size > 1024
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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[] = '';
$str[] = '';
$str[] = '';
$str[] = '';
$str[] = '';if ($cl['n']) $str[] = "Nombre: {$cl['n']} | ";
if ($cl['a']) $str[] = "IP: {$cl['a']} | ";
if ($cl['i']) $str[] = "Usuario: {$cl['i']} | ";
if ($cl['s']) $str[] = "Grupo: {$cl['s']} | ";
if ($cl['t']) $str[] = "Categoria: {$cl['t']} ";
if ($cl['u']) $str[] = "URL: {$cl['u']} ";$str[] = '';
$str[] = 'Acesso Negado!';
$str[] = '';
$str[] = '![geblockt](http://'. $_SERVER['HTTP_HOST'] .'/logo-bloqueio.jpg)
';
if ($cl['u']) $str[] = "
Site Acessado: {$cl['u']}
";
$str[] = '';
$str[] = 'O site que você tentou acessar foi bloqueado pela nossa política de filtragem Web.
';
$str[] = '
O acesso foi bloqueado por uma das seguintes razões:
';
$str[] = '-
Este produto contém ou é rotulado material impróprio.
-
Seu usuário está sob uma política que não permite o acesso a sites desta categoria.
-
Por favor, click aqui para ser retornado para a página inicial.
-
Por favor, caso não concorde não concorde com a nossa política de segurança entre em contato com o administrador da rede: [informatica@cachoeirametais.com.br](mailto:informatica@cachoeirametais.com.br?Subject=Sitio web bloqueado por squidguard)
Observação.
- O site foi amarzenado em nosso banco de dados para possíveis analises de conteúdo.
';
$str[] = 'Cachoeira Metais Ltda
Admin: Gydeon M.Silva
';
$str[] = "";
$str[] = "";return implode("\n", $str);
}?>Para ficar mais fácil e não ter erro de apagar no local errado, então sugiro que apague todo o seu código e substitua pelo código personalizado acima, que não qual eu estou usando no momento!
Agora precisamos carregar a imagem usada na pagina de bloqueio pro servidor apache do pfsense, isso e bem simples!
Podemos fazer via comando, mas por opção prefiro através do software.Antes precisamos escolher qual imagem usar na pagina de bloqueio.
Baixe na internet ou use o logo da sua empresa, fica a seu critério
eu baixei esta imagem da internet e estou usando ela na pagina de bloqueio.https://i0.wp.com/cdn1.vaicomtudo.com/wp-content/uploads/2012/03/Sites-bloqueados-1.jpg
Baixe e salve em [b]JPG[/b] com o nome "[b] logo-bloqueio[/b] "
Agora fassa o download do Software WINSCP, que usaremos para carregar a imagem pro pfsense
https://winscp.net/download/winscp576setup.exe
Instalem ...
Abra o programa
Em HOST NAME: coloque o seu ip do servidor pfsense
Em USER NAME: não coloque o nome de usuário da interface web, como vamos trabalhar internamente
no pfsense, então vamos utilizar o usuário " root ".
Em Password: coloque a senha que vc usa para acessar a interface web do pfsense
E click em LoginVc vera que do lado esquerdo e o diretório de arquivos do seu computador
e do lado direito o diretório de arquivos do pfsnse.Nos diretórios de arquivos do pfsense(Lado direito) click na pasta..
E segue o caminho...
[b]/usr/local/www[/b]
deixe a pasta "[b]www[/b]" aberta.Nos diretórios de arquivo do seu computador navegue até aonde vc baixou a imagen.
click na imagem e arraste a imagem para dentro da pasta "[b]www[/b]" que vc deixou aberta.O software [b]WINSCP[/b] vai exibir um aviso de uploud de arquivo para o diretório " [b]/usr/local/www[/b] " apenas click em [b]OK[/b]
[b]1° DETALHE IMPORTANTE[/b]
Preste atenção no nome da imagem de bloqueio que vc salvou, pq esse mesmo nome sera usado no codigo da pagina de bloqueio do [b]SQUIDGUARD[/b]
Eu dexei configurado no codigo da pagina com o nome da imagen de " [b]logo-bloqueio[/b] "(.jpg)
Portanto se deseja trocar a imagem, salve a imagem em [b].jpg[/b] com o nome " [b]logo-bloqueio[/b] "[b]2° DETALHE[/b]
Será nessesario alterar as linhas de [b]EMAIL[/b], [b]NOME DA EMPRESA[/b] e [b]ADMIN[/b]! para os dados corretos da empresa de vcs![b]3° DETALHE[/b]
Caso queira modificar alguma coisa na pagina
Role o codigo para baixo até chegar nessas linhas
e fassas as alterações que desejar e clicar em salvar e pronto, VC tem uma nova pagina de bloqueio![code]# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IE displayed self-page, if them size > 1024
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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[] = '';
$str[] = '';
$str[] = '';
$str[] = '';
$str[] = '';if ($cl['n']) $str[] = "Nombre: {$cl['n']} | ";
if ($cl['a']) $str[] = "IP: {$cl['a']} | ";
if ($cl['i']) $str[] = "Usuario: {$cl['i']} | ";
if ($cl['s']) $str[] = "Grupo: {$cl['s']} | ";
if ($cl['t']) $str[] = "Categoria: {$cl['t']} ";
if ($cl['u']) $str[] = "URL: {$cl['u']} ";$str[] = '';
$str[] = 'Acesso Negado!';
$str[] = '';
$str[] = '![geblockt](http://'. $_SERVER['HTTP_HOST'] .'/logo-bloqueio.jpg)
';
if ($cl['u']) $str[] = "
Site Acessado: {$cl['u']}
";
$str[] = '';
$str[] = 'O site que você tentou acessar foi bloqueado pela nossa política de filtragem Web.
';
$str[] = '
O acesso foi bloqueado por uma das seguintes razões:
';
$str[] = '-
Este produto contém ou é rotulado material impróprio.
-
Seu usuário está sob uma política que não permite o acesso a sites desta categoria.
-
Por favor, click aqui para ser retornado para a página inicial.
-
Por favor, caso não concorde não concorde com a nossa política de segurança entre em contato com o administrador da rede: [informatica@cachoeirametais.com.br](mailto:informatica@cachoeirametais.com.br?Subject=Sitio web bloqueado por squidguard)
Observação.
- O site foi amarzenado em nosso banco de dados para possíveis analises de conteúdo.
';
$str[] = 'Cachoeira Metais Ltda
Admin: Gydeon M.Silva
';
$str[] = "";
$str[] = "";return implode("\n", $str);
}?>[/code]Boom! e isso galera!....qualquer duvida, oque eu puder ajudar eu ajudo! Abraços
[/u][/u][/s][/i]</eod<br>
-