miércoles, 26 de julio de 2017

Toda nuestra red libre de Anuncios y Publicidad con solo una Raspberry + Pi-Hole

Hoy vengo a hablaros de PiHole, un proyecto que esta ganando muchos asiduos por permitirnos bloquear publicidad y las molestas ventanas emergentes en todos los dispositivos de nuestra red de una manera muy sencilla y totalmente transparente desde esa Raspberry que teníamos en el cajón sin saber que uso darle! Vamos a verlo!


Presentación de Pi-Hole

Tal y como reza la página oficial del proyecto, Pi-Hole es un Adblocker a nivel de la red LAN que promete librarnos de ese montón de anuncios que hay en Internet.

Pi-Hole elimina esos anuncios de todos los dispositivos que usemos en la red sin necesidad de instalar ningún software adicional en ellos, pero tampoco se limita únicamente a los navegadores instalados : también actúa sobre las Apps, SmartsTVs, IoT, etc... impidiendo directamente al descarga de los mismos (no únicamente no mostrándolos después de descargarlos como hacen otros AdBlocker) y descargando proporcionalmente nuestras líneas y red con ello.

Además también dispone de una interface web de consulta y gestión donde podemos configurar parámetros, monitorizar en tiempo real, consultar los logs de servicio que va guardando, gestionar las whitelist/blacklists y las peticiones bloqueadas de forma automática una a una, etc....

¿Que necesitamos?

Para montar este proyecto vamos a necesitamos una Raspberry Pi (modelos A+BB+23B, Zero y Zero-W) en la que dispongamos como mínimo de 512MB de RAM y aproximadamente 52Mb libres de espacio de almacenamiento.

En cuanto al sistema operativo, PiHole en teoría debería funcionar sin problemas en cualquier distribución linux que sea "Debian based" pero en su pagina web indican que de manera oficial solo lo soportan las siguientes distros:

  • Raspbian: Jessie (lite / with pixel)
  • Ubuntu: 14.04 / 16.04 / 16.10
  • Fedora: 24 / 25
  • Debian: 8.6
  • CentOS: 7.2.1511 / 7.3.1611

Además del hardware y software anteriores, PiHole va a necesitar disponer delos puertos 53(para el servicio dnsmasq), 80(para el servicio lighttp) y 4711(para la API Pihole-FTL).
NOTA! El puerto 80 puede ser prescindible si durante la instalación decidimos no contar con la interface web de gestión.

Instalando Pi-Hole


Esa es la "sentencia mágica" que desencadenará el proceso de descarga e instalación de todo lo que PiHole necesita para funcionar, deberemos ejecutarlo desde la consola de nuestro sistema operativo (o bien desde otro equipo de nuestra red local si tenemos habilitado el acceso por SSH) y observaremos como comienza el proceso.

En mitad del proceso el programa de instalación nos pedirá nuestra interacción para configurar correctamente el dispositivo.

Lo primero que nos consultará será que tarjeta de red (suponiendo que nuestro hardware disponga de más de una) queremos utilizar para que trabaje Pi-Hole,

En el siguiente paso debemos indicarle que provedor de DNS queremos utilizar de los predeterminados o customizar los nuestros propios.

También nos pregunta que protocolos queremos cubrir con el PiHole, podemos marcar ambos o solo uno resaltando la opción y pulsando la barra espaciadora

El programa de instalación nos requiere que asignemos una IP estática al dispositivo y por defecto nos va a ofrecer una aleatoria que se encuentre libre, pero podemos personalizarla y poner nosotros la que deseemos. Igualmente deberemos de indicarle la IP del gateway demuestra red pero por defecto él nos mostrará la opción que considera adecuada.

Nos requerirá indicarle si queremos instalar y poner en marcha la interface web de gestión, lo cual siempre es una buena idea (salvo que tengamos el puerto 80 ya ocupado por otro servicio o aplicación como hemos visto más arriba).

También nos dará la opción de guardar logs o no de las consultas DNS que se emitan desde nuestra red.

Después del paso anterior observaremos como el programa de instalación termina de descargar e instalar los paquetes, dependencias y servicios restantes


Finalmente la instalación quedará finalizada y nuestro PiHole estará listo y levantado!! El mensaje de instalación concluida incluye valiosa información, nos indica cual es la url en la que encontraremos la interface web así como la clave de acceso al modulo de Administración de la misma! Será importante apuntárnosla pues nos harán falta más adelante.

Poniendo Pi-Hole a trabajar!!

Ya lo tenemos todo descargado, instalado configurado y listo--- ¿que hay que hacer para dejar de ver la publicidad en mis dispositivos?. Aquí hay dos opciones posibles, la más cómoda y sencilla, por realizarse una sola vez y no requerir cambiar configuraciones en nuestros dispositivos, es la de configurar manualmente en nuestro router el servidor DNS que queremos utilizar (indicandole como DNS primario la IP que PiHole tiene, en este caso 192.168.1.22).

Este tipo de configuración debemos llevarla a cabo entrando a la gestión de nuestro router y su ubicación/configuración varia dependiendo de la marca, el modelo y algunas de estas funcionalidades también del proveedor (pueden no mostrarse o estar "capadas"). 
Hemos de localizar la sección adecuada (normalmente estará bajo la configuración del DHCP) e indicarle que utilice como servidor DNS la IP de nuestra Raspberry con PiHole

NOTA: esta configuración no funcionará en los escenarios en los que los equipos de la LAN utilicen IPs estáticas, en ese escenario debe aplicarse la configuración descrita en el siguiente apartado.

¿Y si mi router no permite configurar manualmente los DNS o utilizo IPs fijas sin el DHCP en mi red?

En ese caso deberemos de llevar a cabo un cambio en la configuración y propiedades del adaptador de red de cada dispositivo para indicarle que nuestro servidor DNS primario es la IP de nuestra Raspberry. 
Este procedimiento es diferentes para cada sistema operativo (Windows, Linux, MacOS, Android, iOS, etc...) pero en la página oficial del proyecto podéis encontrar algunas indicaciones útiles.

También tenemos una tercera opción, y es que podemos configurar Pi-Hole como servidor DHCP (deshabilitando esta funcionalidad de nuestro router y dejándole ese trabajo en exclusiva a nuestra Raspberry), para ello deberemos acceder a la configuración de PiHole (en el siguiente apartado veremos como hacerlo desde su interface web) para indicarle el intervalo de direcciones IP, el Gateway y opciones mas avanzadas


Monitorización y administración Web

Para acceder a la interface web tan solo debemos acceder con un navegador web a la URL que nos indicó el asistente de instalación cuando finalizó: http://pi.hole/admin o bien http://[Direccion IP]/admin. En nuestro caso sería http://192.168.1.22/admin


Nada más acceder a la interface observaremos las consultas bloqueadas en las últimas 24 horas, las consultas totales en las ultimas 24 horas, el porcentaje de consultas bloqueadas y el numero de dominios sospechosos de spam y publicidad bloqueados. Igualmente veremos una gráfica de actividad.

En la esquina superior derecha tenemos una gráfica resumen que nos indica que el servicio está activo, la carga del dispositivo y su temperatura (una funcionalidad muy agradecida por muchos usuarios de la comunidad por lo que he visto en foros y grupos) y el uso de memoria en tiempo real.

En la columna izquierda tenemos la opción de Login para acceder a las opciones de configuración del sistema con la contraseña que nos indicó el asistente de instalación cuando finalizó

Una vez logeados como admins observamos más información en la pantalla principal como la gráfica de consultas IPv4 e IPv6 y la de los redireccionamientos así como un listado de dominios mas consultados y dominios más bloqueados

En la columna de la izquierda tenemos acceso a todas las funcionalidades de configuración y administración de nuestro PiHole, podremos consultar los logs de servicio/consultas, configurar whitelists y blacklists, actualizar las listas, y ajustar parámetros de configuración (como la opción de servidor DHCP que mencionados en el capitulo anterior de esta entrada).


Espero que os haya gustado la entrada, yo la verdad es que estoy muy contento con el proyecto funcionando desde hace unas semanas de forma activa, la verdad es que la navegación y el uso de la red se sienten como siempre, todo es muy transparente y ni te das cuenta de ello salvo cuando te paras a pensar cuanto tiempo llevas sin ver esos anuncios o sugerencias basadas en tus gustos y búsquedas anteriores!!.


Si os animáis a montarlo y tenéis alguna duda en la que pudiera ayudaros no dudéis en contactarme!

Saludos!!!!!!!!!!!!!!!!


2 comentarios:

  1. Muy interesante... Estoy intentando hacerlo funcionar con bind9, ya que tengo un servidor ya montado, pero sin existo de momento.

    ResponderEliminar
    Respuestas
    1. Hola Javier!!!

      Me alegro que te parezca interesante y te hayas animado: yo estoy muy contento!

      Espero que vayas ganando en tu pelea con hacerlo coexistir con Bind9... yo la monté casi en solitario en una RasPi que tenía sin uso.
      No obstante voy a ver si puedo mirarlo algo por la red, si encontrase algo interesante te lo hago saber.

      Saludos y sobretodo GRACIAS por pasarte por aquí y por dejarme el comentario!

      Eliminar