Saltar al contenido

Instalación de Pi-hole en Raspberry Pi para bloquear anuncios y popups

Instalación de PiHole en Raspberry Pi para bloquear anuncios y popups

Mucho nos quejamos -y muy amargamente- de los anuncios que aparecen de forma súbita en internet, sobre todo cuando visitamos «esos sitios» 🙂 en los que abundan no solo anuncios, sino también malware.

Incluso anuncios que son comprometidos por malware para hacer luego redirecciones a sitios dudosos, donde podrían desde hacernos un clásico «phishing» a algo peor, como una descarga dirigida de código que aplique a una vulnerabilidad no parcheada y acabemos infectados.

Por supuesto, también está nuestro derecho a la privacidad (más supuesto que efectivo) pero para gozar de cierto grado de privacidad o bien nos conectamos a una VPN o nos mudamos a un servidor DNS que no sea invasivo y trafique con nuestros datos. O eso, o dejamos de usar internet.

¿Qué es un Pi-Hole?

Pi-hole es un agujero negro en el que meteremos todo eso que no nos gusta ver, para poder dedicarnos a visitar nuestros sitios web sin contratiempos. Pensado para montarse en una Raspberry Pi de inicio, podemos instalarlo en otras distribuciones compatibles.

Raspberry_Pi_3_Model_B_1GB_RAM

¿Agujero negro? Bien, me refiero a que estableceremos un servidor DNS local que hará de forwarder (intermediario) reenviando nuestras solicitudes a servidores seguros de terceros. Esto, unido a unas listas negras actualizadas periódicamente, bloqueará las solicitudes no permitidas.

Como alternativa, si lo que quieres es disfrutar de una resolución DNS confiable sin instalar un Pihole o similar, puedes consultar mi artículo sobre los 5 mejores DNS públicos actuales.

Como digo, este servidor que montaremos en una raspberry pi, actuará de servidor doméstico para resolución de nombres, verificando las listas negras compartidas por la comunidad y mandando las solicitudes que conduzcan a malware, adware o anuncios a la basura, a direcciones no resolubles.

Si tienes curiosidad, estas son las listas:

En general, el comportamiento de nuesto PiHole será bastante personalizable y tendremos un amplio control sobre la misma. Además, al montarse sobre el propio sistema operativo, seguiremos teniendo el dispositivo disponible para otras tareas.

Dadas sus características y escaso consumo de recursos, se presta perfectamente a combinarlo con un servidor de VPN y de esta forma no solo proteger los equipos domésticos, sino además los que llevemos encima siempre.

Instalación y configuración de un Pi-hole

Veamos qué pasos debemos dar y qué tener en cuenta para configurar nuestro bloqueador de publicidad sin contratiempos.

Requisitos

  • Sistemas operativos

Como podéis ver, la compatibilidad actual es bastante interesante. Podemos utilizar tanto arquitecturas ARM como x86_64 o i386.

DistribucionReleaseArquitectura
RaspbianJessie / StretchARM
Ubuntu16.x / 18.xARM / x86_64
Debian8 / 9ARM / x86_64 / i386
Fedora28 / 29ARM / x86_64
CentOS7x86_64
  • Interfaces de red: nuestro sistema agradecerá tener una IP estática. De esta forma no se cambiará la IP cuando se reinicie el router, lo que obligaría a establecer de nuevo los servidores DNS en los clientes.

En la página pre-requisitos de la comunidad tienes más información sobre puertos y servicios.

Instalar Pi-Hole

Vayamos al grano de una vez. Instalaremos el aplicativo sobre una distribución Linux de las ya citadas en el punto anterior. Para instalarlo debes dirigirte la página oficial de Github (aunque también puedes seguir leyendo aquí y quizá te sea más fácil).

Existen varios métodos de instalación.

Automático

El primero de ellos es lanzar este comando:

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

Esta es la manera automatizada o rápida. Haciendo el «| bash» se pierde la trazabilidad de lo que hace el código, así que si esto no te parece bien puedes instalarlo de la siguiente forma:

Clonar repositorio

git clone --depth 1 https://github.com/pi-hole/pi-hole.git Pi-hole
cd "Pi-hole/automated install/"
sudo bash basic-install.sh

Descargar instalador e instalar a mano

wget -O basic-install.sh https://install.pi-hole.net
sudo bash basic-install.sh

Luego solo tendremos que seguir los pasos del asistente para configurar los ajustes de red. Escogeremos la interfaz a utilizar para Pi-Hole:

Cuando hayamos completado el asistente, se nos facilitarán datos relevantes:

  1. Dirección IP del servidor web
  2. Contraseña de administración

Configurar Pi-Hole

Usar Pi-Hole como servidor DHCP (Settings > DHCP)

Podría ser interesante dejar que el Pi-hole sea el encargado de asignar las direcciones IP a los dispositivos que conecten en la red.

También podemos hacer un «mix» y mantener nuestro router como servidor DHCP para un rango de IPs determinado, teniendo Pi-Hole para el otro.

NOTA: desactiva antes el servidor DHCP en tu router si vas a dejar a Pi-Hole gestionar todo el rango de direcciones DHCP.

Configuración DNS (Settings > DNS)

Teniendo en cuenta que nuestro appliance es un servidor de DNS interno este es un aspecto en el que merece la pena fijarse bien.

Recomiendo establecer como servidores alguno de los siguientes (o todos):

  • OnepDNS (ECS)
  • Quad9 (filtrado, DNSSEC)
  • Cloudflare

Ahora, respecto a los DNS tenemos dos opciones:

  1. Configurar como servidor DNS único la dirección IP de nuestro Pi-Hole en la interfaz del router
  2. Asignar manualmente la dirección del servidor DNS en cada dispositivo individualmente
ZTE F660 DNS Server
Configuración de servidor DNS en router

Creo que esto no necesita más explicación y cada cual sabrá que ventajas e inconvenientes tiene cada cosa.

Administración

La interfaz de administración de nuestro servidor tiene un aspecto muy agradable, intuitivo. En las siguientes dos imágenes podemos ver el panel principal. Lo primero que vemos en la parte superior son las estadísticas de las últimas 24 horas:

  • Peticiones totales
  • Peticiones bloqueadas
  • % peticiones bloqueadas
  • Dominios en las listas negras (donde consulta Pi-Hole)

También en la esquina superior izquierda podemos ver el consumo de recursos en tiempo real.

A nivel de auditoría, podemos cargar un log gráfico de actividad y bloqueos. Las fechas son personalizables.

Teniendo en cuenta su cometido, nos ofrece bastante información de forma sencilla. También podemos consultar el log en formato textual (en tiempo real) desde Tools > Tail pihole.log.

Troubleshooting

Si queremos reiniciar la Pihole, desde Settings podemos hacerlo con los botones de la parte inferior. Si tenemos algún problema de funcionamiento (a veces ocurre si se reinicia) podemos resolverlos seleccionando la opción «Restart DNS resolver».

Pihole error

Administrar Pi-hole mediante el terminal

La linea de comandos puede ser una buena aliada para gestionar los servicios o configuración. Para manejar el core o «núcleo» escribiremos core seguido de las opciones:

Borrar logpihole flush
Reconfigurarpihole reconfigure
Tail (últimos mensajes)pihole tail
Administrarpihole -a
Cronómetropihole chronometer
Gravitypihole updateGravity
Loggingpihole logging
Consultarpihole query
Actualizarpihole updatePihole
Versiónpihole version
Desinstalarpihole uninstall
Estadopihole status
Activar o desactivarpihole enable
Reiniciar DNSpihole restartdns

En color resaltado he marcado los comandos más utilizados para resolución de problemas o gestionar los servicios.

Las listas blanca y negra se almacenan en las siguientes ubicaciones:

/etc/pihole/whitelist.txt
/etc/pihole/blacklist.txt

Podemos editarlas directamente añadiendo o borrando nombres de dominio.

Conclusiones

Llegados al final de este «tuto-análisis» solo puedo decir que estoy más que satisfecho con mi PiHole y no puedo sino recomendarla a todo el mundo. Más aún si tienes una Raspberry Pi perdida por casa y sin darle uso.

Funciona perfectamente en una Raspberry Pi 3, de hecho le sobran bastantes recursos. Podrás seguir utilizándola para otros propósitos y habrás borrado todos los anuncios y gran parte del malware que pueda llegar a tu equipo, de un plumazo.

En el próximo capítulo sobre PiHole: configuración junto a un servidor VPN

Alejandro Ver todo

Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.

3 comentarios sobre “Instalación de Pi-hole en Raspberry Pi para bloquear anuncios y popups Deja un comentario

  1. Ayer o antes de ayer, leí por primera vez sobre el bloqueador de anuncios pihole y no tenía muy claro como funcionaba, pues en el navegador tengo el blockchain, acabo de instalar el pivpn que se trata de un servidor de vpn, sobre pi-hole estoy pensándolo y mientras me decido, te agradecería si pudieses aclarar el servidor vpn frente a inscribirse en una web de pago de vpn, no tengo muy clara la cuestión, pues parece tratarse de tener uno su propia vpn y la concesión de dicho servicio a los usuarios de la raspberry, pero no tengo claro como se conectan desde el exterior o posibilitar la conexión bajo el auspicio de la vpn. He leido y estoy formándome un poco sobre esta cuestión pues me interesa para cuando salga del despacho poder conectarme de forma segura con el raspberry. Te estaría muy agradecido

    Me gusta

Deja tu comentario (puedes hacerlo de forma anónima)

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.