Imprimir esta página
Miércoles, 26 Octubre 2016 14:37

Personalizar Error SQUIDGUARD en pfSense Destacado

Escrito por
Valora este artículo
(2 votos)

En esta ocasión vamos a personalizar el error por default que nos arroja el SquidGaurd en Pfsense puesto que es un poco simple y además la idea es que podamos dar un mensaje claro a los usuarios de que la pagina a la cual está intentando acceder no está permitida por políticas de la compañía.

El error de SquidGuard es este:

squid1


Primero - Entramos a la interfaz web de pfSense firewall y  nos vamos a el menú Diagnostics - Edit File.

squid2

 

-Ya allí editamos el fichero /usr/local/www/sgerror.php escribiendolo en la caja de texto. Damos click al botón Load.

squid3

 

-Buscamos la función get_error_page y la modificamos de la siguiente forma (aconsejable sacar una copia antes por si algo sale mal, una forma sencilla de hacerle backup es copiarla y pegarla en un archivo txt). Es muy importante tener cuidado con espacios en blanco o tabulaciones.

Reemplazamos Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. por el email del administrador encargado (al que le escribirán los usuarios reportando paginas bloqueadas que no lo deberían estar, por ejemplo) y drivemeca-squid-cache_logo.jpg por el jpg que queremos colocar al fondo (en este ejemplo es el que muestra la mascota de squid).

 

squid4

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[] = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">';
$str[] = '<html>';
$str[] = '<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title></head>';
$str[] = '<body style="background-color:#FFFFFF; font-family:verdana, arial, sans serif;">';
$str[] = '<div style="width:70%; margin:20px auto;">';
$str[] = '<div style="padding:5px; background-color:#C0C0C0; text-align:center; font-weight:bold; font-family:verdana,arial,sans serif; color:#000000; font-size:60%;">';

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[] = '</div><div style="background-color:#F4F4F4; text-align:center; padding:20px;">';
$str[] = '<div style="letter-spacing:0.5em; word-spacing:1em; padding:20px; background-color:#FF0000; text-align:center; color:#FFFFFF; font-size:200%; font-weight: bold;">Acceso denegado</div>';
$str[] = '<div style="padding:20px; margin-top:20px; background-color:#E2E2E2; text-align:center; color:#000000; font-family:verdana, arial, sans serif; font-size:80%;">';

if ($cl['u'])        $str[] = "<p><b>URL: {$cl['u']}</b></p>";
$str[] = '<div style="text-align:left;">';
$str[] = '<p><b>El website que ud trata de visitar a sido bloqueado por nuestras politicas de filtrado web</b></p>';

$str[] = '<p><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">El acceso ha sido denegado por una de las siguientes razones:</font></p>';
$str[] = '<ul>';
$str[] = '<li><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Esta pagina contiene o esta etiquetada como material inapropiado.</font></li>';
$str[] = '<li><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Su usuario esta bajo una politica que no le permite acceder a sitios en esta categoria.</font></li>';
$str[] = '<li><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Por favor, de click <a href="javascript:history.back()">aqui</a> para devolverse a la pagina anterior.</font></li>';
$str[] = '<li id="list3"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> Por favor contacte al <a href="mailto:
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.?Subject=Sitio web bloqueado por squidguard">Administrador del proxy</a> si piensa que esto es un error. Por favor, incluya toda la informacion del caso.</font></li>';
$str[] = '</ul>';

$str[] = '<p><img style="padding-top:20px;display: block;margin: 0px auto" src="http://'. $_SERVER['HTTP_HOST'] .'
/drivemeca-squid-cache_logo.jpg" alt="geblockt"></p></div></div>';
$str[] = '<div style="padding:5px; background-color:#C0C0C0; text-align:right; color:#FFFFFF; font-size:60%; font-family:verdana,arial,sans serif;">Filtrado Web hecho por <a style="color:#FFFFFF;"><b>PfSense</b></a> y <a style="color:#FFFFFF;"><b>SquidGuard</b></a></div></div>';
$str[] = "</body>";
$str[] = "</html>";

return implode("\n", $str);
}

-Copiamos el banner gráfico desde el menú Diagnostics - Command Prompt

squid55

 

-Copiamos dando click al botón Seleccionar archivo de la sección Upload File y damos click al botón Upload

squid6

-Ejecutamos el comando mv /tmp/drivemeca-squid-cache_logo.jpg /usr/local/www desde la sección Execute Shell command y damos click al botón Execute. Este comando moverá el banner gráfico al sitio donde lo cargara la función modificada por nosotros

squid7

-Verificamos haya quedado el banner gráfico ejecutando por medio de Execute Shell Command el comando ls -la /usr/local/www/*.jpg. Damos click al botón Execute y debe mostrarnos el archivo jpg en su sitio

squid8

Y listo ya tenemos nuestra pagina de error de SQUIDGUARD personalizada. 

squid9  

 

Fuente:  http://drivemeca.blogspot.com.co/2016/09/como-personalizar-error-de-squidguard.html

Visto 9431 veces Modificado por última vez en Jueves, 09 Febrero 2017 16:11

Artículos relacionados (por etiqueta)