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:
|
|
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.
|
|
Guardo los cambios y cierro el archivo (CTRL+O, Enter, CTRL+X
y reinicio la Raspberry para que los cambios tengan efecto.
Compruebo con ifconfig
su correcta configuración.
|
|
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.
|
|
Me conecto vía SSH
|
|
Y actualizo el sistema antes de instalar Pi-hole.
|
|
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.
Copio y pego este comando:
|
|
La instalación comienza con un asistente
-
Respondo Ok a las tres primeras preguntas.
-
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
- Porcentaje bloqueado = consultas bloqueadas / consultas totales
- 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
:
|
|
¿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.
Usar listas negras adicionales (malware, spam, phishing, etc.)
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
|
|
Configuración cloudflared
para ejecutarse al inicio
Manera manual
Creo un usuario llamado cloudflared
para ejecutar el demonio:
|
|
Procedo a crear un archivo de configuración para el usuario 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:
|
|
Actualizo los permisos para el archivo de configuración y el binario cloudflared
para permitir el acceso al usuario de cloudflared:
|
|
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:
|
|
Habilito el servicio cloudflared.service
para que se ejecute en el inicio, luego inicio el servicio y verifico su estado:
|
|
Ahora compruebo que está funcionando correctamente, ejecuto el comando dig
que deberá devolver una respuesta similar a la siguiente:
|
|
Configuración de Pi-hole
Finalmente, configuro Pi-hole para usar el servicio local cloudflared
como servidor DNS ascendente especificando 127.0.0.1#5053
como DNS personalizado (IPv4)
Desinstalar cloudflared
Si se instala de forma manual
Cortesía de https://discourse.pi-hole.net/t/uninstall-cloudflare/21459/3
|
|
Existen multitud de formas de representar en la web colecciones de datos visualizándolos como gráficas o como tablas.
Github y GitLab son servicios web que permiten alojar el código de proyectos utilizando el software de control de versiones Git.
Pequeño tutorial para la instalación de KMV en Mx-linux.