DNS y bloqueador de anuncios con Pi-hole
Pi-hole es un servidor DNS que bloquea publicidad y rastreadores a nivel de red.
Funciona interceptando las peticiones DNS de los dispositivos conectados y bloqueando dominios conocidos de publicidad antes de que carguen. Se instala normalmente en un servidor local (como una Raspberry Pi o máquina virtual) y protege toda la red sin necesidad de instalar extensiones en cada equipo.
En nuestro caso planteamos el siguiente escenario para su funcionamiento:
Escenario actual
Debemos primero plantear el escenario de máquinas virtuales con el que nos encontramos:
Ubuntu Server (Pi-hole)
1. Adaptador puente 2. Red interna “LAB”
1. IP LAN real 2. 10.0.0.5
DNS y puerta de enlace interna
Ubuntu Desktop (Cliente)
1. Red interna “LAB”
10.0.0.x
Cliente
👉 El problema es que la máquina cliente no tiene acceso a Internet, ya que solo está en la red interna y no hay NAT configurado. Para ello, la solución general va a pasar por configurar el Pi-hole como gateway y NAT. Básicamente:
El cliente usa el Pi-hole como DNS y puerta de enlace.
El servidor hace NAT hacia el adaptador puente.
Esto se hace con unas pocas configuraciones en el servidor:
1. Asignar IP estática al adaptador interno (Pi-hole)
Edita /etc/netplan/01-netcfg.yaml (o el archivo correspondiente a tu versión de Ubuntu Server):
network:
version: 2
renderer: networkd
ethernets:
enp0s3: # Adaptador puente
dhcp4: true
enp0s8: # Adaptador interno
addresses:
- 10.0.0.5/24Luego:
2. Habilitar el reenvío de paquetes IP en el servidor y configurar NAT con iptables
Disclaimer:
Este paso es necesario por el hecho de que la red NAT en VirtualBox con Windows esta temporalmente estroepada hasta que quieran parchearla.
Edita /etc/sysctl.conf con nano y descomenta o agrega:
Aplica los cambios:
Ahora vamos a configurar el servicio NAT para permitir la entrada de datos de Internet a través de la segunda interfaz. Para ello, si tu adaptador puente es enp0s3 y el interno enp0s8 escribe lo siguiente:
Para hacerlo persistente tras reinicio, puedes instalar iptables-persistent:
3. Configurar Pi-hole para escuchar en la red interna
Durante o después de la instalación de Pi-hole, asegúrate que:
Escuche en la IP
10.0.0.5.Resuelva DNS usando, por ejemplo,
1.1.1.1o8.8.8.8como upstream.Permita solicitudes de toda la red interna.
4. Instalar pihole
Primero empezaremos por actualizar el sistema como buena práctica:
También nos aseguraremos que esté instalado curl
y, si no lo tienes, lo instalas con:
Ahora, ejecuta el instalador oficial de Pi-hole:
Sigue ahora el asistente interactivo:
Elegir interfaz de red con IP estática, en nuestro caso enp0s8 (red interna).
Elegir activar DHCP.
Seleccionar DNS upstream (Google, Cloudflare, etc.).
Al final te mostrará la contraseña de acceso a la interfaz web y como acceder:

Desde un navegador de tu máquina host (Windows):
http://<IP-del-servidor>/admin:80
Si no te acuerdas de la contraseña, para cambiar contraseña si la olvidas:
Si ya lo instalaste previamente (por el motivo que sea) puedes "reconfigurarlo" con:
y seleccionas reconfigure.
5. Probar conectividad y Uso
Desde la interfaz de pi-hole, accede a la opción de DHCP y configúrala tal que así:

Ahora para probar si ha funcionado todo, desde el cliente probamos:
En el servidor:
Deberías ver las consultas DNS pasando por Pi-hole, si hacemos una prueba entrando a una web con anuncios veremos la diferencia:

Prueba ahora a acceder a la interfaz de pihole y entra a alguna página potencialmente maliciosa (Por ejemplo, www.annualconsumersurvey.com), verás que no te deja acceder y ahora las queries bloqueadas en pihole:


Puedes tratar ahora tú de configurar un dominio excluido, es una buena forma de establecer un "control parental" o filtrar en tu empresa o domicilio.

Última actualización