Pi-Hole + Openvpn: Bloquea la publicidad en tus

· ☕ 5 min lectura · ✍️ [Carlos M.]
🏷️
  • #pihole
  • #vpn
  • Con PI-Hole podemos filtrar y bloquear la publicidad de toda nuestra red, ya
    sean teléfonos, ordenadores, tablets, etc. Incluso llega a quitar los anuncios
    en las aplicaciones de los dispositivos Android e iOS. También cuenta con un
    servidor DHCP para ayudarnos en la configurar estos dispositivos.

    Los anuncios son bloqueados mediante DNS, además se puede usar junto a Openvpn
    para bloquear publicidad y ahorrar datos en las conexiones 3g/4g.

    Pasos previos

    Doy por hecho que tenemos instalado Openvpn en nuestra raspberry, si no es así
    en este articulo explico como hacerlo.

    Debemos averiguar la dirección IP del servidor OpenVPN, para ello escribimos el
    siguiente comando:

    1
    
    ip a show dev tun0
    

    Muestra una salida parecida a esta:

    1
    2
    3
    4
    5
    6
    
    4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
        link/none
        inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
           valid_lft forever preferred_lft forever
        inet6 ****::****:****:****:a161/64 scope link flags 800
           valid_lft forever preferred_lft forever
    

    Vemos que la dirección IP del servidor es 10.8.0.1.

    También debemos de conocer la dirección IP de la puerta de enlace o gateway, si
    no la saber la puedes averiguar con el siguiente comando:

    1
    2
    3
    4
    
    ip r | grep default
    
    default via 192.168.1.1 dev eth0  metric 202
    default dev tun0  scope link   de metric 204
    

    En mi caso es 192.168.1.1

    Pi-hole tiene su propio servidor HTTP, es por eso de que si en tu sistema ya
    estas utilizando otro servidor HTTP (Nginx, Lighttpd, Apache, etc) escuchando en
    el puerto 80 deberás volver a configurarlo para que escuche por otro puerto
    diferente al 80.

    Instalación

    Comenzamos la instalación ejecutando el comando:

    1
    2
    3
    
    wget -O basic-install.sh https://install.pi-hole.net
    
    sudo bash basic-install.sh
    

    Actualizara el sistema y bajara los ficheros necesarios para realizar la
    instalación

    Nos irán apareciendo una serie de ventanas, la primera nos informa que va a
    transformar nuestra raspberry en una bloqueador de publicidad.

    Pi-Hole se licencia con GNU/GPL, aquí nos da su dirección por si deseamos hacer
    una donación al proyecto.

    Nos informa que PI-Hole utiliza su propio servidor para funcionar por lo que
    necesita una dirección IP estática.

    En esta pantalla es importante elegir tun0 como Interface de red, ya que es el
    que utiliza OpenVPN como vimos antes. Si no tuviésemos instalado OpenVPN
    eligiriamos eth0 en caso de tener la rpi conectada a Internet mediante un cable
    red o wlan0 en caso de estar conectada mediante wi-fi.

    Aquí podemos elegir entre varios servicios de DNS para que Pi-Hole pueda
    resolver la dirección IP que no tenga cacheadas y que no tengan que ser
    filtradas, en mi caso elijo las de Google

    Elegimos que trafico vamos a filtrar, yo selecciono tanto IPv4 como IPv6

    Nos informa de la dirección IP estática que le va a asignar a la rpi así como la
    puerta de enlace, como antes, en caso de no utilizar Openvpn lo podríamos dejar
    así, pero en nuestro caso debemos cambiarla ya que queremos que el filtrado
    funcione para la red donde esta configurada nuestra VPN. Seleccionamos No

    Ponemos la dirección IP del servidor Openvpn

    Y la puerta de enlace

    Verificamos que los datos son correctos y seleccionamos Si

    En caso de tener IPv6, nos informa de la dirección usada para el bloqueo de la
    publicidad.

    Debemos elegir si deseamos instalar la interfaz web para administrar pi-hole,
    recordar que si ya tenemos corriendo otro servidor HTTP en e puerto 80, debemos
    de cambiarlo a otro diferente para evitar conflictos.

    Recomiendo activar el log de peticiones para así poder hacer un seguimiento y
    filtrado manual en caso de que sea necesario.

    Termina la instalación

    En mi caso tengo iptables como firewall, por lo que recibo un aviso de que se
    van modificar la reglas para poder permitir el trafico de los puertos 80 y 53
    hacia el servidor de pi-hole

    Cuando termina la instalación nos aparece la ventana con los datos de conexión a
    la interfaz web para poder administrar pi-hole y la contraseña de acceso

    La contraseña de acceso se puede cambiar desde la terminal con el siguiente
    comando:

    1
    
    pihole -a -p nueva_contraseña
    

    Ya podemos acceder a la interfaz web

    Actualizar configuración de OpenVPN y pi-hole

    Si no vas a utilizar OpenVPN puedes saltarte este punto.

    Debemos actualizar la configuración de OpenVPN para que utilice pi-hole como
    servidor de DNS.

    1
    
    sudo nano /etc/openvpn/server.conf
    

    Borramos o comentamos las entradas DNS

    1
    2
    3
    
    #Stop using Google DNS for our OpenVPN
    #push "dhcp-option DNS 8.8.8.8"
    #push "dhcp-option DNS 8.8.4.4"
    

    Y añadimos la direcion de nuestro servidor pi-hole como servidor de DNS

    1
    
    push "dhcp-option DNS 10.8.0.1"
    

    Guardamos los cambios y reiniciamos el servador Openvpn:

    1
    
    sudo systemctl restart openvpn@server.service
    

    Ahora debemos configurar pi-hole para emparejarlo con OpenVPN

    Editamos el fichero /etc/dnsmasq.conf

    1
    
    sudo nano /etc/dnsmasq.conf
    

    Modificamos #listen-address= por listen-address=127.0.0.1, 192.168.xxx.xxx,
    10.8.0.1

    La segunda dirección IP (192.168.xxx.xxx) es la dirección IP local de nuestra
    rpi y la tercera IP (10.8.0.1) es el de la interface tun0.

    Reiniciamos DNSMasq

    1
    
    sudo systemctl restart dnsmasq
    

    Con esto ya tendremos configurado pi-hole para trabajar junto a Openvpn.

    Configurando los clientes

    Si utilizamos Openvpn en nuestros dispositivos no tendremos que hacer nada mas.

    Si deseas utilizar pi-hole sin conectarte a tu VPN necesitas configurar tu red
    para que el servidor DNS sea la dirección IP de nuestro servidor pi-hole.

    Lo ideal es configurar el router para que utilice el servidor pi-hole como
    servidor DNS, en mi caso, mi router no me permite modificar ese valor por lo que
    debo hacerlo manualmente en cada equipo.

    Probando Pi-Hole

    Desde esta pagina web https://pi-hole.net/pages-to-test-ad-blocking-performance/
    podéis probar si realmente funciona el bloqueo de publicidad.

    Para terminar os muestro unas capturas de pantalla del funcionamiento de
    pi-hole:

    Compartir en
    Apoya al autor con

    Hefistion
    ESCRITO POR
    [Carlos M.]