Ir al contenido principal

Pi-Hole + Openvpn: Bloquea la publicidad en tus dispositivos


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:
ip a show dev tun0
Muestra una salida parecida a esta:
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:
lp 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 de Pi-Hole

Comenzamos la instalación ejecutando el comando:
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:
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.
sudo nano /etc/openvpn/server.conf
Borramos o comentamos las entradas DNS
#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
push "dhcp-option DNS 10.8.0.1"
Guardamos los cambios y reiniciamos el servador Openvpn:
sudo systemctl restart openvpn@server.service
Ahora debemos configurar pi-hole para emparejarlo con OpenVPN
Editamos el fichero /etc/dnsmasq.conf
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
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:


Comentarios

Entradas populares de este blog

Internet Gratis en Unefon

Internet Gratis en Unefon Que tal a todos les traigo este post para conseguir internet gratis en Mexico y abre el facebook, twitter, whats app, no se si funcione con todos y si con Iusacell tambien aunque supongo que si sale les dejo los pasos... 1.-irse a Configuraciones/redes inalambricas/redes moviles 2.-Marcar la casilla de Datos Habilitados y entrar en APN 3.-Crear uno nuevo esta es la configuracion: Nombre: Hack (esto es opcional) APN: mms.iusacellgsm.mx Proxy: 192.200.1.110 Puerto:9201 Nom de Usuario: mmsiusacellgsm Contraseña: mmsiusacellgsm Servidor: MMSC:  http://mms.iusacell3g.com/ Proxy MMS: 192.200.1.110 Puerto mms: 9201 MCC: 334 MNC: 050 Tipo de autenticación: (Vacio) Tipo de apn: (Vacio)

cambiar dns de infinitum desde telnet

hay veces que los modems de infinitum no nos deja cambiar los dns,. pero por telnet si o cambiando el firmware del modem En este mini tutorial les indicare paso a paso como lograr usar  OpenDNS  o  Google Public DNS c on nuestra conexión   de Infinitum si tenemos el Thomson ST585V6 / ST585V6 de Infinitum. La ventaja de usar estos dos servicios de DNS es que generalmente se actualizan más rápido, mejoran nuestro tiempo de respuesta en algunas situaciones de uso de Internet y son en la mayoría de los casos más  confiables  que los de nuestros proveedores. Para usar los servicios de OpenDNS,  Google  DNS o cualquier otro proveedor de DNS con este modem Thomson hay que hacer lo siguiente: Usar un cliente telnet  (pueden usar   Putty  ). En el cliente telnet ir a la dirección IP del modem usualmente 192.168.1.254 . En la línea de comandos tecleamos:  telnet 192.168.1.254 Para el Thomson  ST585V6  el  usu...

[G]Ofris: alternativa a Deep Freeze para congelar/restaurar cambios en Linux

¿Cómo lo instalamos? Si utilizas Ubuntu, Debian o algún derivado de ambos puedes proceder de la siguiente manera empleando tu terminal: if [ $(uname -m) == "x86_64" ]; then deb=”http://goo.gl/DleLl”; else deb=”http://goo.gl/V94Qs”; fi && wget -q $deb -O ofris.deb && sudo dpkg -i ofris.deb && rm ofris.deb También puedes acceder a la página de descargas . Para ejecutarlo en consola podemos emplear el comando ofris-en . ¿Cómo se gestiona de forma gráfica? Ahora, presentamos Gofris , que permite el control de Ofris directamente desde el panel de indicadores de nuestro escritorio para bloquear y/o desbloquear el usuario actual, todos los usuarios o un usuario específico, así como ver el estado actual. Para probar Gofris en Ubuntu es necesario agregar el PPA e instalarlo usando los siguientes comandos escritos en una terminal: sudo add-apt-repository ppa:tldm217/gofris sudo apt-get update sudo apt-get install gofris-en Una vez insta...