tutoriales.com

Crea Tu Propia VPN con OpenVPN en Raspberry Pi: Acceso Seguro a Tu Red Doméstica

Este tutorial te guiará paso a paso para transformar tu Raspberry Pi en un servidor VPN personal utilizando OpenVPN. Podrás acceder de forma segura a los recursos de tu red doméstica desde cualquier ubicación remota, protegiendo tu privacidad y cifrando tu tráfico de internet.

Intermedio20 min de lectura6 views
Reportar error

La creación de un servidor VPN personal en tu Raspberry Pi es una excelente manera de recuperar el control sobre tu privacidad y seguridad en línea. Imagina poder acceder a los archivos de tu NAS, controlar tus dispositivos inteligentes o simplemente navegar de forma segura utilizando tu conexión a internet doméstica, ¡todo esto desde cualquier parte del mundo!

En este tutorial, te llevaremos de la mano para configurar OpenVPN en tu Raspberry Pi. Este proceso te permitirá tener un servidor VPN robusto y confiable, sin depender de servicios de terceros que pueden comprometer tu privacidad.

💡 ¿Por qué una VPN Personal en Raspberry Pi?

Existen muchas razones para considerar esta configuración, pero las principales son:

  • Privacidad: Tu tráfico de internet se enruta a través de tu hogar, ocultando tu dirección IP real y protegiéndote de la vigilancia en redes públicas.
  • Seguridad: Cifra tu conexión, protegiendo tus datos de posibles interceptaciones, especialmente útil en Wi-Fi públicos no seguros.
  • Acceso Remoto: Accede a todos los recursos de tu red local (servidores, cámaras IP, discos duros, etc.) como si estuvieras en casa.
  • Evitar Restricciones Geográficas: Accede a contenido de tu región cuando estés de viaje, o simula estar en casa para servicios específicos.
  • Costo Cero (casi): Utilizas hardware que ya posees (la Raspberry Pi) y software de código abierto, eliminando suscripciones mensuales.

🛠️ Requisitos Previos

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

  • Raspberry Pi: Cualquier modelo (Pi 3, 4 o superior es ideal para rendimiento). Asegúrate de que esté configurada con Raspberry Pi OS (anteriormente Raspbian). Aquí puedes encontrar la herramienta Raspberry Pi Imager si necesitas instalar el sistema operativo.
  • Tarjeta microSD: De al menos 8GB (recomendado 16GB o más).
  • Fuente de alimentación: La adecuada para tu modelo de Raspberry Pi.
  • Conexión a Internet: Tu Raspberry Pi debe tener acceso a internet, preferiblemente por cable Ethernet para mayor estabilidad.
  • Acceso SSH: Es la forma más cómoda de interactuar con tu Pi. Si no lo tienes habilitado, puedes hacerlo desde sudo raspi-config > Interface Options > SSH.
  • Dirección IP Estática para la Pi: Es fundamental que tu Raspberry Pi tenga una IP local fija para que el reenvío de puertos funcione correctamente. Puedes configurarla en tu router o directamente en la Pi. Por ejemplo, 192.168.1.100.
  • Acceso a la configuración de tu Router: Necesitarás abrir puertos y posiblemente configurar el Dynamic DNS (DDNS).
📌 Nota: Este tutorial asume que tienes conocimientos básicos de línea de comandos en Linux y cómo acceder a tu Raspberry Pi a través de SSH.

🚀 Paso 1: Preparación Inicial de la Raspberry Pi

Primero, actualicemos y mejoremos nuestro sistema para asegurarnos de que todo esté al día.

1.1 Conectarse a la Raspberry Pi

Usa SSH para conectarte a tu Raspberry Pi. Reemplaza raspberrypi.local con la IP de tu Pi si sabes cuál es.

ssh pi@raspberrypi.local

Introduce tu contraseña (por defecto raspberry).

1.2 Actualizar el Sistema

Es crucial tener el sistema actualizado. Esto asegura que tengamos las últimas características de seguridad y correcciones de errores.

sudo apt update && sudo apt upgrade -y

Este proceso puede tardar un tiempo, dependiendo de la última vez que actualizaste tu Pi.


🌐 Paso 2: Configuración de Red

Para que tu servidor VPN sea accesible desde fuera de tu red, necesitas un nombre de dominio (o una IP pública estática, menos común para usuarios domésticos) y configurar tu router.

2.1 Configuración de IP Estática (si no la tienes)

Aunque es preferible configurar la IP estática desde el router, puedes hacerlo en la Pi. Edita el archivo dhcpcd.conf:

sudo nano /etc/dhcpcd.conf

Desplázate hasta el final del archivo y añade algo similar a esto (ajusta los valores a tu red):

interface eth0
static ip_address=192.168.1.100/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 dirección IP que quieres para tu Pi.
  • static routers: La dirección IP de tu router/puerta de enlace.
  • static domain_name_servers: Servidor DNS. Puedes usar tu router y/o los de Google (8.8.8.8).

Guarda y sal (Ctrl + X, Y, Enter). Reinicia la red o la Pi:

sudo systemctl restart dhcpcd

2.2 Configuración de Dynamic DNS (DDNS)

Si tu ISP te asigna una dirección IP pública dinámica (lo más común), necesitarás un servicio DDNS. Esto asocia un nombre de dominio fijo (ej. midominio.ddns.net) con tu IP pública cambiante. Hay muchos proveedores gratuitos como DuckDNS, No-IP, Dynu, etc.

  1. Regístrate en un servicio DDNS y crea un hostname.
  2. Configura tu router para actualizar automáticamente tu dirección IP pública a este hostname. La mayoría de los routers tienen una sección de DDNS en su interfaz de administración. Consulta el manual de tu router.
🔥 Importante: Sin DDNS, si tu IP pública cambia, tu VPN dejará de funcionar hasta que actualices manualmente la IP o uses una IP estática (que suele ser un servicio de pago con los ISPs).

2.3 Reenvío de Puertos (Port Forwarding)

Necesitas reenviar el puerto UDP 1194 (el puerto estándar de OpenVPN) de tu router a la dirección IP estática de tu Raspberry Pi.

  1. Accede a la interfaz de administración de tu router. (Normalmente 192.168.1.1, 192.168.0.1, etc.).
  2. Busca la sección de Port Forwarding, NAT o Firewall.
  3. Crea una nueva regla con la siguiente información:
    • Protocolo: UDP
    • Puerto Externo/WAN: 1194
    • Puerto Interno/LAN: 1194
    • Dirección IP Interna: La IP estática de tu Raspberry Pi (ej. 192.168.1.100)
    • Habilitar:
Cliente Remoto Internet Router Port Forwarding 1194 UDP Raspberry Pi Servidor OpenVPN Tráfico Encriptado

🛡️ Paso 3: Instalación y Configuración de OpenVPN

Vamos a usar un script muy útil de pivpn.io que automatiza la mayor parte de la configuración de OpenVPN, incluyendo la generación de certificados y claves.

3.1 Instalar PiVPN

Ejecuta el siguiente comando en tu Raspberry Pi. Este script descargará e instalará OpenVPN y todas sus dependencias.

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

El script te guiará a través de una serie de preguntas. Aquí te dejamos una guía:

  • Bienvenida: Pulsa Enter.
  • IP Estática: Confirma la IP estática que tienes configurada para tu Pi. Si no la has configurado, el script intentará hacerlo.
  • Usuario Local: Selecciona el usuario que se usará para almacenar los certificados (normalmente pi).
  • OpenVPN vs WireGuard: Elige OpenVPN.
  • Puerto OpenVPN: Por defecto es 1194. Puedes cambiarlo si lo deseas, pero asegúrate de que el puerto reenviado en tu router coincida.
  • Protocolo: UDP es el recomendado para OpenVPN.
  • DNS Primario: Puedes elegir uno de los preestablecidos (Google, Cloudflare) o usar uno personalizado (por ejemplo, el de tu router si tienes Pi-hole o similar).
  • Hostname/IP Pública: Selecciona DNS Entry y luego introduce el hostname DDNS que configuraste (ej. midominio.ddns.net). Si tienes una IP estática, puedes elegir IP Address.
  • Activación de Unattended Upgrades: Se recomienda activarlo (Yes) para que tu sistema se mantenga actualizado automáticamente con parches de seguridad.
  • Reinicio: El script te pedirá reiniciar. Hazlo con sudo reboot.

Después del reinicio, vuelve a conectarte por SSH.

💡 Consejo: Toma nota de todas las configuraciones que elijas durante la instalación de PiVPN. Serán útiles para futuras referencias.

3.2 Generar Clientes VPN

Una vez que PiVPN está instalado, necesitas generar perfiles de cliente para cada dispositivo que quieras conectar a tu VPN (teléfono, laptop, etc.).

pivpn add

El script te preguntará:

  • Nombre de usuario para el cliente: Elige un nombre descriptivo, por ejemplo, movil_juan o laptop_trabajo.
  • Contraseña para el cliente: Opcional, pero altamente recomendada para mayor seguridad.

Esto generará un archivo .ovpn en el directorio /home/pi/ovpns (o /home/TU_USUARIO/ovpns si usaste otro). Este archivo contiene toda la configuración y las claves necesarias para que un cliente se conecte a tu VPN.

3.3 Recuperar el Archivo de Configuración del Cliente (.ovpn)

Necesitas transferir el archivo .ovpn desde tu Raspberry Pi a los dispositivos clientes. Puedes usar scp (Secure Copy Protocol) o un cliente SFTP como FileZilla.

Usando scp desde tu ordenador local:

scp pi@raspberrypi.local:/home/pi/ovpns/movil_juan.ovpn .

Reemplaza raspberrypi.local y movil_juan.ovpn con los valores correctos. El . al final significa que el archivo se copiará al directorio actual de tu ordenador.


📱 Paso 4: Configurar el Cliente VPN

Ahora que tienes el archivo .ovpn, es hora de configurarlo en tus dispositivos.

4.1 En Escritorio (Windows, macOS, Linux)

  1. Descarga OpenVPN Connect: Visita https://openvpn.net/client-connect-vpn-for-windows-mac-linux/ y descarga el cliente oficial de OpenVPN.
  2. Importar Perfil: Abre OpenVPN Connect. Busca la opción para Importar archivo de perfil o Importar archivo (.ovpn). Selecciona el archivo que copiaste de tu Raspberry Pi.
  3. Conectar: Introduce la contraseña del cliente si la configuraste y conéctate. Deberías ver un estado de conexión exitoso.

4.2 En Dispositivos Móviles (Android, iOS)

  1. Instalar OpenVPN Connect App: Descarga la aplicación oficial de OpenVPN Connect desde Google Play Store o Apple App Store.
  2. Transferir el archivo .ovpn: Envía el archivo .ovpn a tu dispositivo móvil (por email, Airdrop, USB, etc.).
  3. Importar Perfil: Abre la aplicación OpenVPN Connect. La mayoría de las veces, al abrir el archivo .ovpn directamente desde tu gestor de archivos, la aplicación OpenVPN Connect se abrirá y te pedirá importarlo. Si no, usa la opción Importar perfil dentro de la app.
  4. Conectar: Introduce la contraseña si la configuraste y conéctate.
⚠️ Advertencia: Nunca compartas tus archivos `.ovpn` con terceros. Contienen claves que permiten el acceso a tu red.

✅ Paso 5: Verificación y Pruebas

Una vez conectado, es crucial verificar que tu VPN esté funcionando correctamente.

5.1 Verificar Dirección IP Pública

  1. Sin VPN: Visita un sitio como whatismyip.com o ipinfo.io en tu navegador y anota tu dirección IP pública.
  2. Con VPN: Conéctate a tu VPN y visita de nuevo whatismyip.com. La dirección IP que deberías ver ahora es la dirección IP pública de tu hogar (la misma que tu router). Si ves tu IP original, la VPN no está funcionando.

5.2 Acceder a Recursos Locales

Intenta acceder a un dispositivo en tu red doméstica usando su dirección IP local. Por ejemplo, si tienes un servidor NAS en 192.168.1.50, intenta acceder a él a través del navegador o un cliente de red. Deberías poder hacerlo como si estuvieras en casa.

5.3 Comprobar Rutas de Tráfico

En tu Raspberry Pi, puedes verificar el estado de los clientes conectados con:

pivpn clients

Esto te mostrará los clientes activos y su dirección IP interna en la red VPN.


⚙️ Gestión Adicional de PiVPN

PiVPN ofrece comandos útiles para la gestión de tu servidor:

  • pivpn help: Muestra todos los comandos disponibles.
  • pivpn add: Añade un nuevo cliente VPN.
  • pivpn list: Lista todos los clientes VPN (activos e inactivos).
  • pivpn revoke: Revoca el acceso a un cliente VPN (útil si un dispositivo se pierde o es robado).
  • pivpn -qr: Genera un código QR para el archivo .ovpn del cliente, facilitando la importación en dispositivos móviles (la app OpenVPN Connect puede escanearlo).
Ejemplo de revocación de cliente Si quieres revocar el acceso a un cliente llamado `movil_juan`:
pivpn revoke

Te pedirá seleccionar el cliente de una lista y confirmar la revocación. Esto generará una nueva CRL (Certificate Revocation List) y la aplicará al servidor. El cliente ya no podrá conectarse.


🔒 Consideraciones de Seguridad

  • Contraseñas Fuertes: Usa contraseñas robustas para tu usuario pi, para los clientes VPN y para el acceso a tu router.
  • Mantén Actualizado: Asegúrate de que tu Raspberry Pi OS y OpenVPN se mantengan actualizados. sudo apt update && sudo apt upgrade -y regularmente es una buena práctica.
  • Deshabilitar Root SSH: Si no es estrictamente necesario, deshabilita el acceso SSH para el usuario root.
  • Firewall: Aunque OpenVPN se encarga de gran parte de la seguridad, puedes considerar configurar un firewall adicional (como ufw) en tu Raspberry Pi para endurecer aún más su seguridad. PiVPN ya configura algunas reglas básicas.
  • Gestión de Clientes: Revoca los perfiles VPN de dispositivos que ya no uses o que puedan haber sido comprometidos.
¡Configuración Completada!

❓ Preguntas Frecuentes (FAQ)

¿Puedo usar la Raspberry Pi para otras tareas mientras es servidor VPN? Sí, absolutamente. La Raspberry Pi es una máquina versátil. Puedes ejecutar otros servicios (como Pi-hole, un servidor web, un NAS ligero) en ella mientras OpenVPN está en funcionamiento. El impacto en el rendimiento dependerá de la carga de trabajo y del modelo de tu Pi.
¿Qué velocidad de internet necesito para una buena experiencia VPN? La velocidad de tu VPN estará limitada por la menor de tus velocidades de subida en casa o de bajada en el cliente remoto. Una buena velocidad de subida en tu ISP es crucial para un buen rendimiento. Para una experiencia fluida, se recomienda al menos 10-20 Mbps de subida en casa.
¿Es seguro usar una VPN personal? Sí, es muy seguro, especialmente si sigues las buenas prácticas de seguridad (contraseñas fuertes, actualizaciones). Eres el único que controla el servidor, lo que elimina la preocupación por terceros. Sin embargo, si tu red doméstica está comprometida, tu VPN también lo estará.
¿Qué pasa si mi ISP cambia mi IP pública? Si utilizaste un servicio DDNS y lo configuraste correctamente en tu router, tu hostname DDNS se actualizará automáticamente con tu nueva IP pública, y tu VPN seguirá funcionando sin problemas.

Conclusión

¡Felicidades! Has configurado con éxito tu propio servidor VPN con OpenVPN en una Raspberry Pi. Ahora tienes una forma segura y privada de acceder a tu red doméstica desde cualquier lugar del mundo. Has tomado un paso importante para mejorar tu privacidad y seguridad en línea, sin depender de proveedores de VPN comerciales. Disfruta de la libertad y la tranquilidad que te ofrece tu nueva VPN personal.

Tutoriales relacionados

Comentarios (0)

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