Pi Hole o cómo bloquear publicidad en tu red local

08 Feb 2023 · 3 mins. de lectura

Después de leer muchas referencias por internet y ver que tenía una Raspberry Pi 3 B+ sin usar, decidí instalar Pi Hole en mi red local. Desde entonces, he estado muy contento con el resultado. Quizá no ha bloqueado toda la publicidad y todo el rastreo que puede existir en la Web, pero sí ha reducido considerablemente la cantidad de publicidad que veo al navegar.

Pi Hole es un servidor DNS pensado para instalarse en una Raspberry Pi. Su misión es bloquear la publicidad en todos los dispositivos de una la red local. Para ello, Pi Hole intercepta las peticiones DNS que se hacen desde los diferentes dispositivos de la red, y redirige las peticiones a sitios de publicidad a una dirección IP que no existe. De esta forma, evitamos acceder a los sitios de publicidad, y por tanto, no descargaremos los anuncios.

Os cuento cómo lo instalé:

Preparar la Raspberry Pi

Lo primero que hay que hacer es instalar Raspbian en la Raspberry Pi. Así que me descargué la última versión de este sistema operativo desde la página oficial. Concretamente la versión de 64 bits de Raspberry Pi OS Lite. No incluyo el enlace concreto porque en el momento en el que puedes estar leyendo este artículo, puede que ya haya una nueva versión disponible.

Una vez descargado el fichero, lo grabé en una tarjeta SD. Si estás en MacOS, es un proceso es sencillo:

Buscamos la tarjeta SD usando el comando diskutil list:

$ diskutil list
...             APFS Volume VM                      20.5 KB    disk3s6

/dev/disk4 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *31.9 GB    disk4
   1:             Windows_FAT_32 NO NAME                 31.9 GB    disk4s1

En mi caso, la tarjeta SD se encuentra en el disco 4. Así que usamos el comando dd para grabar la imagen en la tarjeta SD:

sudo dd if="xxxx-xx-xx-raspios-bullseye-arm64-lite.img" of=/dev/rdisk4 bs=1m

Nota: Si estás en Windows, puedes usar Win32 Disk Imager. Y otra solución con interfaz gráfica y multiplataforma es Balena Etcher.

Una vez grabada la tarjeta SD, la insertamos en la Raspberry Pi, la conectamos a un teclado y un monitor y la encendemos. Si todo ha ido bien, veremos la pantalla de arranque de Raspbian.

Ahora configuraremos la Raspberry Pi para que nos sirva un servidor SSH y no tener que estar conectando un teclado y un monitor cada vez que queramos acceder a ella. Para ello, ejecutamos el comando sudo raspi-config:

$ sudo raspi-config

Y seleccionamos la opción Interfacing Options:

raspi-config

Y seleccionamos la opción SSH:

raspi-config

Seleccionaremos Yes para habilitar el servidor SSH y obtendremos el mensaje “The SSH server is enabled”.

Si queremos saber cual es la IP de la Raspberry Pi en nuestra red local para poder acceder a ella, ejecutamos el comando hostname -I:

$ hostname -I
192.168.96.156

En mi caso, la Raspberry Pi tiene la IP 192.168.96.156. Así que podemos acceder a ella usando el comando ssh:

$ ssh user_name@192.168.96.156

Nota: El usuario de la Raspberry Pi se configura durante el primer arranque.

Instalar Pi Hole

Ahora que ya tenemos acceso a la Raspberry Pi por SSH, podemos instalar Pi Hole. Para ello, ejecutamos el comando curl para descargar el script de instalación de Pi Hole:

curl -sSL https://install.pi-hole.net | bash

Al cabo de unos minutos, se habrá terminado de instalar y nos preguntará por ciertas configuraciones. Lo que más nos interesa es configurar la Raspberry Pi para tener una IP estática en nuestra red local y el servidor de DNS que va usar Pi Hole. En este caso yo usé “Google (ECS)”, pero cada uno puede usar el que más le convenga. El resto de las opciones las dejamos por defecto y al final nos mostrará que la instalación ha finalizado correctamente. En esta pantalla nos mostrará una contraseña para acceder a la interfaz web de Pi Hole. Pero quizá quieras usar tu propia contraseña. Para ello, ejecutamos el comando pihole -a -p:

$ pihole -a -p
Enter New Password (Blank for no password):
Confirm Password:
  [✓] New password set

Ahora ya podemos acceder a la interfaz web de Pi Hole usando la IP de la Raspberry Pi y la contraseña que acabamos de configurar. Cerraremos la sesión SSH y accederemos a la interfaz web de Pi Hole usando un navegador web.

Pi Hole Dashboard

Configurar DNS

Ahora que ya tenemos Pi Hole instalado, vamos a configurar el servidor DNS de nuestra red local para que use Pi Hole. Para ello, vamos a la configuración de la red de nuestro router y configuramos la Raspberry Pi como servidor DNS. En mi caso, tengo un router Asus y para configurar el servidor DNS, vamos a la sección “LAN” y en la pestaña “Servidor DHCP” en donde pone “Servidor DNS primario” escribimos la IP de la Raspberry Pi.

Esta operación se puede realizar a nivel de router o a nivel de cada equipo. Si queremos configurar el servidor DNS a nivel de equipo, vamos a la configuración de red de nuestro equipo y en la pestaña “TCP/IP” en donde pone “Servidor DNS primario” escribimos la IP de la Raspberry Pi.

Y ya está. Ahora ya podemos usar Pi Hole para bloquear publicidad y rastreadores en nuestra red local.

Ya me contarás si te funciona bien :).

buy me a beer