Servidor OpenVPN con Pi-Hole en Raspberry Pi

Navegación segura y sin anuncios desde cualquier lugar

En esta guía os voy a explicar cómo configurar un servidor OpenVPN en la Raspberry Pi y además configurar Pi-Hole para bloquear publicidad.

83

En este post vamos a ver como montar/configurar un servidor OpenVPN (PiVPN) con Pi-Hole. Con este setup, bloquearemos los anuncios a nivel de red local así cómo en cualquier dispositivo en el cual nos conectemos a nuestra VPN.

He hecho este proyecto para dar uso a mi “vieja” Raspberry Pi 2B que tengo parada por casa, espero que os resulte de utilidad.

Para hacerlo, necesitaremos lo siguiente:

  • Una Raspberry Pi B, B+, 2B, 3B, 3B+
  • Una tarjeta SD con Raspbian Stretch Lite
  • Un Router con conexión a internet

Una vez contemos con todo ello, hallamos arrancado la Raspberry y hecho la configuración inicial de Raspbian, podemos comenzar.

Instalación del servidor OpenVPN con Pi-Hole

Esta guía asume que hemos conectado nuestra Raspberry Pi al router mediante un cable Ethernet en la interfaz eth0. Si estás utilizando Wifi, interfaz wlan0, los pasos descritos a continuación pueden variar.

Antes de comenzar con la instalación es recomendable realizar una actualización del sistema:

Puesto que la Raspberry Pi actuará como servidor DNS necesitaremos darle una IP estática. Yo he escogido la IP 192.168.0.254. Vosotros podéis escoger la que queráis, siempre y cuando pertenezca a vuestra red y esté fuera del rango DHCP (IPs dinámicas que reparte vuestro router).

Antes de realizar este paso, os recomiendo que desactivéis los “Nombres de interfaz de red predecibles”,  utilizando el comando  sudo raspi-config  y seleccionando la opción 2.

Para asignar una IP estática, editaremos el archivo /etc/dhcpd.conf con el comando sudo nano /etc/dhcpcd.conf :

A continuación reiniciamos la Raspberry Pi, y continuamos.

1. Instalación de OpenVPN con PiVPN

Vamos entonces a instalar el servidor VPN, en este caso OpenVPN. Para hacerlo nos ayudaremos de PiVPN, un script que facilita la tarea de instalar, configurar y añadir usuarios a OpenVPN.

La instalación de PiVPN es de lo más sencillo, basta con ejecutar un comando y seguir los pasos del instalador:

Para completar la instalación, aceptaremos todos los pasos y opciones por defecto EXCEPTO en la siguiente pantalla, en la que deberemos decidir si queremos usar la IP de nuestra Raspberry o un nombre de dominio para acceder a nuestra VPN.

Openvpn pivpn configuración

PiVPN DNS

 

En caso de que tengáis una IP dinámica necesitaréis un dominio apuntando a vuestra IP que se actualice cuando esta cambie. Yo utilizo Cloduflare con un script para actualizar la IP. También podéis usar algún servicio como No-IP.

Al finalizar la instalación, reiniciaremos la Raspberry.

Por último, para poder acceder a nuestro servidor VPN desde fuera de la red local necesitaremos redirigir el puerto 1194 UDP hacia la IP de la Raspberry Pi. Esto lo haremos en la configuración de nuestro router, no voy a entrar en cómo hacerlo puesto que cada router es distinto.

2. Instalación de Pi-hole

La instalación de Pi-hole es igual de sencilla que la anterior. Simplemente ejecutamos el siguiente comando y seguimos los pasos indicados:

Al igual que antes, seleccionaremos todas las opciones marcadas por defecto, asegurándonos de seleccionar la interfaz de red requerida, en este caso eth0:

Instalación Pi-holeTras instalar Pi-hole estableceremos una contraseña para la interfaz web con el comando:

Podremos acceder a la interfaz en la URL  <ip_raspberry_pi>/admin  en este caso,  192.168.0.254/admin.

Al igual que antes, cuando finalice la instalación, reiniciaremos la Raspberry.

 

Testeando la instalación

En este punto deberíamos verificar que tanto OpenVPN cómo Pi-hole funcionan de manera independiente. Estableciendo el servidor DNS de nuestro router a la IP de nuestra Raspberry Pi debería bloquear los servidores de anuncios (página test). Por su parte deberíamos ser capaces de conectarnos a nuestra VPN y ver nuestros equipos de la red local.

3. Probando OpenVPN

Antes de poder acceder a nuestra VPN necesitaremos crear un archivo de configurtacion .ovpn. Gracias a piVPN es realmente fácil, puesto que solo necesitamos ejecutar el siguiente comando:

Se nos pedirá un nombre de cliente, el que queramos, y una contraseña. Una vez introducidos se generará el archivo .ovpn en el directorio /home/pi/ovpns, el cual copiaremos a nuestro móvil.

Podemos crear tantos clientes cómo queramos, listarlos con  pivpn list  o revocar su acceso con  pivpn revoke

Para probar nuestra VPN utilizaremos el cliente OpenVPN para Android. Lo descargamos en el teléfono, iniciamos la aplicación e importamos el archivo de configuración generado anteriormente.

Con el perfil importado, deberíamos acceder a nuestra VPN desde el móvil sin problema.

4. Probando Pi-hole

Para probar Pi-hole, estableceremos cómo servidor DNS en nuestro router la IP que hemos escogido para nuestra Raspberry Pi. En este ejemplo sería 192.168.0.254

Una vez hecho esto accedemos a la siguiente página de test debería aparecer lo siguiente:

Bloquear anuncios con pi-hole

Configurar Pi-hole para que funcione junto con OpenVPN

Si ya tenemos lo anterior funcionando, al comprobar la VPN veremos que los anuncios no están siendo bloqueados. Esto es porque el servidor DNS definido en la configuración de OpenVPN no es el correcto.

Debemos establecerlo a la dirección de nuestra Raspberry Pi editando el siguiente archivo:  sudo nano /etc/openvpn/server.conf , y eliminando todas las referencias a  dhcp-option DNS  dejando sólo la siguiente:

10.8.0.X es la subred por defecto de OpenVPN. Si la has cambiado durante la instalación, cambia la IP por el valor que hayas usado.

Además de esto, debemos establecer la interfaz tun0 de la VPN cómo una de las interfaces de Pi-hole editando el archivo  sudo nano /etc/pihole/setupVars.conf  y añadir la siguiente línea (resaltada, debajo de eth0):

Por último, crearemos el archivo  /etc/dnsmasq.d/02-ovpn.conf , con el siguiente comando  sudo nano /etc/dnsmasq.d/02-ovpn.conf  y añadiremos lo siguiente:

Reiniciamos la Raspberry Pi y ya tendremos nuestro servidor OpenVPN con Pi-hole funcionando. Por lo que sólo quedaría acceder a la página de prueba indicada anteriormente desde nuestro móvil conectado a la VPN para comprobar que funciona.

Espero que os haya sido de ayuda!

También podría gustarte
Comentarios

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More