Pi-hole es una aplicación para bloqueo de anuncios y rastreadores en Internet a nivel de red en Linux que actúa como un sumidero de DNS (y opcionalmente como un servidor DHCP), destinado para su uso en una red privada. Fue diseñado para su uso en dispositivos embebidos con capacidad de red, como el Raspberry Pi, pero también se puede utilizar en otras máquinas que ejecuten distribuciones Linux e implementaciones en la nube.
Pi-hole tiene la capacidad de bloquear anuncios tradicionales de sitios web, así como anuncios en lugares no convencionales, como televisores inteligentes y sistemas operativos para dispositivos móviles.
La instalación de Pi-hole es muy sencilla, basta con seguir las instrucciones de su página web. También hay infinidad de videos en youtube que enseñan cómo hacerlo.
Así, que lo que explicaré a continuación será….
Que hacer antes de instalar Pi-hole
Antes de instalar pihole, sería interesante crear el grupo pihole y añadir nuestro usuario a ese grupo.
Crea el grupo pihole desde la terminal así:
sudo groupadd pihole
Añade tu usuario al grupo pihole así:
sudo usermod -a -G pihole tu_usuario
‘Que hacer despues de instalar Pi-hole‘.
Fijar una IP para tu Raspberry
Para esto tendremos que entrar al router, necesitamos el nombre de usuario y la contraseña de acceso. Se suele entrar con a través de las IPs http://192.168.1.1 o http://192.168.0.1
Dado que hay muchos modelos y marcas de router, tendrás que buscar información de como hacerlo en tu caso.
Se trata de entrar en la LAN de tu router, ir al servidor DCHP y fijar una IP para Pi-hole. También tienes que asignar la ip local del servidor dns de tu raspberry.
Voy a explicar como hacerlo en un router Asus, el resto de fabricantes tendrán la configuración en otros menús, pero serán parecidas a este.
Abre tu navegador y escribe la ip de tu router, en mi caso http://192.168.1.1 escribe el nombre de usuario y contraseña para el acceso. Busca el la pestaña que hace referencia a la ‘LAN‘, que es tu red local.
Una vez dentro de la LAN, ve a ‘Servidor DHCP’
Donde dice, ‘Dirección IP asignada manualmente según la lista DHCP (Límite máximo : 64)‘ haz click en el menú desplegable ‘Nombre del cliente‘ despliega la lista y busca el equipo que tiene instalado Pi-hole.
En mi caso, elijo Raspberry Pi 4. Selecciónala y dale a ‘Aplicar‘ para que la IP de tu Pi-hole no cambie y siempre sea la misma.
Fíjate en la dirección IP de tu Pi-hole, en mi caso 192.168.1.228 porque deberás de copiarla y en ‘Configuración del servidor DNS y WINS‘ en ‘Servidor DNS‘ pegarla. No olvides darle a ‘Aplicar‘ para guardar los cambios.
Ahora todos los equipos conectados a nuestra red local pasarán por resolver sus peticiones DNS a través de nuestro Pi-hole.
Cambiar la contraseña de administrador de la GUI web de Pi-hole
Una vez tengas instalado Pi-Hole, sería recomendable cambiar la contraseña , para hacerlo, ejecuta este comando:
pihole -a -p
Esto te pedirá que ingreses una contraseña y luego la confirmes.
Cambia el puerto de Pi-hole
Si ejecutas otro servidor web en tu raspberry pi,como es mi caso, como nginx, apache etc., deberás cambiar el puerto predeterminado «80» para el administrador web de tu pi-hole. Esto lo aplicaremos al servidor web «lighthttpd» que se instala predeterminado con pi-hole.
Abre tu terminal y edita el archivo de configuración de lighttpd.conf con el siguiente comando:
sudo nano /etc/lighttpd/lighttpd.conf
busca donde hace referencia al puerto 80 del servidor.
Cambia el 80 por el puerto que desees y no haga conflicto con otras aplicaciones. En mi caso usaré el puerto 8060
Reinicia el servidor con el siguiente comando.
sudo systemctl restart lighttpd
Si quieres controlar tu Pi-hole desde la calle, osea desde fuera de tu red, no olvides abrir el puerto en tu router y acceder desde la IP_Pública:puerto/admin.
Inicia sesión en la GUI de Pi-hole
¡Ahora estas listos para iniciar sesión en la GUI por primera vez! Si no has cambiado el puerto al servidor, ve a tu navegador e ingresa la dirección IP/admin en este formato:
http://192.168.1.28/admin
(Sustituye la dirección IP por la tuya).
Si has cambiado el puerto 80 a uno personalizado, tendrás que indicarlo en la dirección usando este formato «dirección IP:puerto/admin»
http://192.168.1.28:8060/admin
Ingresa la contraseña de administrador que creaste en el paso anterior y haz clic en «Log in». Al iniciar sesión, se nos presenta el «Dashboard» (panel) Pi-hole.
Acabamos de empezar a usar Pi-hole, por lo que todavía, no tenemos un montón de estadísticas útiles… esas comenzarán a completarse tan pronto comiencen nuestros dispositivos de la red local a hacer consultas DNS.
En el lado izquierdo del tablero se encuentran nuestras opciones de menú. Los 4 bloques de colores en la parte superior son algunas estadísticas
- El cuadro azul es el número total de consultas que Pi-hole ha procesado.
- El cuadro rojo muestra cuántas de esas consultas coincidieron la lista de bloqueo y fueron bloqueadas.
- El cuadro amarillo es un porcentaje de solicitudes bloqueadas (el cuadro rojo se multiplica por 100 y se divide por el cuadro azul).
- Finalmente el cuadro verde es la cantidad de dominios que están en las listas de bloqueo.
Dado que por ahora solo tenemos una lista de bloqueo, podemos ver que tenemos alrededor de 158.000 dominios que serán bloqueados por este Pi-hole.
Seguimos por el menú de la izquierda con las opciones más importantes.
Query Log (Registro de consultas) : muestra el historial de búsquedas de DNS de Pi-hole en orden descendente (las búsquedas más recientes se encuentran en la parte superior). Puedes ver todos los estados de los dominios, tanto los aprobados como los bloqueados. Para los dominios aprobados, hay un botón para incluirlos en la lista negra y, para los dominios bloqueados, hay un botón para incluirlos en la lista blanca.
Long-Term Data (Datos a largo plazo) : al igual que el Registro de consultas, esta sección te brinda una visión más profunda del historial de DNS de Pi-hole y te permite filtrar esos datos con gran detalle.
Groups and Clients (Grupos y Clientes) : Puedes usar esta sección si deseas bloquear las consultas de DNS para todos los dispositivos, excepto para los dispositivos en un grupo específico. Tambien puedes bloquear SÓLO las consultas de DNS para dispositivos en un grupo específico, puedes obtener información muy detallada sobre qué clientes y grupos usan qué listas de bloqueo.
Domains (Dominios) : esta sección te permite agregar dominios específicamente a una lista negra o blanca. Por ejemplo, si hay tiendas específicas donde le gusta comprar en línea y esas tiendas están bloqueadas, puede incluirlas en la lista blanca aquí.
Adlists (Listas de anuncios) : de forma predeterminada, tenemos la lista de bloqueo predeterminada que está bien mantenida y bloquea muchos sitios sin alterar la funcionalidad normal de Internet. Dicho esto, puedes obtener MUCHO detalle sobre lo que está bloqueando (sitios maliciosos, contenido para adultos, sitios de publicidad, sitios de seguimiento y telemetría). Existen listas de bloqueo públicas específicas para cada uno de estos tipos de contenido, pero ten en cuenta que cuanto más sitios agregues a tus listas de bloqueo, mayores serán las posibilidades de romper algo. Entonces tu familia se quejará de que «Internet» no funciona y tendrás que lidiar con ello. El truco consiste en encontrar el punto medio que bloquee mucho sin afectar la experiencia del usuario.
Ya que estamos analizando varias listas de bloqueo, sigue adelante y agrega algunas de la página de The Oisd . Copia el enlace https://big.oisd.nl en «Adlist» (Listas de anuncios) y pégalo en el campo «Address:» (Dirección) y luego haz clic en «Add» (Agregar).
Repite esto para tantas listas de bloqueo como desees; para este tutorial, tambień copiaré y pegaré la lista https://nsfw.oisd.nl
Oisd está compuesto por 3 listas que se actualizan aproximadamente cada 24 horas.
- oisd small -> Se centra principalmente en el bloqueo de anuncios
- oisd big ->Bloquea anuncios, anuncios de aplicaciones (móviles), phishing, malvertising, malware, spyware, ransomware, cryptojacking, estafas, … Telemetría/Analítica/Seguimiento (Cuando no sea necesario para el correcto funcionamiento)
- oisd nsfw -> Bloquea sitios porno/para adultos
Nota: «oisd big» incluye todas las entradas de «oisd small». Por lo tanto, no es necesario utilizar ambas listas simultáneamente.
Una vez completado, debemos decirle a Pi-hole que importe estas listas.
Ve a Tools -> Update Gravity y luego haz clic en el botón ‘Update’ (Actualizar). Esto revisará todas las listas de bloqueo y agregará las URL bloqueadas a la base de datos de Pi-hole. Una vez completado, verás un cartel verde que dice «Success!» (Éxito ) en la parte superior de la pantalla.
Ahora haz clic en Panel de control en el menú de la izquierda. ¿Notas algo diferente? Nuestros ‘Dominios en listas de anuncios’ aumentaron de aproximadamente 158.000 a 583.835 dominios bloqueados.
¡Volvamos a nuestro recorrido por el menú de la izquierda!
Disable Blocking (Deshabilitar el bloqueo) : esto te permite evitar que Pi-hole bloquee cualquier dominio durante varios períodos de tiempo (o indefinidamente). Muy útil para solucionar problemas: si algo no funciona en tu red o en tu navegación por Internet, intenta desactivar el bloqueo durante 5 minutos y observa si se soluciona. Si, sí lo soluciona, entonces sabrás que probablemente habrá algunos dominios que tendrás que incluir en la lista blanca.
Dominios habituales en la lista blanca. Pincha aquí
DNS local : esto te permite crear tus propias entradas de DNS locales.
Herramientas – sí… herramientas. Échales un vistazo.
Settings
Por último, pero no menos importante, tenemos nuestra Configuración. Esto exige su propia sección en este tutorial.
Comenzaremos con la pestaña ‘Sistema‘, que nos muestra información diversa sobre Pi-hole: versiones de software, utilización de recursos, etc. También tenemos la opción de controlar DNS y el servidor mismo usando los botones en la parte inferior.
Pestaña DNS: nos muestra qué proveedores ascendentes utilizamos para consultas DNS sin caché. Cómo elegí OpenDNS durante el asistente de configuración, podemos ver que OpenDNS es mi fuente de búsqueda principal y secundaria. También puedes jugar con las casillas de verificación primaria y secundaria aquí para tener diferentes fuentes de consulta de DNS, por ejemplo, OpenDNS+Cloudflare. ( No elijas Google, ya que en cada petición DNS muere un gatito)
Otra cosa a destacar en la pestaña DNS: en el lado derecho está la sección ‘Interface settings’ (Configuración de interfaz). De forma predeterminada, Pi-hole está configurado para responder SÓLO a consultas DNS desde su LAN local. Si solo dispones de una red en casa como es mi caso y seguramente el tuyo, déjalo de forma predeterminada..Esta opción, sólo permite consultas de dispositivos que estén como máximo a un salto de distancia (dispositivos locales). En caso, de que dispongas de otras subredes como LAN, invitados dispositivos IoT, etc y quiereas que todos puedan usar Pi-hole, cambia esa configuración para permitir solicitudes de otras subredes. Entonces, elige ‘Respond only on interface eth0’ (Responder solo en la interfaz eth0) que básicamente permite cualquier solicitud de DNS que ingrese al puerto de red.
Pestaña DHCP: el Pi-hole se puede utilizar como servidor DHCP si lo deseas, pero dejaremos hacer esto a nuestro router.
Pestaña Web interface: .Permite cambiar la apariencia de la GUI de administración, múltiples temas claros y oscuros.
Pestaña API esta pestaña le permite filtrar algunos dominios específicos que no deseas que se muestren en las estadísticas del panel.
Pestaña Privacidad te permite cambiar qué dominios se muestran u ocultan (esta era una opción en el asistente de configuración inicial) si desea cambiar esta configuración… aquí lo tiene.
Pestaña Teletransportador te permite hacer una copia de seguridad y restaurar la configuración de tu Pi-hole. Esto es increíblemente útil para mantener sincronizadas las configuraciones en múltiples Pi-holes. Una vez que tengas listas blancas/negras, listas de bloqueo y grupos en su lugar, puedes simplemente hacer una copia de seguridad de todos esos datos y restaurarlos en su segundo servidor Pi-hole.
El terminar la configuración te aconsejo que ejecutes una actualización de Pi-hole con:
pihole updatePihole
Test de funcionamiento.
Para saber si tu pi-hole está funcionando correctamente, pincha en el siguiente enlace.
https://blockads.fivefilters.org/?pihole
Si todo va bien deberás obtener una pantalla como esta en tu dispositivo
Miscelánea
Si estás interesado en profundizar en las listas de bloqueo que puedes agregar a Pi-hole, aquí tienes algunos buenos recursos: The Best Pi-hole Blocklists - Avoidthehack.com - Este artículo hace un excelente trabajo al explicar los diferentes tipos de listas de bloqueo, y luego enumera una serie de recursos para listas en diferentes categorías de bloqueo. The Firebog (colección de listas de bloqueo) - Este recurso de listas de bloqueo hace un excelente trabajo proporcionando fuentes de listas de bloqueo en múltiples categorías como Sospechoso, Publicidad, Seguimiento y Telemetría, y Malicioso. Además, desglosa esas listas en enlaces verdes y enlaces azules: los enlaces verdes son los que tienen menos probabilidades de interferir con la actividad normal en Internet. Una buena regla general es añadir solo las listas en verde e ir probando añadiendo un par de listas azules a ver cómo se comportan en tu Pi-hole. Una cosa más: en Pi-hole.net hay una lista de los dominios que suelen estar en la lista blanca. Si tienes problemas con un sitio web o servicio concreto (por ejemplo, Spotify o la funcionalidad de Xbox), comprueba si en esa página hay recursos para incluir ese servicio en la lista blanca; puede ahorrarte muchos quebraderos de cabeza.
Desbloqueo rápido de Pi-hole
¡iniciar sesión en la GUI de administración de Pi-hole para deshabilitar el bloqueo puede ser engorroso!. Para acortar el tiempo que lleva desactivar el bloqueo, puedes realizar algunas secuencias de comandos. Todo comienza con esta URL:
http://192.168.1.228/admin/api.php?disable=300&auth=PWHASH
Analicemos esto: la dirección IP es la dirección IP de tu Pi-hole ( usa la tuya para esto). ‘disable=300’ significa deshabilitar durante 300 segundos (5 minutos), y auth=PWHASH es el valor hash de WEBPASSWORD que se puedes encontrar en el archivo /etc/pihole/setupVars.conf. Puedes verlo si inicias sesión en tu Pi-hole con SSH y ejecutas el comando:
cat /etc/pihole/setupVars.conf |grep WEBPASSWORD
Esto te mostrará su contraseña hash: copia y pega todo después de = y agrégalo al final de la URL anterior.
Si ahora agregamos esa contraseña hash al final de la cadena URL anterior y luego la introduce en un navegador, esto se autenticará en su Pi-hole y deshabilitará el bloqueo durante 5 minutos.
Documentación para Pi-hole
Documentación de Pi-hole toda la documentación, instalación, guías, etc .. Aquí
Comandos para Pi-hole donde encontrarás los necesarios para administrar el programa a través de la interfaz de línea de comandos. Aquí
Y esto sería todo para tener Pi-hole en marcha.