Voy a instalar un bloqueador de anuncios para que todos los equipos que se conecten a mi intranet se puedan beneficiar de navegar por Internet sin la gran mayoría de anuncios, además de poder moderar los contenidos a los que acceden los niños.
Usaré Pi-Hole, que es un bloqueador de anuncios, gratuito y de código abierto, para Raspberry Pi.
Su código fuente está disponible en GitHub y se puede instalar en el sistema operativo Raspberry Pi con la siguiente línea de comando:
1
curl -sSL https://install.pi-hole.net | sudo bash
Instalación Pi-Hole
El proceso de instalación, es sencillo. Pi-Hole es un software liviano y está diseñado especialmente para Raspberry Pi, por lo que puedo instalarlo sin más en mi Raspberry Pi 3b con el comando arriba descrito.
En mi Raspberry acabo de instalar Raspberry Pi OS Lite (32bit) y he realizado la configuración básica desde la linea de comandos con sudo raspi-config , a saber:
Distribución del teclado
Idioma del sistema
Zona horaria
Acceso SSH
Contraseña por defecto del usuario pi.
Por último establezco una dirección IP estática para mi Raspberry Pi. Es algo que voy a necesitar luego al instalar pi-hole y así lo dejo hecho.
Para ello edito /etc/dhcpcd.conf con nano y añado las siguientes líneas al final.
No voy a activar la Wi-Fi pues la conectaré directamente al router por cable.
Compruebo que tengo Internet por ejemplo con un ping y la preparo para poder conectarme por SSH desde mi portátil.
1
2
3
4
5
6
7
8
9
10
11
pi@raspberrypi:~ $ ping google.com
PING google.com (142.250.200.110) 56(84) bytes of data.
64 bytes from mad41s13-in-f14.1e100.net (142.250.200.110): icmp_seq=1ttl=110time=30.2 ms
64 bytes from mad41s13-in-f14.1e100.net (142.250.200.110): icmp_seq=2ttl=110time=29.6 ms
64 bytes from mad41s13-in-f14.1e100.net (142.250.200.110): icmp_seq=3ttl=110time=29.5 ms
64 bytes from mad41s13-in-f14.1e100.net (142.250.200.110): icmp_seq=4ttl=110time=29.2 ms
64 bytes from mad41s13-in-f14.1e100.net (142.250.200.110): icmp_seq=5ttl=110time=29.6 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 29.154/29.630/30.246/0.351 ms
Me conecto vía SSH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
user@user-pc:~
$ ssh pi@192.168.100.10
pi@192.168.100.10's password:
Linux raspberrypi 5.10.63-v7+ #1459 SMP Wed Oct 6 16:41:10 BST 2021 armv7lThe programs included with the Debian GNU/Linux system are free software;the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Nov 30 11:23:51 2021 from 192.168.100.3
Wi-Fi is currently blocked by rfkill.
Use raspi-config to set the country before use.
pi@raspberrypi:~ $
Y actualizo el sistema antes de instalar Pi-hole.
1
sudo apt update && sudo apt upgrade -y
Y eso es todo, ¡está listo para comenzar!
Instalación de Pi-Hole
Pi-Hole está disponible en este repositorio de GitHub y tienen un comando de una línea para instalarlo fácilmente.
Luego, el siguiente mensaje dice que necesita una IP estática (ya la he configurado).
No es obligatorio, pero si cambiase la IP, perdería Internet, por lo que es recomendable mantenerla estática.
Elijo la interfaz para usar, eth0 para una conexión por cable, wlan0 en WiFi.
Lo siguiente es elegir un proveedor de DNS .
Pi-Hole reenviará todas las solicitudes a los servidores DNS después de filtrarlas. Tomo la predeterminada (Google) y la cambiaré más tarde.
El asistente ahora me pide que seleccione listas de terceros para usar para bloquear anuncios :
creo que puedo conservarlas todas y cambiar / agregar algunas más tarde.
La siguiente pregunta es sobre los protocolos IPv4 / IPv6, donde deshabilito las direcciones IPv6.
Luego me pregunta acerca de la configuración de IP estática: recomiendo hacer clic en Sí para corregir su dirección IP.
La siguiente pantalla es un mensaje de advertencia sobre el uso de DHCP e IP estática en el mismo rango de red: pero la mayoría de las veces el enrrutador detectará su Raspberry Pi y no asignará esta IP a otra.
Luego me daría la dirección IPv6 si decidiese mantenerla habilitada.
Luego, el asistente me pide que habilite la interfaz de administración web, recomiendo habilitarla, es una característica importante en Pi-Hole.
En el siguiente paso, debo confirmar la instalación de Lighttpd. Es obligatorio para que la interfaz funcione, así que elijo “Activado”.
Ahora, debo elegir si deseo habilitar el registro de consultas . El software almacenará cualquier solicitud de DNS que realice y mostrará estadísticas sobre ella. Recomiendo habilitarlo por el momento, puede deshabilitarlo más tarde en la interfaz.
Finalmente, hay un modo de privacidad para seleccionar entre cinco niveles. Lo mismo, puedo cambiarlo más tarde: si lo estuviera instalando para una empresa, debería asegurarme de tener permiso para habilitar el registro de consultas y mostrar los detalles de cada solicitud, probablemente sea algo para consultar con el departamento legal.
Después de esto, el proceso de instalación continúa descargando e instalando nuevos paquetes según sus opciones.
La última pantalla, da la dirección de la interfaz web y la contraseña de inicio de sesión:
Configuración del cliente
Configuración DHCP
La forma más sencilla de configurar todos los dispositivos a la vez es cambiar la configuración en el servidor DHCP.
En casa, probablemente es el router del ISP el que asuma este papel. No explicaré esto en detalle, ya que es diferente en cada enrutador. Puede estar en la configuración de DHCP o en la configuración de DNS.
En este caso lo único que hay que hacer es eliminar todos los valores y configurar como servidor DNS primario mi raspberry pi, por lo que asigno su IP 192.168.100.10 . No configuraré un servidor DNS IPv4 secundario, excepto si tuviese dos Raspberry Pi con Pi-Hole en la red.
De esta manera, cualquier dispositivo que use DHCP ahora usará el bloqueador de anuncios Pi-Hole de mi red local como servidor DNS.
Puede llevar algunas horas actualizar la configuración del dispositivo en todos los dispositivos, hay que tener paciencia o desconéctelos / volver a conectarlos manualmente.
Nota: Es importante tener en cuenta que si el servicio de Pi-hole actuará como servidor de DHCP, se debe deshabilitar previamente cualquier otro servicio de DHCP en la red (por lo general viene activo en el router).
Configuración estática
Cuando no tengo acceso a la configuración anterior en el router de mi ISP, puedo editar manualmente la configuración de los equipos conectados:
En Windows 10:
Hago clic con el botón derecho en el “Menú de inicio” y selecciono “Conexiones de red”
Luego hago clic en “Cambiar la configuración del adaptador”
Hago clic derecho en mi conexión actual y elijo “Propiedades”
Hago doble clic en “Protocolo de Internet versión 4 (TCP / IPv4)”
Configuro el servidor DNS en estático e ingreso la dirección IP de la Raspberry Pi. Mantengo el servidor DNS secundario vacío
En Linux y Mac OS:
Si tengo una interfaz gráfica, encontraré la configuración de red en Preferencias del sistema
Si no es así, puedo editar el archivo /etc/resolv.conf y reemplazar el servidor DNS actual con la dirección IP de Raspberry Pi
En el móvil , está en la configuración del WiFi.
Interfaz web Pi-Hole
Pi-Hole viene con una excelente interfaz web, veamos esto ahora.
Primer inicio de sesión
Para acceder a la interfaz web, abro un navegador web y voy a http: // <RASPBERRYPI_IP> / admin .
En mi caso, es http://192.168.100.10/admin
Una vez en la página web, hago clic en Iniciar sesión y escribo la contraseña que elegí durante la instalación anteriormente. Si todo está correcto, obtendré algo como esto:
En esta página, podré ver todas las estadísticas sobre el uso de Internet:
Consultas totales : cuántas solicitudes realicé
Consultas bloqueadas : cuántas solicitudes han sido bloqueadas
Dominios en lista negra : cuántos nombres de dominio tengo en las listas negras
También hay gráficos sobre consultas y evolución de clientes en las últimas horas.
Dos gráficos circulares muestran datos sobre los tipos de consultas.
Y debajo (no se ve en la imagen), enumera los dominios principales y los dominios bloqueados principales, y lo mismo para los clientes.
Secciones del menú
En el menú principal encontraré enlaces a las otras páginas y secciones:
Panel de control : la página que acabamos de ver
Registro de consultas : si está habilitado, todas las consultas que realizó y si Pi-Hole las bloqueó o no
Datos a largo plazo : el tablero muestra datos sobre las últimas 24 horas, en esta sección, puede especificar el rango de fechas
Lista blanca : aquí puede agregar dominios a la lista blanca (si están en una lista negra y no desea bloquearlos). Por ejemplo, estoy usando Google Analytics para este sitio web y está en la lista negra, así que agregué la URL aquí.
Desactivar : a veces es posible que deba desactivar Pi-Hole durante unos minutos o de forma permanente para hacer algo específico en su computadora. Aquí es donde puedes hacerlo
Herramientas : un montón de herramientas para depurar Pi-Hole, te dejaré descubrir esta parte
Configuración : todos los menús de configuración, llegaremos a esto en el siguiente párrafo
Cerrar sesión / Donar / Ayuda : estos deben estar claros 🙂
Ajustes
Profundizando en la parte de la configuración.
Al hacer clic en el elemento del menú “Configuración”, obtengo varias pestañas con formularios de configuración:
Básicamente, puedo editar aquí todas las cosas que elegí anteriormente en el asistente de instalación.
Sistema : En esta primera pestaña, puedo verificar información sobre la red y la versión y uso de Pi-Hole. También tiene una “Zona de peligro” para reiniciar servicios, reiniciar Raspberry Pi o borrar registros
Listas de anuncios : en esta pestaña, puedo administrar los dominios incluidos en la lista negra. Puedo deshabilitar o eliminar listas negras predeterminadas o agregar una nueva
DNS : la pestaña DNS es donde puedo cambiar los proveedores de DNS y configurar ajustes de DNS más avanzados
DHCP : esta pestaña me permite habilitar un servidor DHCP en Pi-Hole. Esa es otra forma de configurar clientes si mi enrutador actual no lo hiciese. No debo olvidar deshabilitar el antiguo servidor DNS si quiero probar esta opción.
Interfaz API / Web : la siguiente pestaña es para varias configuraciones sobre la interfaz. Puedo enmascarar dominios para el tablero y personalizar la visualización de la interfaz
Privacidad : en esta pestaña, puedo cambiar el nivel de privacidad que vi en el asistente de instalación para aumentar o disminuir el nivel de privacidad en la interfaz
Teletransportador : Finalmente, lo que ellos llaman “Teletransportador” es solo una herramienta de Importación / Exportación, para mover la configuración de una Raspberry Pi a otra.
Consejos
Antes de finalizar este tutorial, hay algunas otras cosas que es importante saber sobre Pi-Hole.
Actualizar la lista negra
Las listas negras de dominios cambian todos los días, se deben actualizar periódicamente para mantener una buena protección.
Para hacer esto, debo ir a Herramientas> Actualizar gravedad y hacer clic en Actualizar .
Pi-Hole descargará cada archivo de lista negra de las fuentes especificadas y volverá a cargar la configuración.
Actualiza el software
Pi-Hole publica actualizaciones y arreglos con regularidad, por lo que debo actualizarlo. Para hacer esto, el procedimiento es simple:
Debo conectarme a mi Raspberry Pi a través de SSH y escribir el comando sudo pihole -up :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pi@raspberrypi:~ $ sudo pihole -up
[✓] Update local cache of available packages
[i] Existing PHP installation detected : PHP version 7.4.25
[✓] Checking for git
[✓] Checking for iproute2
[✓] Checking for whiptail
[✓] Checking for ca-certificates
[i] Checking for updates...
[i] Pi-hole Core: up to date
[i] Web Interface: up to date
[i] FTL: up to date
[✓] Everything is up to date!
pi@raspberrypi:~ $
¿Hay alguna forma de usar Pi-Hole para bloquear más dominios que anuncios? Sí, puedo agregar mi lista y nombres de dominio personalizados. Por lo tanto, puedo usarlo para bloquear cualquier dominio: no es seguro para niños, dominios específicos o sitios web conocidos por instalar malware.
¿Qué puedo hacer si bloqueo un sitio web útil? Si sitios web que utilizo con frecuencia no funcionan después de la configuración de Pi-Hole, puedo agregar el nombre de dominio en el menú de la lista blanca para desbloquearlo.
¿Qué hace y cómo funciona Pi-Hole?
Básicamente lo que hace Pi-hole es ponerse entre mis dispositivos y los servicios DNS que me dan acceso a todas las páginas de internet, y filtrar todos los anuncios y servicios de tracking gracias a que consulta una serie de listas con dominios de internet que están «fichados». Con Pi-hole voy a conseguir lo siguiente:
Protección de la red: En lugar de los plugins de los navegadores u otro software en cada ordenador, instalo Pi-hole y toda mi red estará protegida.
Bloquear anuncios en aplicaciónes: El bloqueo a nivel de red te permite bloquear los anuncios en aplicaciones móviles y televisores inteligentes (SmartTV), independientemente del hardware o del sistema operativo.
Mejorar el rendimiento de la red: Como los anuncios se bloquean antes de ser descargados, el rendimiento de la red mejora.
Control de estadísticas: voy poder controlar las estadísticas de bloqueos en mi red y averiguar que servicios son los menos respetan mi privacidad.
Si las listas negras (blacklists) por defecto de Pi-hole no son suficientes, siempre se pueden añadir listas adicionales para optimizar el filtrado.
Desde el apartado Group Management -> Adlists se pueden modificar las listas que Pi-hole usa para admitir o bloquear direcciones.
En mi caso, uso las listas de “The Blocklist Project“ y las listas que aparecen en verde en The Firebog, que incluye múltiples catálogos de filtrado con base en temas como ads, malware, phishing, ransomware, spam, tracking, etc. Para usarlo, simplemente se escoge la categoría a filtrar y el sitio web provee de la URL para añadir a la lista negra. (otra opción es https://filterlists.com/).
Una vez he agregado las listas, procedo a actualizarlas desde el menú “Tools” “Upadte Gravity”
Usar filtrados adicionales desde el DNS
Los servicios de DNS como Cloudflare (quienes gestionan el servicio de DNS 1.1.1.1) incluyen mejoras en sus DNS que permiten el filtrado tanto de malware como de contenido para adultos en su servicio 1.1.1.1 for Families.
En este caso, simplemente se cambia el DNS superior (upstream DNS) de Pi-hole desde “Settings” -> “DNS” y se configuran los siguientes valores, dependiendo de los filtrados que se quieran incorporar:
Para probarlos, simplemente hay que visitar los siguientes dominios:
malware.testcategory.com
phishing.testcategory.com
Instalando cloudflared
La instalación es bastante sencilla, sin embargo, hay que tener en cuenta en qué arquitectura estoy realizando la instalación.
arquitectura armhf (Raspberry Pi de 32 bits)
Descargo el binario precompilado y lo copio en el directorio /usr/local/bin/ para permitir la ejecución por parte del usuario cloudflared. Procedo a ejecutar el binario con la bandera -v para comprobar que todo funciona
Procedo a crear un archivo de configuración para el usuario cloudflared:
1
$ sudo nano /etc/default/cloudflared
Edito el archivo de configuración copiando lo siguiente en /etc/default/cloudflared. Este archivo contiene las opciones de la línea de comandos que se pasan a cloudflared en el inicio:
Luego creo el servicio cloudflared.service con el siguiente script y lo guardo en /etc/systemd/system/. Esto controlará la ejecución del servicio y permitirá que se ejecute en el inicio:
Finalmente, configuro Pi-hole para usar el servicio local cloudflared como servidor DNS ascendente especificando 127.0.0.1#5053 como DNS personalizado (IPv4)