Pihole: Filtro anuncios y DNS Local

Pihole es un dns local que permite de bloquear la gran mayoría de los anuncios que hay en la web (solo en las páginas web)

Para más información mira aquí: https://es.wikipedia.org/wiki/Pi-hole

En nuestro caso lo vamos a utiliza principalmente para otra función muy importante: Resolver los nombres locales.

Mira La red que has montado.
Tienes varios servicios en docker/ispconfig/servidores, cada uno con su IP y nombre y desde fuera de tu red funcionan perfectamente… pero cuando llegas a casa, tu dns es externo (8.8.8.8 o 1.1.1.1 por ejemplo) y los resuelven con la ip pública de tu router/modem. Lo cual en la mayoría de los casos no sirve de nada y por esto no te funciona.

Si en tu casa tienes uno o dos ordenadores fijos, puedes resolver el problema añadiendo al fichero /etc/hosts, con algo como


192.168.0.25 www.tormentasolar.win
192.168.0.26 social.tormentasolar.win

y así en adelante.

Pero esto no vale ni para los portatiles ni para los móviles/tabletas dado que se conectan a tu wifi y usan el dhcp, lo cual le proporciona un dns externo a tu casa.

La solución es la de instalar pihole, y utilizar el apartado “Local DNS” para insertar todos nuestros servicios de forma que cuando un dispositivo se conecta por wifi usando dhcp, el servidor dhcp la va a pasar como dns la ip de pihole. Así que mientras estés en casa, los servicios te van a funcionar, y cuando salgas de tu red para usar por ejemplo el 4G, también.

En este ejemplo damos por descontado que la ip del mini-servidor con raspberryPi es la 192.168.0.22, que tienes docker, docker-compose, Portainer y traefik instalados y en marcha.


cd /opt
mkdir pihole
cd pihole
mcedit docker-compose.yml

copia y pega este texto

version: "3"
services:
  pihole:
    container_name: Pihole
    image: pihole/pihole:latest
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "67:67/udp"
      - "1081:80/tcp"
      - "1443:443/tcp"
    environment:
      TZ: 'Europe/Madrid'
      # WEBPASSWORD: 'set a secure password here or it will be random'
    # Volumes store your data between container upgrades
    volumes:
      - './etc-pihole/:/etc/pihole/'
      - './etc-dnsmasq.d/:/etc/dnsmasq.d/'
    # Recommended but not required (DHCP needs NET_ADMIN)
    #   https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
    cap_add:
      - NET_ADMIN
    restart: unless-stopped
    networks:
      - web
    labels:
      # This one is important since we default to not expose
      #- "traefik.enable=true"
      #- "traefik.frontend.rule=Host:dns.tormentasolar.win"
      - "traefik.docker.network=web"
      - "traefik.http.middlewares.test-redirectscheme.redirectscheme.scheme=https"
      - "traefik.http.middlewares.test-redirectscheme.redirectscheme.permanent=true"
networks:
  web:
    external: false

y ahora:

docker-compose up -d

en pocos minutos tendremos un contenedor con pihole funcionando, así que vamos a verlo funcionar con e navegador en:

https://192.168.0.22:1081

Allí podrás entrar en la administración… si no fuera que no sabes la contraseña y no…. lo del WEBPASSWORD en el docker-compose no funciona, o no funciona en este momento. A lo mejor más adelante volverá a funcionar con nuevas actualizaciones.

Así que vamos con Portainer, entra en la consola de pihole y dale este comando:

sudo pihole -a -p

Reinicia el contenedor y vuelve a intentar hacer el login en pihole

aquí estamos!

Fijate a bajo a en el menú izquierdo que hay una opción “Local DNS” entra allí y pulsa en “DNS Records”

Allí podrás añadir entradas locales para resolver los nombres de tus servicios.
Por ejemplo si tu servidor además de pihole, tiene por ejemplo un blog, pon el nombre del dominio y la IP del servidor mismo

supongamos que tengas un servicio de icecast en otro servidor con la ip 192.168.0.51. Hace lo mismo nombre dominio e IP

ice.tormentasolar.win 192.168.0.51

y así en adelante

Retoque final:
Entra en el panel de control web de tu router (192.168.0.1 en normalidad) y cambia el dns primario del apartado de DHCP.
Te pongo mi router tplink, que es distinto a otras marcas, pero todas comparten los mismo parámetros básicos, y no te costará encontrar los mismos campos

Ahora todos los aparatos de tu red interna que usen dhcp vana poder utilizar los servios internos, y como postre, ya no hay anuncios en las páginas web.

Comments are closed.