tutoriales.com

Crea tu Propio Servidor VPN WireGuard con Raspberry Pi: Accede de Forma Segura a tu Red Doméstica

Este tutorial te guiará paso a paso para transformar tu Raspberry Pi en un servidor VPN WireGuard, permitiéndote acceder a tu red doméstica de forma segura desde cualquier lugar del mundo. Exploraremos la instalación, configuración y conexión de clientes, asegurando una comunicación encriptada y privada.

Intermedio20 min de lectura5 views
Reportar error

🚀 Introducción: ¿Por qué un Servidor VPN en tu Raspberry Pi?

En la era digital actual, la seguridad y la privacidad son primordiales. Un servidor VPN (Red Privada Virtual) te permite crear un túnel encriptado a través de internet, protegiendo tus datos y simulando que estás conectado a tu red local. Esto es ideal para acceder a recursos internos de tu hogar (como tu NAS, cámaras de seguridad o dispositivos inteligentes) de forma segura mientras estás fuera, o simplemente para navegar con mayor privacidad.

Tradicionalmente, configurar un servidor VPN podía ser complejo, pero con WireGuard y una Raspberry Pi, el proceso es sorprendentemente sencillo y eficiente. WireGuard es una VPN de última generación que destaca por su simplicidad, velocidad y robustez.

🎯 Objetivos de este Tutorial

Al finalizar este tutorial, serás capaz de:

  • Entender los conceptos básicos de una VPN y WireGuard.
  • Preparar tu Raspberry Pi para ser un servidor WireGuard.
  • Instalar y configurar el servidor WireGuard en tu Raspberry Pi.
  • Configurar clientes WireGuard en diferentes dispositivos (PC, móvil).
  • Acceder de forma segura a tu red doméstica desde cualquier ubicación.
📌 Nota: Este tutorial asume que tienes una Raspberry Pi con Raspberry Pi OS (anteriormente Raspbian) ya instalado y configurado con acceso a internet.

🛠️ Materiales Necesarios

Antes de empezar, asegúrate de tener lo siguiente:

  • Una Raspberry Pi 3 o superior: Recomendamos al menos una Raspberry Pi 3B+ o una Raspberry Pi 4 para un rendimiento óptimo.
  • Tarjeta microSD: Con Raspberry Pi OS instalado (8GB mínimo, 16GB o más recomendado).
  • Fuente de alimentación: Para tu Raspberry Pi.
  • Cable Ethernet: (Recomendado) Para una conexión de red estable, aunque Wi-Fi también es posible.
  • Acceso SSH a tu Raspberry Pi: Asegúrate de poder conectarte a ella de forma remota.
  • Acceso a la configuración de tu router: Necesitarás abrir un puerto (Port Forwarding).
  • Conexión a internet estable.
💡 Consejo: Si aún no has configurado SSH, puedes habilitarlo fácilmente desde la interfaz gráfica de Raspberry Pi OS o usando `sudo raspi-config` en la terminal, en la opción `3 Interfacing Options` -> `P2 SSH`.

⚙️ Preparación de la Raspberry Pi

El primer paso es asegurarnos de que nuestra Raspberry Pi esté lista para la instalación.

1. Actualizar el Sistema

Siempre es una buena práctica actualizar el sistema operativo antes de instalar nuevo software para asegurar que todos los paquetes estén al día y se eviten conflictos.

Conéctate a tu Raspberry Pi vía SSH y ejecuta los siguientes comandos:

sudo apt update
sudo apt upgrade -y
sudo reboot

El último comando reiniciará tu Raspberry Pi para aplicar cualquier cambio en el kernel o en los servicios del sistema.

2. Asignar una IP Estática (Opcional pero Recomendado)

Para un servidor, es ideal que tenga una dirección IP local estática. Esto evita problemas si la IP cambia y necesitas reconfigurar el reenvío de puertos. Puedes configurarlo en tu router (reservando la IP por MAC) o directamente en la Raspberry Pi.

Para configurar la IP estática en la Raspberry Pi (ejemplo con dhcpcd.conf):

Edita el archivo de configuración de dhcpcd:

sudo nano /etc/dhcpcd.conf

Desplázate hasta el final del archivo y añade una configuración similar a esta, adaptándola a tu red local:

interface eth0
static ip_address=192.168.1.200/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8
  • interface eth0: Si usas Wi-Fi, sería wlan0.
  • static ip_address: La IP que quieres asignar a tu Raspberry Pi (asegúrate de que esté fuera del rango DHCP de tu router).
  • static routers: La dirección IP de tu router/puerta de enlace.
  • static domain_name_servers: Servidor DNS (puedes usar el de tu router, Google 8.8.8.8 o Cloudflare 1.1.1.1).

Guarda el archivo (Ctrl + X, luego Y y Enter) y reinicia el servicio o la Raspberry Pi:

sudo systemctl restart dhcpcd
# O simplemente:
sudo reboot

Verifica la nueva IP con ip addr show eth0 (o wlan0).


🔧 Instalación del Servidor WireGuard

Ahora vamos a instalar WireGuard en nuestra Raspberry Pi. Utilizaremos el script pivpn para simplificar la instalación y configuración. PiVPN es una excelente herramienta que automatiza gran parte del proceso.

1. Descargar e Instalar PiVPN

Ejecuta el siguiente comando en tu terminal SSH:

curl -L https://install.pivpn.io | bash

El script de instalación interactivo se iniciará. Sigue las instrucciones en pantalla:

Paso 1: Mensaje de bienvenida de PiVPN. Pulsa Enter.
Paso 2: Selecciona el adaptador de red (normalmente `eth0` para cable o `wlan0` para Wi-Fi). Pulsa Enter.
Paso 3: Elige WireGuard como tu VPN (selecciona `WireGuard`). Pulsa Enter.
Paso 4: Confirma la instalación de los paquetes necesarios. Pulsa Enter.
Paso 5: Selecciona si quieres usar una IP estática local (si la configuraste antes, elige `Yes`, sino, el script la establecerá para ti). Pulsa Enter.
Paso 6: Elige tu DNS preferido (por ejemplo, Google, Cloudflare, o el de tu router). Pulsa Enter.
Paso 7: Decide si usar la IP pública actual de tu router o un nombre de dominio (DDNS). Si tienes una IP pública dinámica y no usas DDNS, selecciona `DNS Entry` y usa servicios como `No-IP` o `DuckDNS`. Si tienes IP estática, `Public IP` es suficiente. Pulsa Enter.
Paso 8: Configura el puerto de WireGuard (por defecto `51820`). Puedes cambiarlo si lo deseas, pero asegúrate de recordarlo. Pulsa Enter.
Paso 9: Confirma los ajustes (persistence). Pulsa Enter.
Paso 10: Permite la configuración automática de IPv6 (si tu red lo soporta y lo necesitas). Pulsa Enter.
Paso 11: Te preguntará si quieres actualizar el sistema automáticamente. Recomendado: Sí. Pulsa Enter.
Paso 12: Finaliza la instalación. Se te pedirá reiniciar la Raspberry Pi. Confirma para reiniciar.

Una vez que la Raspberry Pi se reinicie, tu servidor WireGuard estará instalado y ejecutándose.

2. Comprobar el Estado de WireGuard

Después del reinicio, conéctate de nuevo a tu Raspberry Pi y verifica que WireGuard esté activo:

pivpn status

Deberías ver algo como ::: WireGuard is running! y la configuración de tu interfaz wg0.


🌐 Configuración del Router (Port Forwarding)

Para que los clientes externos puedan conectarse a tu servidor WireGuard, necesitas abrir un puerto en tu router y redirigirlo a la dirección IP local de tu Raspberry Pi.

  1. Accede a la interfaz de tu router: Abre tu navegador web y escribe la dirección IP de tu router (comúnmente 192.168.1.1 o 192.168.0.1). Necesitarás tus credenciales de administrador.
  2. Busca la sección de Port Forwarding (Redirección de Puertos): A menudo se encuentra en WAN, Firewall, NAT o Seguridad.
  3. Crea una nueva regla de reenvío de puerto:
    • Puerto Externo/WAN/Público: El puerto que configuraste en PiVPN (por defecto 51820).
    • Puerto Interno/LAN/Privado: El mismo puerto (51820).
    • Dirección IP Interna: La dirección IP estática de tu Raspberry Pi (ej. 192.168.1.200).
    • Protocolo: UDP (WireGuard utiliza UDP exclusivamente).
    • Descripción/Nombre: WireGuard VPN (o similar).
⚠️ Advertencia: La interfaz de cada router es diferente. Consulta el manual de tu router si tienes dificultades para encontrar la configuración de Port Forwarding.
RED LOCAL (LAN) Internet Paquete UDP Puerto 51820 Router Port Forwarding UDP 51820 Hacia IP Raspberry Pi 192.168.1.200 Puerto 51820 UDP i Regla NAT activada para WireGuard

📱 Configuración de Clientes WireGuard

Ahora que el servidor está funcionando y accesible desde internet, necesitamos generar perfiles para los clientes que se conectarán.

1. Generar Perfiles de Cliente

Usa el comando pivpn add en tu Raspberry Pi para crear un nuevo cliente:

pivpn add
  • Se te pedirá que nombres al cliente (ej. mi_movil, laptop_trabajo).
  • El script generará un archivo .conf con la configuración del cliente. Este archivo es crucial.

Para ver el contenido del archivo de configuración del cliente, puedes usar:

pivpn -qr <nombre_del_cliente>

Esto mostrará el código QR y el contenido del archivo de configuración.

2. Transferir el Perfil al Cliente

Hay varias maneras de llevar el archivo .conf (o el QR) a tu dispositivo cliente:

  • Código QR (Recomendado para móviles): Si tienes un móvil, simplemente escanea el código QR que se muestra en la terminal de tu Raspberry Pi usando la aplicación WireGuard.
  • Email: Puedes enviarte el archivo .conf por correo electrónico.
  • SCP/SFTP: Si estás en un PC, puedes transferir el archivo usando scp o un cliente SFTP (como FileZilla):
scp pi@<IP_Raspberry_Pi>:/home/pi/ovpns/<nombre_del_cliente>.conf ~/Desktop/
(Reemplaza `<IP_Raspberry_Pi>` y `<nombre_del_cliente>` por los tuyos).
¿Dónde se guardan los perfiles de cliente? Los archivos de configuración de los clientes se guardan en `/home/pi/configs/` por defecto. Puedes listarlos con `ls /home/pi/configs/`.

3. Instalar Cliente WireGuard

Descarga la aplicación oficial de WireGuard para tu dispositivo:

  • Windows, macOS, Linux: Visita wireguard.com/install
  • Android, iOS: Busca WireGuard en la App Store o Google Play Store.

4. Importar y Conectar el Perfil

Una vez instalada la aplicación WireGuard en tu cliente:

  • Móvil: Abre la aplicación, pulsa el botón + y selecciona Escanear código QR o Importar desde archivo.
  • PC: Abre la aplicación, pulsa + y selecciona Importar túnel(es) desde archivo y elige el archivo .conf que transferiste.

Una vez importado, activa el túnel. Si todo está correcto, deberías ver que el estado cambia a Activo o Conectado.

🔥 Importante: Para probar la conexión VPN, DEBES estar fuera de tu red local. Intenta conectarte usando los datos móviles de tu teléfono o desde otra red Wi-Fi. Conectarse desde la misma red local no validará el Port Forwarding ni la conexión externa.

✅ Verificación y Pruebas

Una vez conectado el cliente, es crucial verificar que la VPN funciona correctamente.

1. Verificar la IP Pública

Antes de conectarte a la VPN, comprueba tu IP pública (buscando what is my ip en Google). Luego, conéctate a la VPN y vuelve a comprobar tu IP pública. Si la VPN está funcionando correctamente, tu IP pública debería ser la misma que la de tu router de casa.

2. Acceder a Recursos Locales

Intenta acceder a un dispositivo en tu red local usando su dirección IP interna. Por ejemplo, si tienes un servidor NAS en 192.168.1.100, intenta acceder a él desde tu cliente VPN. Debería funcionar como si estuvieras en casa.

3. Verificar el Estado del Servidor

En tu Raspberry Pi, puedes ver los clientes conectados y el tráfico que generan con:

pivpn clients

O directamente con el comando de WireGuard:

sudo wg show

Esto te mostrará los peers (clientes) conectados, sus claves públicas y la última vez que se conectaron.

💡 Consejo: Si experimentas problemas de conexión, verifica:
  • Que el Port Forwarding esté configurado correctamente en tu router.
  • Que tu Raspberry Pi tenga la IP estática correcta.
  • Que no haya firewalls bloqueando el puerto UDP (ej. `ufw` en la Raspberry Pi, aunque `pivpn` debería configurarlo).
  • Que tu proveedor de internet no bloquee el puerto UDP 51820 (poco común, pero posible).

🔄 Gestión de Clientes y Mantenimiento

PiVPN facilita la gestión de tus clientes WireGuard.

Añadir o Revocar Clientes

  • Añadir un nuevo cliente:
pivpn add
Esto generará un nuevo archivo `.conf` para otro dispositivo.
  • Listar clientes existentes:
pivpn clients
  • Revocar un cliente: Si pierdes un dispositivo o ya no quieres que un cliente tenga acceso:
pivpn revoke
Se te pedirá que selecciones qué cliente revocar. Al revocar un cliente, su clave pública se elimina del servidor, impidiéndole futuras conexiones.

Actualizar PiVPN y WireGuard

Para mantener tu sistema seguro y con las últimas funcionalidades, actualiza periódicamente:

pivpn -up

Este comando actualizará PiVPN y WireGuard a sus últimas versiones.

📌 Nota: Los clientes *existentes* no necesitan ser regenerados o actualizados si actualizas el servidor, a menos que cambies el puerto o la IP externa.

🛡️ Consideraciones de Seguridad

  • Contraseñas Fuertes: Asegura tu Raspberry Pi con contraseñas robustas y, si es posible, usa autenticación por clave SSH.
  • Mantén el Software Actualizado: Actualiza regularmente tu Raspberry Pi OS y PiVPN/WireGuard.
  • Revoca Clientes No Utilizados: Si un dispositivo cliente se pierde o ya no es usado, revoca su certificado inmediatamente.
  • Firewall: Aunque PiVPN configura reglas básicas, podrías querer configurar un firewall más robusto como ufw si tienes necesidades avanzadas.

Importante: Nunca compartas tus archivos de configuración .conf con personas no autorizadas, ya que contienen las claves necesarias para acceder a tu VPN.

💡 Posibles Mejoras y Próximos Pasos

  • DNS Dinámico (DDNS): Si tu proveedor de internet te asigna una dirección IP pública que cambia con frecuencia, configura un servicio de DNS Dinámico (como No-IP, DuckDNS, FreeDNS). Esto te permitirá usar un nombre de dominio (ej. mi-vpn.duckdns.org) en lugar de una dirección IP cambiante en la configuración de tus clientes WireGuard.
  • Bloqueo de Anuncios a Nivel de Red: Considera integrar Pi-hole en tu Raspberry Pi. De esta manera, todo el tráfico que pase por tu VPN también será filtrado por Pi-hole, bloqueando anuncios y rastreadores en todos tus dispositivos clientes.
  • Monitoreo: Puedes usar herramientas como grafana y prometheus para monitorear el rendimiento de tu VPN y la Raspberry Pi.
Cliente VPN Smartphone / Laptop Internet Resolución DDNS Router Port Forwarding (UDP) Raspberry Pi WireGuard Pi-hole

Conclusión

¡Felicidades! 🎉 Has transformado tu Raspberry Pi en un potente y seguro servidor VPN WireGuard. Ahora puedes disfrutar de una conectividad segura a tu red doméstica desde cualquier lugar, protegiendo tu privacidad y accediendo a tus recursos como si estuvieras en casa.

WireGuard ofrece una combinación excelente de seguridad, rendimiento y facilidad de uso, haciendo que esta solución sea ideal para usuarios domésticos y pequeños entusiastas. Experimenta con la configuración, añade más clientes y explora las posibilidades que te ofrece tu nueva VPN.

Tutoriales relacionados

Comentarios (0)

Aún no hay comentarios. ¡Sé el primero!