Olvídate de anuncios estés donde estés con Pi-hole y WireGuard
Seguro que estas harto de ver anuncios por todas partes, como todo el mundo. ¿Y si te dijera que hay una manera de eliminar prácticamente todos los anuncios de todos tus dispositivos, incluidos aquellos que aparecen dentro de aplicaciones, y en cualquier sitio?
Si te interesa, estas en el lugar adecuado. Lo lograremos gracias a dos programas: un bloqueador de anuncios, Pi-hole, que usaremos para bloquear los dominios de anunciantes en tu red local, y una VPN alojada en tu red, WireGuard, a la cual te podrás conectar desde cualquier lugar del mundo para poder disfrutar de las ventajas de estar en tu LAN libre de anuncios desde cualquier sitio.
DNS dinámica
Ahora crearemos una cuenta nueva en Duck DNS para que nos proporcione una IP fija para poder acceder a ella desde fuera de nuestra red local. Este paso es muy similar al de ddclient que usamos en el tutorial sobre como montar tu propia página web desde casa.
Primero nos dirigimos a su página web https://www.duckdns.org y creamos una cuenta. Entonces elegimos un nombre de dominio (no es muy importante, solo recuerda apuntártelo) y borramos la IP que ha detectado automáticamente. La sustituimos por cualquier cosa, solo queremos ver que se ha actualizado correctamente después, así que no cierres esta página.
Abrimos sesión en nuestra Raspberry y usamos cron para programar la actualización automática de esta página. Para ello, nos dirigimos a la pestaña «install» de Duck DNS y seleccionamos «linux cron» y nuestro dominio del desplegable.
Seguimos las instrucciones, que son la creación de una carpeta para Duck DNS:
Y la edición del script que acabamos de crear según tu dominio:
Salimos del editor, hacemos que el script sea ejecutable y lo añadimos como trabajo periódico de cron:
ardumaster@little-monkey:~/duckdns $ chmod 700 duck.sh
crontab -e
Pegamos el siguiente bloque al final de crontab
:
*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1
Y probamos el script:
Volvemos a abrir la página con nuestra IP y comprobamos que se ha actualizado correctamente.
Instalación de WireGuard
Ahora procedemos a instalar WireGuard, una VPN que podemos alojar desde nuestro propio servidor. Para ello, utilizaremos un repositorio que nos proporciona WireGuard con una interfaz muy amable:
Seguimos las instrucciones del repositorio para instalar «WireGuard Easy»:
Y nos volvemos a conectar. Ahora ejecutamos el siguiente comando con cuidado de cambiar TU_DOMINIO por el dominio que has configurado antes en Duck DNS (test0ardumaster.duckdns.org para mi) y TU_CONTRASEÑA por una contraseña que usaras para acceder a la interfaz gráfica (apúntatela):
Deberías ser capaz de acceder a la interfaz gráfica visitando http://IP_DE_TU_RASPBERRY:51821
:
Una vez dentro, podemos crear clientes y enlazarlos con nuestros dispositivos mediante la interfaz gráfica. Tan solo es necesario haber instalado WireGuard en otro dispositivo y escanear el QR o instalar el archivo de configuración, pero ahora necesitamos hacer que se pueda acceder a nuestra VPN desde fuera de nuestra red local.
Si quieres ir instalando los clientes, a continuación tienes los enlaces de descarga para diversas plataformas de su página oficial:
Configuración del enrutador
Lo último que tenemos que hacer es configurar nuestro enrutador para que redirija el tráfico de la VPN hacia nuestra Raspberry con WireGuard.
IP estática
Vamos a necesitar asegurarnos de que Raspberry Pi siempre se encuentra en la misma IP dentro de tu red local, por lo que vamos a definir una IP fija para tu Raspberry.
Primero debemos averiguar la IP de nuestro enrutador. Si no la conocemos, podemos ejecutar el siguiente comando en la terminal:
Utilizando un navegador web, nos dirigimos a esa IP, escribiéndola directamente en la barra de búsqueda. Nos encontraremos con una pantalla de inicio de sesión. Si no has cambiado la contraseña, será fácil de encontrar ya sea siguiendo las instrucciones de esta pantalla, o buscando la contraseña por defecto de tu modelo particular por internet. Una vez tengas la contraseña, accede al menú del enrutador.
Una vez dentro, vamos a buscar los ajustes del servidor DHCP. No desesperes a la hora de buscar, es posible que se encuentren en otro menú tras «Opciones avanzadas». Una vez encontrado, seleccionamos «añadir entrada» e introducimos tanto la IP deseada (la que quieras siempre que no se esté usando ya) y la dirección MAC que obtuvimos previamente.
Reiniciamos la Raspberry Pi y comprobamos que tenemos la IP correcta:
Redirección de puertos
Ahora que tenemos una dirección fija para nuestra Raspberry, podemos redireccionar el tráfico que venga a nuestro enrutador para poder acceder a la VPN desde fuera de casa.
Una vez dentro, simplemente accedemos al menú de puertos de nuestro enrutador y creamos una nueva regla con los siguientes valores:
- Nombre de la regla de puertos: Lo que queramos, que sea descriptivo, por ejemplo, wireguard
- Dirección IP: La IP de nuestra Raspberry Pi
- Protocolo: TCP+UDP
- Abrir puerto / Rango externo (WAN): 51820
- Abrir puerto / Rango interno (LAN): 51820
Instalación de Pi-hole
Pi-hole es el paquete que se encargará de filtrar los anunciantes de nuestro internet. Empezaremos comprobando que cumplimos con los requisitos, que podemos verificar en esta página.
SO | Versión | Arquitectura |
---|---|---|
Raspberry Pi OS (antes Raspbian) |
Buster / Bullseye | ARM |
Ubuntu | 20.x / 22.x | ARM / x86_64 |
Debian | 10 / 11 | ARM / x86_64 / i386 |
Fedora | 36 / 37 | ARM / x86_64 |
CentOS Stream | 8 / 9 | x86_64 |
Si tenemos configurado algún cortafuegos, como ufw
, lo configuramos tal que abrimos los siguientes puertos:
Ahora instalaremos Pi-hole mediante el script que ofrecen:
En unos de los pasos de la instalación, nos pedirá que configuremos una IP estática. Esto ya lo hemos hecho en la sección anterior:
Asegúrate de instalar la interfaz de administrador web:
Después de la instalación, deberías poder acceder a la página de administración en la siguiente dirección: IP_DE_TU_RASPBERRY/admin. Por ejemplo 192.168.1.84/admin. Si no recuerdas la contraseña que ha aparecido durante la instalación o te olvidas de ella en cualquier momento, puedes sustituirla por una nueva con el siguiente comando:
Ya casi estamos, solo nos falta modificar unos últimos datos de nuestro enrutador para hacer que el resto de nuestra red acceda a internet a través de nuestro servidor con Pi-hole y así acceda a un internet filtrado de anuncios.
Volvemos a abrir la configuración de nuestro enrutador y buscamos las opciones de LAN. Una vez dentro, cambiamos la IP asignada a «DNS Server 1» para que apunte a nuestra Raspberry y nos aseguramos de que se trata del único servidor DNS con valor.
Verifica que Pi-hole está sirviendo de servidor DNS en un ordenador que quieras proteger:
Comprobamos los resultados
Tan solo queda disfrutar de los resultados de nuestro trabajo. Nos instalamos WireGuard en otro dispositivo mediante el enlace compartido anteriormente:
Una vez conectados, deberiamos ser capaces de navegar con muchos menos anuncios. Ten en cuenta que no funcionará con todos los anuncios, y los anuncios de sitios streaming son muy complicados, por lo que sigue siendo muy recomendable seguir usando un bloqueador de anuncios convencional.
Para ver cuantos anuncios has bloqueado y otras estadísticas, dirígete a IP_DE_TU_RASPBERRY/admin:
Aunque ya no vayas a ver los anuncios de mi página, me alegro de poder haberte ayudado a ahorrar tiempo y ganar en seguridad a la hora de navegar por internet.