Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Como personalizar error de Squidguard en pfSense paso a paso

DriveMeca personalizando la pagina de error de SquidGuard en pfSense
Un proxy nos ahorra tiempo y dinero ademas de evitar muchos problemas de seguridad al bloquear archivos maliciosos. Sobre proxy ya he escrito varios artículos, varios de ellos con el tema de squid + squidguard sobre pfSense pero no había aun tocado el tema de personalizar la pagina de error cuando se filtra un sitio web y gracias a uno de mis lectores, también fan del opensource, me puse a investigar como hacerlo.

Esto nos puede servir para dar mas información en esta pagina (la que viene por default es muy reducida) o colocar el logo de nuestro negocio o firma, etc. Ahora si, con un poco de html básico hagamos los cambios para tener una pagina de error mucho mas profesional y con mas información a la mano.

Requerimientos para personalizar pagina de error SquidGuard

-Normalmente la estructura de el error por default de Squidguard es así:
DriveMeca personalizando la pagina de error de SquidGuard en pfSense

-Entramos a la interfaz web de pfSense firewall y  nos vamos a el menú Diagnostics - Edit File
DriveMeca personalizando la pagina de error de SquidGuard en pfSense


Personalizamos función de error de SquidGuard en pfSense

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

-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 email-del-administrador@gmail.com 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)
DriveMeca personalizando la pagina de error de SquidGuard en pfSense


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:email-del-administrador@gmail.com?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
DriveMeca personalizando la pagina de error de SquidGuard en pfSense

-Copiamos dando click al botón Seleccionar archivo de la sección Upload File y damos click al botón Upload
DriveMeca personalizando la pagina de error de SquidGuard en pfSense

-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
DriveMeca personalizando la pagina de error de SquidGuard en pfSense

-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
DriveMeca personalizando la pagina de error de SquidGuard en pfSense


Chequeamos funcionamiento de pagina de error SquidGuard en pfSense

-Muy bien, ya tenemos una pagina de error personalizada mas profesional. Verificamos su funcionamiento tratando de navegar a una pagina que debería estar bloqueada en nuestro firewall pfSense con SquidGuard, ejemplo, www.playboy.com
DriveMeca personalizando la pagina de error de SquidGuard en pfSense


Artículos recomendados: Como configurar OpenVPN en pfSense paso a paso
                                           Como actualizar pfSense paso a paso
                                           Que tanto usas tu proxy, Estadísticas de squid en pfsense
                                           Monitorea pfSense por medio de NRPE y Nagios
                                           Como configurar DHCP Server en PFsense 2 paso a paso


Te parece útil este tema? ya tienes tu pagina de error personalizada? Usas SquidGuard? Te gusto el articulo? hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar Adminer en Linux Centos paso a paso

DriveMeca Adminer logo
En este mundo del opensource para hacer una tarea existen muchas soluciones y herramientas lo cual lo hace maravilloso por que cada uno se acomoda a lo que mas le gusta o mejor sienta que haga su trabajo. Hoy veremos una herramienta web, Adminer, la cual en cierta forma es un reemplazo para PhpMyAdmin. Es un único archivo php que descargamos en nuestro servidor LAMP y ya con esto tendremos acceso a nuestro mariadb, mysql u otros manejadores de bases de datos soportados.
Adminer es mucho mas rápido, seguro y sencillo de manejar ademas de que se puede personalizar por medio de pieles (skins) y plugins que lo hacen mas poderoso y divertido de manejar.

Requisitos


-Nos movemos al directorio default de apache en Centos, creamos un directorio y descargamos el php de adminer

cd /var/www/html
mkdir adminer
cd adminer

wget http://downloads.sourceforge.net/project/adminer/Adminer/Adminer%204.2.2/adminer-4.2.2.php

-Activamos permisos para apache en el directorio y php de adminer

chown -R apache.apache ../adminer/

-Abrimos un browser y navegamos a la ip de nuestro servidor web donde instalamos Adminer de la forma http://ip-servidor/adminer/adminer-4.2.2.php. Ingresamos con la cuenta root
DriveMeca instalando Adminer en un Linux Centos 7 paso a paso

-Ya dentro vemos una interfaz web sencilla con el listado de las db existentes listas para modificarlas 
DriveMeca instalando Adminer en un Linux Centos 7 paso a paso

-Las posibilidades son las mismas que si usáramos el cli con la diferencia de la facilidad de uso
DriveMeca instalando Adminer en un Linux Centos 7 paso a paso

-Es bueno recordar que no solo lo podemos usar para mysql/mariadb, también para otros servidores como PostgreSql nos puede servir
DriveMeca instalando Adminer en un Linux Centos 7 paso a paso

Con esto terminamos de mostrar como instalar y comenzar a usar Adminer, una pequeña pero potente herramienta web hecha en php para manejar nuestras db. Ya usas Adminer? Que tal te ha parecido?
Si te resulto útil este articulo, se social, haz un tweet, compártelo con otros por medio de los botones o sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como bloquear paginas con Tomato 1.28

DriveMeca bloqueando trafico con firmware Tomato en un Linksys WRT54G
En casa tengo un problema, la hija menor usa demasiado redes sociales, mira vídeos, etc, en vez de hacer tareas o cuando mas necesito ancho de banda, esta descargando una película o viéndola en youtube consumiendo los preciados kbps. Por eso decidí colocar unos filtros en mi router wifi Linksys WRT54G.
A este router le cambie el firmware original por Tomato 1.28 dándole mas funcionalidad a mi red wifi.


Requerimientos para bloquear trafico con firmware Tomato


  • router Linksys WRT54G en la ip 192.168.1.1 (haz los cambios segun tu ip)
  • Conectividad a internet

-Nos conectamos desde un browser a Tomato en el router http://192.168.1.1/
DriveMeca bloqueando trafico con firmware Tomato en un Linksys WRT54G

-En el menú Device List anotamos la Mac Address del equipo que queremos restringir. De las 2 variantes, por ip o por mac es mas fiable esta ultima porque no pasara mucho tiempo en que la persona restringida aprenda a cambiar su ip y quedara por fuera del filtro. En este caso anoto la Mac de lalopc
DriveMeca bloqueando trafico con firmware Tomato en un Linksys WRT54G


Creamos regla de bloqueo trafico web con firmware Tomato Linksys WRT54G

-Agregamos una regla en el menu Access restriction dándole click al botón Add
DriveMeca bloqueando trafico con firmware Tomato en un Linksys WRT54G

-Le colocamos un nombre a la regla y decidimos si bloqueamos todo el acceso o si lo hacemos algunos días en un horario. Yo elegí esta ultima opción. A continuación, debajo de Rules, podemos bloquear por protocolo con puerto o por aplicación con Layer 7, ejemplo, bloqueo el uso de Ares (software p2p para bajar música, películas, etc)


DriveMeca bloqueando trafico con firmware Tomato en un Linksys WRT54G

-Me tomo mi tiempo y coloco todas las aplicaciones que quiero bloquear en ese horario. Agrego en la caja de texto palabras de sitios a bloquear, ejemplo, facebook y youtube. Aquí podemos usar comodines, usaremos ^ delante de un dominio, ejemplo ^www.facebook.com para que bloquee solo ese dominio, no app.facebook.com, etc. Usaremos * para bloquear todos los dominios o alias, ejemplo, facebook.com* bloquearia app.facebook.com, www.facebook.com, etc.
DriveMeca bloqueando trafico con firmware Tomato en un Linksys WRT54G

-Encontraremos un problema, no se pueden bloquear paginas con https, es decir, con certificado, la opción, es bloquear la salida al puerto tcp/udp 443. Así lo hice y guardamos dando click al botón Save
DriveMeca bloqueando trafico con firmware Tomato en un Linksys WRT54G


Verificamos bloqueo de trafico web con firmware Tomato en Linksys WRT54G

-Una forma de verificar si nuestra regla funciona es colocando la Mac de nuestro pc además del que queremos restringir, probar que si se este bloqueando lo que queremos y dejando pasar lo que si necesita la otra persona. Cuando ya este ok el filtro, quitamos nuestra Mac y listo. OJO, siempre recuerda darle click al boton Save para guardar y activar los cambios.

Artículos recomendadosComo instalar firmware dd-wrt en un router Linksys wrt54g
                                            Instalando pfSense paso a paso sin morir en el intento
                                            Como instalar NethServer paso a paso
                                            Como instalar Ipfire paso a paso


Mas tranquilo y feliz ahora que tienes mas control de tu trafico? Tienes otra forma de controlar el trafico, cual? Te gusto el articulo? hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.
Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark