Pi-hole & Docker
Adiós publicidad, hola dominios locales!
Pi-hole es la mejor solución para terminar con la publicidad intrusiva, tanto de aplicaciones como de sitios web, en todos los dispositivos de nuestra red. Vamos a instalarlo en nuestra Raspberry Pi, la cual actuará como servidor DNS. Además, explicaré como configurar dominios locales.
Aunque existen otras formas de instalación, he elegido Docker por las múltiples ventajas que aporta. Algunas de estas ventajas son: facilidad a la hora de actualizar, no modificamos los archivos del sistema y tendremos la posibilidad de aprovechar al máximo nuestra Raspberry Pi instalando otros servicios.
1. Instalar Docker
Empezaremos por instalar Docker desde su repositorio oficial
- Actualizar los paquetes e instalar los requisitos:
$ sudo apt update && sudo apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
- Añadir la clave GPG:
$ curl -fsSL https://download.docker.com/linux/debian/gpg \
| sudo apt-key add -
- Añadir el repositorio:
$ sudo add-apt-repository \
"deb [arch=armhf] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
- Instalar Docker:
$ sudo apt update && sudo apt install \
docker-ce docker-ce-cli containerd.io
- Añadir nuestro usuario al grupo Docker:
$ sudo usermod -aG docker <tu_usuario>
2. Instalar Pi-hole
Una vez instalado Docker, vamos a desplegar el contenedor de Pi-hole.
Montaremos los directorios pihole
y dnsmasq.d
del contenedor en dos volúmenes locales. El directorio oculto .pihole
situado en el home de nuestro usuario alojará ambos.
Además serviremos la interfaz web en el puerto 89
para no dar lugar a conflicto, estableceremos las DNS de Cloudfare
por defecto y configuraremos la zona horaria a Europe/Madrid
.
Puedes cambiar las opciones mencionadas anteriormente a tu gusto.
- Desplegar el contenedor:
$ docker run -d \
--name pihole \
-p 53:53/tcp -p 53:53/udp \
-p 89:80 \
-p 443:443 \
-e TZ="Europe/Madrid" \
-v "$HOME/.pihole/pihole/:/etc/pihole/" \
-v "$HOME/.pihole/dnsmasq.d/:/etc/dnsmasq.d/" \
--dns=1.1.1.1 --dns=1.0.0.1 \
--restart=unless-stopped \
pihole/pihole:latest
Una vez finalice, la interfaz de Pi-hole estará disponible en http://localhost:89
.
Tras configurar el servidor DNS
con la ip
de nuestra Raspberry Pi
, todo funcionará según lo esperado. Esto podemos hacerlo en cada uno de los dispositivos, o en la configuración del router.
Recomiendo esta última opción.
3. Dominios locales
Por último, vamos a utilizar Pi-hole para resolver nombres de dominio locales.
Gracias a los volúmenes que hemos creado, no tendremos que entrar en el contenedor para hacer esta configuración, ni se borrará en caso de que actualicemos Pi-hole.
- Creamos el archivo
local.list
en $HOME/.pihole/pihole/:
$ nano $HOME/.pihole/pihole/local.list
En este archivo definimos los dominios deseados con el formato <dirección-ip> <dominio-completo> <dominio>
.
- Ejemplo de dominios locales en
local.list
:
192.168.1.1 router router
192.168.1.2 raspberry.local raspberry
192.168.1.100 pcmain.local pcmain
- Creamos un segundo archivo de configuración para
dnsmasq
que referencie alocal.list
:
$ echo "addn-hosts=/etc/pihole/local.list" | sudo tee $HOME/.pihole/dnsmasq.d/02-local.conf
- Reiniciamos el contenedor :
$ docker restart pihole
Listo!
Ya tenemos todos los dispositivos de la red libres publicidad intrusiva, así como nuestros propios dominios locales para acceder sin escribir la dirección ip.
Espero que sea útil, ¡gracias por leerme!
Comparte esta publicación
Twitter
Facebook
Reddit
LinkedIn
Pinterest
Email