¡Saludos, colegas! En una época en la que cada clic, cada conexión y cada byte de datos pueden rastrearse, analizarse y, qué decir, utilizarse no siempre en nuestro beneficio, la cuestión de la privacidad y la seguridad digital es más importante que nunca. Los servicios VPN comerciales ofrecen una solución rápida, pero ¿podemos confiar siempre en ellos? Políticas de registro, posibles fugas, «vecinos» con direcciones IP de dudosa reputación – todo esto nos hace reflexionar. ¿Y si les digo que pueden tomar el control total de su tráfico de internet, crear su propio túnel seguro y asegurarse de que sus datos son realmente suyos? Hoy, de forma detallada y paso a paso, analizaremos cómo realizar la configuración de su propio servidor VPN en un VPS, utilizando distribuciones populares de Linux, como Ubuntu. Revisaremos todo: desde la elección del servidor vps para vpn y su configuración inicial hasta el despliegue de protocolos como OpenVPN y el ultrarrápido wireguard vpn en vps con ubuntu. Este artículo está dirigido a aquellos que no le temen a la línea de comandos, valoran el control y desean elevar su seguridad digital a un nuevo nivel. ¿Listos para ser los dueños de su tráfico? ¡Manos a la obra!
Índice
- ¿Por qué tener su propio VPN en un VPS? Ventajas indiscutibles
- Elección del servidor VPS adecuado para VPN: Aspectos clave
- Ubicación geográfica del centro de datos (CD)
- Tipo de virtualización: KVM – nuestra elección
- Recursos VPS: RAM, CPU, Disco
- Tráfico y velocidad del puerto
- Sistema operativo: Ubuntu/Debian prioritarios
- Dirección IP y soporte IPv6
- Política del proveedor y protección DDoS
- Consejos para el alquiler de un vps para vpn
- Preparación del VPS: Configuración inicial y seguridad
- Conexión al VPS mediante SSH
- Actualización del sistema
- Creación de un usuario sin privilegios con sudo
- Configuración básica del firewall (UFW)
- Elección del protocolo VPN: OpenVPN vs. WireGuard – ¿cuál es mejor en 2025?
- OpenVPN: Un veterano probado con el tiempo
- WireGuard: Moderno, rápido y sencillo
- Nuestra recomendación
- Método 1: Configuración de su propio servidor VPN en un VPS con OpenVPN (Ubuntu/Linux)
- Instalación de OpenVPN mediante un script (Método recomendado)
- Instalación manual de OpenVPN (Para una comprensión profunda – opcional)
- Configuración de los clientes OpenVPN
- Método 2: Configuración de WireGuard VPN en un VPS con Ubuntu (y otros sistemas Linux)
- Verificación de la compatibilidad del kernel e instalación
- Instalación de WireGuard mediante un script (Método recomendado)
- Configuración manual de WireGuard (Guía detallada)
- Generación de claves y configuración del servidor WireGuard
- Configuración del reenvío IP y del firewall para WireGuard
- Generación de claves y configuración de los clientes WireGuard
- Añadir pares (clientes) al servidor
- Configuración de los clientes WireGuard
- Configuraciones avanzadas y mejores prácticas para su servidor VPN
- Prevención de fugas de DNS
- Implementación de Kill Switch
- Uso de un puerto no estándar
- Soporte IPv6 en VPN
- Configuración de Split Tunneling (Tunnnelización dividida)
- Diagnóstico y solución de problemas comunes con el servidor VPN
- Refuerzo de la seguridad de su servidor VPS para VPN
- Seguridad del propio VPS
- Seguridad del protocolo VPN
- Su política de registro
- Aspectos legales y éticos del uso de su propio VPN
- Cita al respecto
- Conclusiones: Su propio VPN significa libertad y control
¿Por qué tener su propio VPN en un VPS? Ventajas indiscutibles
Antes de pasar a los detalles técnicos de la configuración de su propio servidor VPN en un VPS, definamos claramente por qué vale la pena el esfuerzo. Después de todo, en el mercado hay muchos servicios VPN, pagos y gratuitos. Entonces, ¿cuál es la clave?
- Control total y ausencia de registros (a su elección): Este es, quizás, el argumento principal. Cuando utiliza un VPN comercial, confía sus datos a un tercero. ¿Prometen «sin registros»? Posiblemente. Pero verificar esto es prácticamente imposible. Su propio servidor vps para vpn significa que solo usted decide qué registros se mantienen (o no se mantienen en absoluto). Usted es el dueño del servidor y de los datos.
- Máxima privacidad y seguridad: Todo el tráfico entre su dispositivo y el VPS se cifra con algoritmos robustos. Esto le protege de la escucha por parte del proveedor de internet, en redes Wi-Fi públicas y de muchos tipos de ataques de «hombre en el medio». Usted mismo elige el protocolo y el nivel de cifrado.
- Evitar restricciones geográficas y censura: Al elegir un servidor vps para vpn en el país deseado, obtendrá una dirección IP de ese país. Esto le da acceso a contenido bloqueado en su región y le permite eludir la censura gubernamental.
- Dirección IP dedicada (en la mayoría de los casos): Muchos VPN comerciales proporcionan direcciones IP compartidas, que pueden ser incluidas en listas negras debido a las acciones de otros usuarios. Con su VPS, por lo general, obtiene una dirección IP limpia y dedicada (o varias).
- Eficiencia económica (en algunos casos): Si necesita un VPN para varios dispositivos o para un pequeño equipo, el costo del alquiler de un vps para vpn puede ser menor que varias suscripciones a servicios VPN premium.
- Flexibilidad de configuración: Puede configurar el servidor VPN exactamente según sus necesidades: elegir puertos, protocolos, configurar DNS, rutas específicas, conectar varios dispositivos.
- Experiencia y conocimientos invaluables: El proceso de configuración y administración de su propio servidor VPN es una excelente oportunidad para profundizar sus conocimientos en el ámbito de las tecnologías de red, Linux y ciberseguridad. Para un especialista, esto siempre es una ventaja.
- Uso del VPS para otros fines: Su servidor vps para vpn no tiene por qué ser solo un servidor VPN. Puede alojar un sitio web pequeño, un entorno de prueba, un bot o algo más (dentro de lo razonable y sin interferir con el funcionamiento del VPN).
Por supuesto, también hay una desventaja: la responsabilidad de la configuración, el mantenimiento y la seguridad recae totalmente en usted. Pero para aquellos que valoran las ventajas mencionadas, esto no es un obstáculo, sino un desafío interesante.

Elección del servidor VPS adecuado para VPN: Aspectos clave
La elección del servidor vps para vpn adecuado es la base de su futuro VPN. La corrección de esta elección afectará a la velocidad, la estabilidad y la funcionalidad de su túnel seguro. Veamos en qué debemos fijarnos al alquilar un vps para vpn.
Ubicación geográfica del centro de datos (CD)
Este es uno de los parámetros más críticos. La ubicación de su servidor vps para vpn influye en:
- Velocidad de conexión y ping: Cuanto más cerca esté físicamente el servidor de usted, menor será la latencia (ping) y, por lo general, mayor la velocidad. Si su objetivo principal es simplemente navegar de forma segura desde su ubicación actual, elija un CD en su país o en un país vecino cercano.
- Evitar restricciones geográficas: Si desea acceder a contenido que solo está disponible en un país determinado (por ejemplo, servicios de streaming de EE. UU., Europa), deberá elegir un VPS en ese país.
- Legislación y política de privacidad: Los países con una legislación flexible en materia de privacidad de datos (por ejemplo, algunos países europeos, jurisdicciones offshore) pueden ser preferibles si esto es crítico para usted. Evite los países con una censura estricta o un registro obligatorio.
Ubicaciones populares para el alquiler de un vps para vpn: Países Bajos, Alemania, Suiza, Suecia, EE. UU. (diferentes estados), Canadá, Singapur. La elección depende de sus objetivos.
Tipo de virtualización: KVM – nuestra elección
Ya hemos tratado esto en artículos anteriores, pero para un VPN es especialmente importante. Existen diferentes tecnologías de virtualización, pero para un servidor VPN se recomienda encarecidamente elegir KVM (Kernel-based Virtual Machine).
- KVM: Proporciona una virtualización completa (de hardware). Esto significa que su VPS recibe su propio núcleo aislado del sistema operativo. Esto es fundamental para:
- El funcionamiento garantizado de los módulos del kernel necesarios para VPN, como TUN/TAP (para OpenVPN) o el módulo WireGuard (si no está integrado en el núcleo principal del proveedor).
- La posibilidad de instalar cualquier sistema operativo y configurarlo completamente.
- Una mejor aislamiento de los recursos y estabilidad.
- OpenVZ: Es una virtualización de contenedores. Todos los VPS en OpenVZ utilizan el mismo núcleo de la máquina host. Esto puede causar problemas:
- Falta de los módulos TUN/TAP necesarios o funcionalidad limitada (si el proveedor no se ha encargado).
- Imposibilidad de cargar su propio módulo de kernel (por ejemplo, para WireGuard en sistemas antiguos donde no está incluido en el kernel del host).
- Posible «sobreventa» de recursos por parte del proveedor.
Veredicto: Para un servidor vps para vpn siempre prefiera la virtualización KVM. Xen (HVM) también es una buena alternativa. Evite OpenVZ si tiene opciones.
Recursos VPS: RAM, CPU, Disco
La buena noticia es que los servidores VPN (especialmente WireGuard) no son muy exigentes en cuanto a recursos para atender a varios usuarios.
- RAM (Memoria RAM):
- Para WireGuard y una pequeña cantidad de clientes (1-5) a menudo son suficientes 256-512 MB de RAM.
- Para OpenVPN se recomiendan 512 MB, preferiblemente 1 GB, especialmente si se planean muchas conexiones simultáneas o el uso de cifrados que consumen muchos recursos.
- Tenga en cuenta que el propio sistema operativo (por ejemplo, Ubuntu Server) consume cierta cantidad de RAM (100-200 MB en reposo).
- Recomendación: Comience con 512 MB — 1 GB de RAM para un VPS KVM. Esto debería ser suficiente para la mayoría de las tareas de VPN personales.
- CPU (Procesador):
- 1 vCPU (núcleo virtual) suele ser suficiente. El cifrado VPN, por supuesto, carga el procesador, pero los CPU modernos (incluso los virtuales) lo manejan bastante bien, especialmente con AES-NI (aceleración de hardware AES), que es compatible con la mayoría de los procesadores y protocolos VPN modernos. WireGuard utiliza ChaCha20, que también es muy rápido.
- Si planea cientos de conexiones simultáneas o un tráfico muy intenso, puede necesitar 2 vCPU.
- Disco:
- El servidor VPN en sí ocupa muy poco espacio. Sistema operativo Linux (Ubuntu Server minimal) + software VPN: generalmente hasta 5-10 GB.
- Tipo de disco: SSD (Solid State Drive) o NVMe SSD son preferibles a HDD para la capacidad de respuesta general del sistema, aunque para VPN no es tan crítico como para un servidor web o una base de datos. Sin embargo, la mayoría de los proveedores ofrecen SSD de forma predeterminada.
- Capacidad: 10-20 GB SSD es más que suficiente para un servidor VPN dedicado.
Tráfico y velocidad del puerto
- Velocidad del puerto: Normalmente, los proveedores ofrecen puertos de 100 Mbps, 200 Mbps, 1 Gbps o incluso 10 Gbps. Para un VPN personal, 100 Mbps puede ser suficiente, pero si es posible y el presupuesto lo permite, 1 Gbps proporcionará una mejor experiencia (especialmente si planea descargar archivos grandes a través de VPN). La velocidad real dependerá de muchos factores, incluida la carga de la red del proveedor y la ruta hasta usted.
- Volumen de tráfico: Muchos proveedores ofrecen tráfico «ilimitado» a una velocidad de puerto determinada, pero siempre lea la letra pequeña (puede haber limitaciones de «política de uso justo»). Otros ofrecen un volumen de tráfico limitado al mes (por ejemplo, 1 TB, 2 TB, 5 TB). Evalúe sus necesidades. Para la navegación web normal, correo electrónico y mensajería instantánea, 1 TB al mes es mucho. Si planea ver mucho vídeo en streaming o descargar torrents (¡tenga cuidado con la legislación!), necesitará más.
Sistema operativo: Ubuntu/Debian prioritarios
Para la configuración de su propio servidor VPN en un VPS, recomendamos utilizar las versiones LTS (Long-Term Support) recientes de las distribuciones populares de Linux:
- Ubuntu Server (LTS): Por ejemplo, 20.04 LTS, 22.04 LTS. Excelente comunidad, mucha documentación, paquetes recientes. Ideal para wireguard vpn en vps con ubuntu, ya que WireGuard está incluido en el núcleo en las últimas versiones. Descargar/Seleccionar al solicitar el VPS.
- Debian: Estable, confiable, consume pocos recursos. También una excelente opción. Descargar/Seleccionar al solicitar el VPS.
- CentOS Stream / AlmaLinux / Rocky Linux: También son adecuados, pero la instalación de algunos paquetes o scripts puede ser ligeramente diferente.
Asegúrese de que el proveedor le permita instalar un sistema operativo limpio sin software adicional preinstalado.
Dirección IP y soporte IPv6
- Dirección IPv4 estática dedicada: Es una necesidad absoluta para un servidor VPN.
- Soporte IPv6: Es deseable que su servidor vps para vpn también tenga una dirección IPv6. Esto permitirá configurar el VPN para que funcione también con el tráfico IPv6, lo que se está volviendo cada vez más relevante.
Política del proveedor y protección DDoS
- Términos de uso (ToS): Lea atentamente los ToS del proveedor. Asegúrese de que permiten el lanzamiento de servidores VPN. La mayoría de los proveedores adecuados lo permiten. También tenga en cuenta la política sobre tráfico (DMCA, torrents, etc.).
- Protección DDoS: La protección DDoS básica del proveedor es una ventaja. Puede ayudar a repeler ataques simples dirigidos a su dirección IP. Para un VPN no es tan crítico como para un servidor web público, pero aún así es útil.
Consejos para el alquiler de un vps para vpn
- Lea las reseñas: Antes de alquilar un vps para vpn, busque reseñas recientes sobre el proveedor en plataformas independientes (por ejemplo, LowEndTalk, Trustpilot, foros especializados). Preste atención a la estabilidad del trabajo, la calidad de la asistencia técnica y la correspondencia entre las características declaradas y las reales.
- No se deje llevar por el precio más bajo: Los VPS demasiado baratos pueden significar sobreventa, funcionamiento inestable o mala calidad de la red. Busque un equilibrio entre precio y calidad.
- Período de prueba o devolución de dinero: La existencia de un período de prueba o una garantía de devolución de dinero es una buena señal. Podrá comprobar si el VPS le conviene antes de pagar por un período prolongado.
- Métodos de pago: Asegúrese de que el proveedor acepta los métodos de pago que le resulten convenientes (tarjetas, PayPal, criptomonedas para mayor anonimato).

Preparación del VPS: Configuración inicial y seguridad
Así que, ha elegido y pagado su servidor vps para vpn. El proveedor le ha enviado su dirección IP, nombre de usuario (normalmente root) y contraseña. Antes de instalar el software VPN, debe realizar algunos pasos importantes para la configuración inicial y el refuerzo básico de la seguridad de su servidor. Los ejemplos de comandos se proporcionan para Ubuntu/Debian.
Conexión al VPS mediante SSH
Para conectarse a su VPS, utilice un cliente SSH. En Linux y macOS, esta es la utilidad estándar ssh
. En Windows, puede usar PuTTY, Windows Terminal (con el cliente OpenSSH integrado) o WSL (Windows Subsystem for Linux).
ssh root@SU_DIRECCION_IP_VPS
En la primera conexión, se le pedirá que verifique la huella digital de la clave del servidor (fingerprint). Compárela con la que le haya proporcionado su proveedor (si la ha proporcionado) e ingrese yes
. Luego, ingrese la contraseña proporcionada por su proveedor.
Actualización del sistema
Inmediatamente después de iniciar sesión, lo primero que debe hacer es actualizar las listas de paquetes y todo el software instalado a las últimas versiones. Esto cerrará las vulnerabilidades conocidas.
sudo apt update
sudo apt upgrade -y
Si durante apt upgrade
el sistema le solicita que actualice los archivos de configuración, lea atentamente qué cambia. La mayoría de las veces, puede elegir la opción «instalar la versión del mantenedor del paquete», si aún no ha realizado ningún cambio manualmente.
Creación de un usuario sin privilegios con sudo
Trabajar constantemente como usuario root
es una mala práctica desde el punto de vista de la seguridad. Crearemos un nuevo usuario y le daremos permisos para ejecutar comandos con privilegios elevados a través de sudo
.
adduser su_nombre_de_usuario
El sistema le pedirá que ingrese una contraseña para el nuevo usuario y alguna información adicional (puede dejarla en blanco, presionando Enter). Luego, agregaremos el nuevo usuario al grupo sudo
:
usermod -aG sudo su_nombre_de_usuario
Ahora, salga de la sesión root (comando exit
) e inicie sesión en el servidor con el nuevo usuario:
ssh su_nombre_de_usuario@SU_DIRECCION_IP_VPS
Verifique que sudo
funcione ejecutando, por ejemplo, sudo apt update
. El sistema le pedirá la contraseña de su usuario.
Se recomienda encarecidamente también configurar la autenticación SSH con claves y deshabilitar el inicio de sesión con contraseña, así como el inicio de sesión para root a través de SSH. ¡Esto aumentará significativamente la seguridad de su servidor! Lo hemos tratado detalladamente en otros artículos, pero en resumen:
1. Genere claves SSH en su computadora local: ssh-keygen -t rsa -b 4096
(o ed25519).
2. Copie la clave pública al servidor: ssh-copy-id su_nombre_de_usuario@SU_DIRECCION_IP_VPS
.
3. Verifique que pueda iniciar sesión con la clave sin contraseña.
4. En el servidor, edite el archivo /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
Configure:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
5. Reinicie el servicio SSH: sudo systemctl restart ssh
o sudo systemctl restart sshd
.
Atención: Antes de deshabilitar el inicio de sesión con contraseña, ¡asegúrese de que el inicio de sesión con clave funcione correctamente, de lo contrario podría perder el acceso al servidor!
Configuración básica del firewall (UFW)
El firewall es la primera línea de defensa. UFW (Uncomplicated Firewall) es una interfaz cómoda para iptables, preinstalada en muchas distribuciones de Ubuntu. Lo configuraremos para bloquear todas las conexiones entrantes de forma predeterminada, excepto las que permitamos explícitamente.
sudo ufw default deny incoming
sudo ufw default allow outgoing
Permitiremos conexiones a través de SSH (si ha cambiado el puerto SSH estándar, indíquelo en lugar de 22):
sudo ufw allow ssh # Esto permitirá el puerto 22 de forma predeterminada
# o, si ha cambiado el puerto a, por ejemplo, 2222:
# sudo ufw allow 2222/tcp
Más adelante, agregaremos reglas para permitir el tráfico de nuestro servidor VPN. Activemos UFW:
sudo ufw enable
El sistema le advertirá que esto podría interrumpir las conexiones SSH actuales. Ingrese y
. Verifiquemos el estado:
sudo ufw status verbose
Debe ver que el firewall está activo y solo se permiten las conexiones SSH (y las salientes).
Con esto se completa la preparación básica del servidor vps para vpn. Ahora está listo para instalar el software VPN.
Elección del protocolo VPN: OpenVPN vs. WireGuard – ¿cuál es mejor en 2025?
Los dos protocolos más populares y recomendados para la configuración de su propio servidor VPN en un VPS son OpenVPN y WireGuard. Cada uno tiene sus puntos fuertes y débiles.
OpenVPN: Un veterano probado con el tiempo
- Ventajas:
- Madurez y fiabilidad: OpenVPN existe desde hace mucho tiempo, su código ha sido probado y auditado en numerosas ocasiones. Se considera muy seguro.
- Alta capacidad de configuración: Una gran cantidad de ajustes que permiten adaptarlo finamente a cualquier necesidad (elección de cifrados, autenticación, puertos, protocolos TCP/UDP).
- Soporte para TCP y UDP: Puede funcionar tanto a través de UDP (más rápido, preferible) como a través de TCP (más confiable, puede eludir algunos firewalls, disfrazándose como HTTPS en el puerto 443).
- Amplia compatibilidad con plataformas: Los clientes OpenVPN están disponibles para casi todos los sistemas operativos y dispositivos.
- Ofuscación: Existen métodos para ofuscar el tráfico OpenVPN (por ejemplo, a través de Stunnel u obfsproxy), lo que ayuda a eludir los sistemas DPI (Deep Packet Inspection) avanzados en países con censura estricta.
- Desventajas:
- Rendimiento: Puede ser más lento que WireGuard, especialmente en dispositivos débiles, debido a una mayor sobrecarga y al trabajo en el espacio de usuario (aunque DCO — Data Channel Offload — mejora esto).
- Complejidad de configuración: La configuración manual de OpenVPN «desde cero» (con la generación de todos los certificados y claves) es un proceso bastante laborioso.
- Gran base de código: Teóricamente, cuanto más código, mayor es la probabilidad de que existan vulnerabilidades (aunque OpenVPN está bien auditado).
WireGuard: Moderno, rápido y sencillo
- Ventajas:
- Alto rendimiento: WireGuard es significativamente más rápido que OpenVPN gracias a su trabajo en el espacio del kernel (kernel-space) y al uso de primitivas criptográficas modernas y eficientes (ChaCha20, Poly1305, Curve25519).
- Sencillez de configuración: La configuración de WireGuard es mucho más sencilla e intuitiva que la de OpenVPN. Menos parámetros, más fácil de entender.
- Base de código compacta: Significativamente menos líneas de código (alrededor de 4000), lo que simplifica la auditoría y reduce la superficie de ataque.
- Criptografía moderna: Utiliza algoritmos avanzados, seguros y rápidos de forma predeterminada, sin posibilidad de elegir opciones menos seguras («criptografía opinativa»).
- Integrado en el kernel de Linux: A partir de la versión 5.6 del kernel, WireGuard forma parte del kernel de Linux, lo que simplifica su instalación y proporciona un mejor rendimiento. Muchas distribuciones (incluidas las versiones recientes de Ubuntu) vienen con soporte para WireGuard «listo para usar».
- Roaming y cambio de IP: Maneja mejor el cambio de dirección IP del cliente o el cambio entre redes (Wi-Fi, móvil) sin interrumpir la conexión.
- Desventajas:
- Solo UDP: WireGuard funciona exclusivamente con el protocolo UDP. Esto puede ser un problema en redes donde el tráfico UDP está bloqueado o fuertemente restringido (por ejemplo, algunas redes corporativas o Wi-Fi públicas). OpenVPN con TCP gana aquí.
- Menos «maduro» (relativamente): Aunque WireGuard ya se ha consolidado y ha superado las auditorías, sigue siendo más joven que OpenVPN.
- Asignación dinámica de IP (requiere herramientas adicionales): WireGuard en sí mismo no gestiona la asignación dinámica de direcciones IP a los clientes como lo hace OpenVPN. Las direcciones IP generalmente se escriben estáticamente en la configuración de los pares. Para la automatización, pueden ser necesarios scripts o herramientas de terceros.
- Ofuscación más compleja: Ofuscar el tráfico de WireGuard es más complejo que para OpenVPN, aunque es posible (por ejemplo, a través de udp2raw u otras utilidades de tunelización).
Nuestra recomendación
En 2025, para la mayoría de los usuarios que configuran su primer servidor vps para vpn, recomendamos comenzar con WireGuard. Su simplicidad, velocidad y seguridad moderna lo convierten en una excelente opción, especialmente si su servidor vps para vpn funciona con una versión reciente de Ubuntu, donde el soporte de WireGuard ya está en el kernel.
OpenVPN sigue siendo una excelente opción si:
- Necesita que funcione a través de TCP (por ejemplo, para eludir firewalls que bloquean UDP).
- Necesita configuraciones de cifrado o autenticación muy específicas.
- Necesita métodos avanzados de ofuscación del tráfico.
- Simplemente confía más en una solución probada con el tiempo.
Nada le impide instalar ambos protocolos en un mismo servidor vps para vpn y utilizarlos para diferentes propósitos o como opción de respaldo.

Método 1: Configuración de su propio servidor VPN en un VPS con OpenVPN (Ubuntu/Linux)
A pesar de nuestra recomendación a favor de WireGuard para principiantes, OpenVPN sigue siendo muy popular y confiable. Veamos cómo instalarlo.
Instalación de OpenVPN con un script (Método recomendado)
La configuración manual de OpenVPN, que incluye la creación de una autoridad de certificación (CA), la generación de certificados y claves de servidor y cliente, y la escritura de archivos de configuración, puede ser compleja y propensa a errores. Afortunadamente, existen excelentes scripts automatizados que hacen el 99% del trabajo por usted. Uno de los más populares y probados es el script de Nyr.
Paso 1: Descarga y ejecución del script
Conéctese a su servidor vps para vpn mediante SSH con un usuario con derechos sudo. Luego, ejecute los siguientes comandos:
wget https://git.io/vpn -O openvpn-install.sh
chmod +x openvpn-install.sh
sudo ./openvpn-install.sh
Paso 2: Respuestas a las preguntas del script
El script le hará algunas preguntas para configurar el servidor OpenVPN:
- Dirección IP: El script suele detectar automáticamente la dirección IP pública de su VPS. Si tiene varias IP, seleccione la que necesite. Presione Enter si la opción propuesta es correcta.
- Soporte IPv6: Si su VPS tiene IPv6 y desea utilizarlo, seleccione ‘y’.
- Puerto: Puerto para OpenVPN. Por defecto
1194
. Puede dejarlo o elegir otro (por ejemplo,443
, si desea disfrazarse como HTTPS, pero asegúrese de que el puerto 443 no esté siendo utilizado por otro servicio, como un servidor web, y seleccione TCP más abajo). - Protocolo:
UDP
oTCP
. UDP suele ser más rápido, TCP es más confiable y mejor para eludir firewalls. Para la mayoría de los casos, UDP es la mejor opción. - Servidores DNS: Qué servidores DNS utilizarán los clientes al conectarse a la VPN. Puede elegir entre los propuestos (Google, Cloudflare, Quad9, etc.) o indicar los suyos. Cloudflare (
1.1.1.1
) o Google (8.8.8.8
) son buenas opciones. - ¿Habilitar compresión? La compresión puede reducir ligeramente el volumen de datos transmitidos, pero también puede aumentar la carga de la CPU y ser vulnerable a ataques de tipo VORACLE. Las recomendaciones actuales a menudo aconsejan desactivar la compresión (
n
). - ¿Personalizar la configuración de cifrado? Para la mayoría de los usuarios, la configuración de cifrado estándar que ofrece el script será lo suficientemente sólida y segura. Si no está seguro, seleccione
n
.
Después de responder a todas las preguntas, el script instalará OpenVPN, generará los certificados y claves necesarios, configurará el servidor y las reglas del firewall (UFW o firewalld).
Paso 3: Creación del archivo de configuración del cliente (.ovpn)
Una vez finalizada la instalación, el script le propondrá crear el primer perfil de cliente:
- Nombre del cliente: Introduzca un nombre para el cliente (por ejemplo,
myphone
,laptop
). - ¿Proteger el archivo de configuración con una contraseña? Puede proteger el archivo
.ovpn
con una contraseña. Si seleccionay
, deberá introducir esta contraseña cada vez que se conecte el cliente. Por comodidad, puede seleccionarn
, pero entonces debe guardar el archivo.ovpn
de forma segura.
El script creará un archivo .ovpn
(por ejemplo, /home/su_nombre_de_usuario/myphone.ovpn
). Este archivo debe copiarse de forma segura desde su servidor vps para vpn al dispositivo que se conectará a la VPN (por ejemplo, utilizando scp
, FileZilla o simplemente mostrando el contenido del archivo con el comando cat /home/su_nombre_de_usuario/myphone.ovpn
y copiando el texto a un archivo en la máquina local).
Paso 4: Gestión de usuarios (añadir/eliminar)
Para añadir un nuevo usuario o eliminar uno existente, simplemente ejecute el script de nuevo:
sudo ./openvpn-install.sh
El script detectará que OpenVPN ya está instalado y mostrará un menú: 1. Añadir un nuevo cliente 2. Revocar un cliente existente 3. Eliminar OpenVPN 4. Salir
Seleccione la opción que necesite.

Instalación manual de OpenVPN (Para una comprensión profunda – opcional)
La instalación manual de OpenVPN es un proceso complejo que supera el alcance de este artículo si se describe con todos los detalles para alcanzar la cantidad de caracteres necesaria. Sin embargo, para los especialistas en ciberseguridad que deseen comprender todos los matices, los pasos principales son los siguientes:
- Instalación de OpenVPN y Easy-RSA:
sudo apt install openvpn easy-rsa
- Configuración de Easy-RSA: Copiar el directorio Easy-RSA (
make-cadir ~/openvpn-ca
), editar el archivovars
con los datos de su CA. - Creación de la Autoridad de Certificación (CA): Inicializar PKI (
./easyrsa init-pki
), crear CA (./easyrsa build-ca nopass
). - Generación del certificado y clave del servidor: Crear una solicitud de certificado del servidor (
./easyrsa gen-req server nopass
), firmar la solicitud (./easyrsa sign-req server server
). - Generación de parámetros de Diffie-Hellman:
./easyrsa gen-dh
. - Generación de la clave HMAC para protección contra DoS (tls-auth/tls-crypt):
openvpn --genkey --secret ta.key
. - Generación de certificados y claves para clientes: De forma análoga al servidor, pero para cada cliente (
./easyrsa gen-req client1 nopass
,./easyrsa sign-req client client1
). - Copiar los archivos necesarios al directorio OpenVPN (
/etc/openvpn
):ca.crt
,server.crt
,server.key
,dh.pem
,ta.key
. - Creación del archivo de configuración del servidor (
/etc/openvpn/server.conf
): Indicar el puerto, el protocolo, el dispositivo (tun), las rutas a los certificados y claves, los parámetros de la red VPN (server 10.8.0.0 255.255.255.0
), opciones push para los clientes (rutas, DNS), cifrados (cipher AES-256-GCM
,auth SHA256
), keepalive, usuario/grupo, etc. Ejemplo de líneas clave:port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh.pem tls-auth ta.key 0 # Server server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 1.1.1.1" push "dhcp-option DNS 1.0.0.1" keepalive 10 120 cipher AES-256-GCM auth SHA256 user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3
- Configuración del reenvío IP:
sudo sysctl -w net.ipv4.ip_forward=1
Descomentar la líneanet.ipv4.ip_forward=1
en/etc/sysctl.conf
para que se guarde después del reinicio. - Configuración del cortafuegos (NAT): Este es un paso crítico para que los clientes VPN puedan acceder a internet a través del servidor.
Ejemplo para UFW (además de permitir el puerto OpenVPN):
En el archivo
/etc/ufw/before.rules
antes de la línea*filter
añadir:
Reemplace*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 10.8.0.0/24 -o SU_INTERFAZ_DE_RED_VPS -j MASQUERADE COMMIT
SU_INTERFAZ_DE_RED_VPS
con el nombre de su interfaz de red principal (por ejemplo,eth0
,ens3
– puede averiguarlo con el comandoip addr
). En el archivo/etc/default/ufw
establecerDEFAULT_FORWARD_POLICY="ACCEPT"
. Reiniciar UFW:sudo ufw disable && sudo ufw enable
. Permitir el puerto OpenVPN:sudo ufw allow 1194/udp
(o el puerto y protocolo que haya elegido). - Iniciando y habilitando el inicio automático de OpenVPN:
sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
- Creación de archivos .ovpn para clientes: Reunir en un solo archivo
ca.crt
,client.crt
,client.key
,ta.key
(si se utiliza) y añadir directivas de configuración (client
,dev tun
,proto udp
,remote SU_IP_VPS 1194
,resolv-retry infinite
,nobind
,persist-key
,persist-tun
,remote-cert-tls server
,cipher AES-256-GCM
,auth SHA256
,verb 3
, etc.). El contenido de las claves y certificados se inserta directamente en el archivo entre las etiquetas<ca>...</ca>
,<cert>...</cert>
,<key>...</key>
,<tls-auth>...</tls-auth>
.
Como puede ver, la configuración manual requiere un esfuerzo significativo y atención a los detalles. El uso de scripts simplifica enormemente la vida y reduce el riesgo de errores.
Configuración de clientes OpenVPN
Una vez que tenga el archivo .ovpn
, debe importarlo a la aplicación cliente OpenVPN en su dispositivo.
- Windows: OpenVPN Community Client o OpenVPN Connect. Después de la instalación, importe el archivo
.ovpn
. - macOS: Tunnelblick (cliente gratuito popular) o OpenVPN Connect oficial.
- Linux: Puede utilizar NetworkManager con el plugin
network-manager-openvpn-gnome
(para Gnome) onetwork-manager-openvpn
, o el cliente de línea de comandosopenvpn
(sudo openvpn --config /ruta/al/archivo.ovpn
). - Android: OpenVPN Connect de Google Play.
- iOS: OpenVPN Connect de App Store.
Después de importar el perfil, simplemente haga clic en «Conectar». Si todo está configurado correctamente, se conectará a su servidor vps para vpn. Verifique su dirección IP (debe ser la dirección IP de su VPS) y la disponibilidad de internet.
Método 2: Configuración de WireGuard VPN en VPS con Ubuntu (y otros Linux)
WireGuard es nuestro favorito para una configuración rápida y sencilla de su propio servidor VPN en VPS. Es especialmente adecuado para WireGuard VPN en VPS con Ubuntu, ya que las últimas versiones de Ubuntu tienen soporte integrado.
Comprobación de la compatibilidad del kernel e instalación
A partir del kernel de Linux 5.6, WireGuard forma parte del mismo. Compruebe la versión de su kernel:
uname -r
Si la versión es 5.6 o superior, excelente. Si es inferior (por ejemplo, en Ubuntu 18.04 LTS antiguos, cuyo kernel puede ser 4.x o 5.4 HWE), es posible que deba instalar WireGuard a través de PPA o como un módulo DKMS. Sin embargo, la mayoría de los proveedores de VPS modernos ofrecerán Ubuntu 20.04 LTS, 22.04 LTS o superior, donde no debería haber problemas con el kernel.
En cualquier caso, instale las utilidades WireGuard:
sudo apt update
sudo apt install wireguard resolvconf # resolvconf para administrar DNS a través de wg-quick (opcional, pero útil)
Instalación de WireGuard mediante un script (Método recomendado)
Al igual que con OpenVPN, existen scripts convenientes para la instalación automática de WireGuard. Uno de los más populares es el script de angristan. Simplifica enormemente el proceso de configuración de WireGuard VPN en VPS con Ubuntu.
Paso 1: Descarga y ejecución del script
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh
sudo ./wireguard-install.sh
Paso 2: Respuestas a las preguntas del script
El script también hará varias preguntas:
- Dirección IPv4 o IPv6 pública para el servidor: Normalmente se determina automáticamente.
- Interfaz de red pública: Normalmente
eth0
oens3
, se determina automáticamente. - Nombre de la interfaz WireGuard: Por defecto
wg0
. Se puede dejar así. - IPv4 de WireGuard del servidor: Dirección IP del servidor en la subred VPN (por ejemplo,
10.66.66.1/24
). - IPv6 de WireGuard del servidor (opcional): Si hay IPv6 en el VPS.
- Puerto para WireGuard: Puerto UDP para WireGuard. Por defecto
51820
. Se puede cambiar. - Servidor DNS para los clientes: Qué servidores DNS utilizarán los clientes.
- ¿Habilitar actualizaciones sin supervisión? Actualizaciones automáticas de seguridad para el sistema. Se recomienda (
y
).
Después de la instalación, el script sugerirá crear el primer cliente:
- Nombre del cliente: Nombre del cliente.
- IPv4 de WireGuard del cliente: Dirección IP del cliente en la subred VPN (por ejemplo,
10.66.66.2/32
). - IPv6 de WireGuard del cliente (opcional).
El script generará un archivo de configuración .conf
para el cliente (por ejemplo, /home/su_nombre_de_usuario/wg0-client-myphone.conf
) y un código QR para una configuración sencilla en dispositivos móviles.
Paso 3: Administración de usuarios
Para agregar/eliminar clientes, simplemente ejecute el script de nuevo: sudo ./wireguard-install.sh
. Ofrecerá un menú de administración.

Configuración manual de WireGuard (Guía detallada)
Si desea un control y una comprensión completos, aquí le mostramos cómo configurar WireGuard VPN en VPS con Ubuntu manualmente. Esto es un poco más complejo que el script, pero ofrece más flexibilidad y conocimiento.
Generación de claves y configuración del servidor WireGuard
1. Generación de un par de claves para el servidor:
wg genkey | sudo tee /etc/wireguard/server_private.key
sudo chmod 600 /etc/wireguard/server_private.key
sudo cat /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
Guarde la clave privada (server_private.key
) en un lugar seguro, será necesaria para la configuración. La clave pública (server_public.key
) será utilizada por los clientes.
2. Creación del archivo de configuración del servidor:
Cree el archivo /etc/wireguard/wg0.conf
(wg0
es el nombre de la interfaz, puede ser cualquiera, pero wg0
es el estándar):
sudo nano /etc/wireguard/wg0.conf
Inserte el siguiente contenido, reemplazando los valores con los suyos:
[Interface]
Address = 10.10.0.1/24 # Dirección IP del servidor en la red VPN y máscara de subred
# Address = fd42:42:42::1/64 # Dirección IPV6 opcional del servidor en la red VPN
SaveConfig = true # Permite guardar los cambios realizados a través de 'wg set'
ListenPort = 51820 # Puerto UDP que escuchará WireGuard
PrivateKey = SU_CLAVE_PRIVADA_DEL_SERVIDOR # Inserte el contenido de /etc/wireguard/server_private.key
# Estas líneas son responsables de NAT, para que los clientes puedan acceder a internet a través de VPN.
# Reemplace 'eth0' con su interfaz de red principal (averigüe: ip -br a)
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Para IPv6, si se utiliza
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PostDown = ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE # Para IPv6, si se utiliza
# A continuación, habrá secciones [Peer] para cada cliente
Establezca los permisos correctos para el archivo de configuración:
sudo chmod 600 /etc/wireguard/wg0.conf
Configuración del reenvío IP y del cortafuegos para WireGuard
1. Habilitación del reenvío IP:
Para que el servidor pueda enrutar el tráfico de los clientes, debe habilitar el reenvío IP:
sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1 # Si se utiliza IPv6
Para que los cambios se guarden después de reiniciar, edite /etc/sysctl.conf
:
sudo nano /etc/sysctl.conf
Descomente (o agregue) las líneas:
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1 # Si se utiliza IPv6
Aplique los cambios: sudo sysctl -p
.
2. Configuración del cortafuegos (UFW):
Permita las conexiones entrantes en el puerto WireGuard (por ejemplo, 51820/udp):
sudo ufw allow 51820/udp
Las reglas NAT (MASQUERADE) ya las hemos agregado en las secciones PostUp
/PostDown
del archivo wg0.conf
, se aplicarán automáticamente al iniciar/detener la interfaz wg0
. Sin embargo, para UFW también es necesario permitir el reenvío. Edite /etc/default/ufw
:
sudo nano /etc/default/ufw
Cambie DEFAULT_FORWARD_POLICY="DROP"
a DEFAULT_FORWARD_POLICY="ACCEPT"
.
Reinicie UFW: sudo ufw disable && sudo ufw enable
.
Generación de claves y configuración de clientes WireGuard
Para cada cliente, debe generar su propio par de claves y crear un archivo de configuración.
1. Generación de claves del cliente (se realiza en el servidor o en el cliente):
wg genkey | tee client1_private.key
cat client1_private.key | wg pubkey | tee client1_public.key
Guarde la clave privada del cliente (client1_private.key
), irá a la configuración del cliente. La clave pública (client1_public.key
) deberá agregarse al servidor.
2. Creación del archivo de configuración del cliente (por ejemplo, client1.conf
):
[Interface]
PrivateKey = SU_CLAVE_PRIVADA_DEL_CLIENTE
Address = 10.10.0.2/32 # Dirección IP única del cliente en la red VPN
# Address = fd42:42:42::2/128 # Dirección IPv6 opcional del cliente
DNS = 1.1.1.1, 8.8.8.8 # Servidores DNS para el cliente
[Peer]
PublicKey = SU_CLAVE_PUBLICA_DEL_SERVIDOR # De /etc/wireguard/server_public.key
Endpoint = SU_IP_VPS:51820
AllowedIPs = 0.0.0.0/0, ::/0 # Enrutar todo el tráfico a través de VPN
PersistentKeepalive = 25 # Opcional, para mantener la conexión detrás de NAT
Este archivo client1.conf
debe transferirse al dispositivo cliente.
Agregar pares (clientes) al servidor
Ahora, en el servidor, debe «decirle» a WireGuard sobre el cliente. Agregue una sección [Peer]
al archivo /etc/wireguard/wg0.conf
para cada cliente:
# Esto se agrega a /etc/wireguard/wg0.conf DESPUÉS de la sección [Interface]
[Peer]
PublicKey = CLAVE_PUBLICA_CLIENTE1 # De client1_public.key
AllowedIPs = 10.10.0.2/32 # Dirección IP desde la que se permite a este cliente
# AllowedIPs = 10.10.0.2/32, fd42:42:42::2/128 # Si se utiliza IPv6
Repita para cada cliente, cambiando la clave pública y AllowedIPs
.
3. Iniciar el servidor WireGuard:
sudo systemctl enable wg-quick@wg0 # Habilitar inicio automático
sudo systemctl start wg-quick@wg0 # Iniciar ahora
Compruebe el estado:
sudo systemctl status wg-quick@wg0
sudo wg show # Debe mostrar la interfaz wg0, su clave pública, puerto e información sobre los pares (después de que se conecten)
Si ha realizado cambios en wg0.conf
después del inicio, reinicie el servicio: sudo systemctl restart wg-quick@wg0
.
Configuración de clientes WireGuard
Los clientes WireGuard están disponibles para todas las plataformas principales. Descargue el cliente oficial de wireguard.com/install/.
- Windows, macOS, Linux: Instale el cliente e importe el archivo
.conf
. - Android, iOS: Instale la aplicación de Google Play o App Store. Puede importar la configuración desde un archivo
.conf
o escaneando un código QR (si lo ha generado, por ejemplo, con el comandoqrencode -t ansiutf8 < client1.conf
en el servidor, si tiene instaladoqrencode
).
Después de importar y activar el perfil, verifique la dirección IP y el acceso a internet.
Configuraciones avanzadas y mejores prácticas para su servidor VPN
Después de la configuración básica de su propio servidor VPN en VPS, puede considerar varias opciones avanzadas para mejorar su funcionamiento y seguridad.
Prevención de fugas de DNS
Una fuga de DNS ocurre cuando las consultas DNS de su dispositivo pasan por alto el túnel VPN a los servidores DNS de su proveedor. Esto puede revelar su actividad. Asegúrese de que los clientes VPN utilicen los servidores DNS especificados en la configuración de la VPN.
- OpenVPN: Utilice la directiva
push "dhcp-option DNS IP_DIRECCION_DNS"
enserver.conf
. Por ejemplo,push "dhcp-option DNS 1.1.1.1"
. Para los clientes de Windows, puede ser necesariopush "block-outside-dns"
. - WireGuard: Especifique
DNS = IP_DIRECCION_DNS
en la sección[Interface]
del archivo.conf
del cliente.
Puede verificar las fugas de DNS en sitios como dnsleaktest.com.
Implementación de Kill Switch
Kill Switch – es una función que bloquea todo el tráfico de internet si la conexión VPN se interrumpe repentinamente. Esto previene la fuga de su IP real.
- A nivel de cliente: Algunos clientes VPN (por ejemplo, el cliente oficial de OpenVPN para Windows) tienen una función Kill Switch integrada.
- A nivel del cortafuegos del cliente: Se puede configurar el cortafuegos en el dispositivo cliente para que solo permita el tráfico a través de la interfaz VPN o a la dirección IP del servidor VPN. Esta es una configuración más compleja.
Uso de un puerto no estándar
Los puertos VPN estándar (1194 para OpenVPN, 51820 para WireGuard) pueden bloquearse en algunas redes. El uso de un puerto no estándar (por ejemplo, 443/tcp para OpenVPN, para camuflarse como HTTPS, o cualquier otro puerto UDP libre para WireGuard) puede ayudar a sortear estos bloqueos. No olvide actualizar las reglas del cortafuegos en el servidor.
Soporte IPv6 en VPN
Si su servidor VPS para VPN y su red local admiten IPv6, configure la VPN para el enrutamiento del tráfico IPv6. Esto proporcionará acceso a los recursos IPv6 y evitará fugas IPv6 (cuando IPv4 va a través de la VPN, e IPv6 directamente).
- OpenVPN: Use
server-ipv6 IPV6_SUBRED
enserver.conf
ypush "route-ipv6 2000::/3"
(o una ruta más específica). - WireGuard: Añada direcciones IPv6 en la sección
Address
en el servidor y los clientes, yAllowedIPs = ..., ::/0
en el cliente. Asegúrese de que las reglasPostUp
/PostDown
paraip6tables
sean correctas.
Configuración de Split Tunneling (Tunelización dividida)
Por defecto, todo el tráfico del cliente va a través de la VPN. Split tunneling permite configurar que solo un tráfico determinado (por ejemplo, a sitios web o direcciones IP específicos) vaya a través de la VPN, mientras que el resto lo hace directamente. Esto puede ser útil para acceder a recursos locales de la red o para ahorrar tráfico VPN.
- OpenVPN: Puede gestionar las rutas mediante
push "route DIRECCION_IP MASCARA"
y no usarredirect-gateway
. - WireGuard: En el archivo de cliente
.conf
, en la sección[Peer]
, el parámetroAllowedIPs
define qué tráfico se enrutará a través de la VPN. En lugar de0.0.0.0/0, ::/0
, especifique subredes concretas.
Diagnóstico y resolución de problemas comunes con el servidor VPN
Incluso con una cuidadosa configuración de su propio servidor VPN en un VPS, pueden surgir problemas. Aquí hay algunos de los más comunes y cómo resolverlos:
- El cliente no puede conectarse al servidor VPN:
- Compruebe el estado del servicio VPN en el VPS:
Para OpenVPN:
sudo systemctl status openvpn@server
(o el nombre de su servicio). Para WireGuard:sudo systemctl status wg-quick@wg0
ysudo wg show
. Reinicie si no está activo:sudo systemctl restart ...
. - Compruebe el cortafuegos en el VPS: Asegúrese de que el puerto VPN (por ejemplo, 1194/udp para OpenVPN, 51820/udp para WireGuard) esté abierto para conexiones entrantes.
sudo ufw status verbose
. - Compruebe los registros del servidor VPN:
Para OpenVPN:
sudo journalctl -u openvpn@server
o el archivo de registro especificado enserver.conf
(status openvpn-status.log
,log /var/log/openvpn.log
). Para WireGuard:sudo dmesg | grep wireguard
osudo journalctl -u wg-quick@wg0
. - Compruebe la configuración del cliente: ¿La dirección IP/dominio del servidor, el puerto, las claves/certificados son correctos?
- Compruebe la conexión de red al VPS: Intente simplemente hacer ping a la dirección IP del VPS (
ping SU_IP_VPS
) o comprobar la disponibilidad del puerto contelnet SU_IP_VPS PUERTO_VPN
(para TCP) onc -uzv SU_IP_VPS PUERTO_VPN
(para UDP). - El cliente está conectado, pero no hay acceso a internet:
- Problema con DNS: Intente hacer ping a las direcciones IP (
ping 8.8.8.8
). Si las IP responden, pero los dominios no, hay un problema con DNS. Compruebe la configuración de DNS en la configuración del servidor y el cliente VPN. - Problema con el reenvío IP en el servidor: Asegúrese de que
net.ipv4.ip_forward=1
(e IPv6, si es necesario) esté configurado y activo. - Problema con las reglas NAT/MASQUERADE en el servidor: Compruebe las reglas del cortafuegos (iptables/nftables, UFW) para la traducción de direcciones. Asegúrese de que se especifique la interfaz de red saliente correcta.
- Problema con el enrutamiento en el servidor o el cliente: Compruebe las tablas de enrutamiento (
ip route show
en Linux). - Velocidad de conexión VPN baja:
- Carga de recursos del VPS: Compruebe la carga de la CPU, RAM y red en el VPS (
top
,htop
,iftop
,nload
). Es posible que el VPS no pueda procesarlo. - Ubicación del VPS: Una ubicación del servidor demasiado alejada de usted producirá altas latencias y reducción de la velocidad.
- Protocolo OpenVPN: Si usa OpenVPN a través de TCP, pruebe con UDP; normalmente es más rápido. También compruebe los cifrados utilizados; algunos pueden ser más exigentes con los recursos.
- Problemas del proveedor de VPS: Es posible que los canales del propio proveedor estén sobrecargados.
- Limitaciones de su proveedor de internet: Su ISP puede limitar la velocidad para ciertos tipos de tráfico o puertos.
Un análisis cuidadoso de los registros y una comprobación paso a paso de la configuración suelen ayudar a identificar y solucionar la mayoría de los problemas.
Refuerzo de la seguridad de su servidor VPS para VPN
Su servidor VPS para VPN es el punto de entrada a internet, y debe estar lo más protegido posible. La seguridad consta de varios niveles.
Seguridad del propio VPS
- Actualizaciones regulares: Actualice siempre de forma oportuna el sistema operativo y todo el software instalado (
sudo apt update && sudo apt upgrade -y
). Configure las actualizaciones automáticas de seguridad (por ejemplo, a través deunattended-upgrades
). - Acceso SSH seguro: Use claves SSH, desactive el inicio de sesión con contraseña y el inicio de sesión para root. Considere cambiar el puerto SSH estándar y usar Fail2Ban para protegerse contra ataques de fuerza bruta a SSH y otros servicios.
- Minimización de servicios: Desactive y elimine todos los servicios y software innecesarios del VPS. Cuanto menos se ejecute, menor será la superficie de ataque.
- Cortafuegos configurado: UFW o iptables/nftables deben configurarse para permitir solo los puertos necesarios (SSH, VPN).
- Monitorización y registro: Compruebe regularmente los registros del sistema (
/var/log/auth.log
,/var/log/syslog
) en busca de actividad sospechosa. Considere la instalación de un IDS/IPS de host (por ejemplo, OSSEC, Wazuh) o herramientas de auditoría de seguridad (Lynis).
Seguridad del protocolo VPN
- OpenVPN:
- Use cifrados robustos (por ejemplo, AES-256-GCM) y algoritmos de hashing (SHA256 o superior).
- Use claves de longitud suficiente (RSA 2048 bits mínimo, preferiblemente 4096; parámetros DH de la misma longitud).
- Use
tls-crypt
otls-auth
para proteger el canal de control. - Actualice los certificados regularmente, especialmente si sospecha de una posible vulneración. Configure una lista de revocación de certificados (CRL).
- WireGuard:
- Utiliza criptografía moderna por defecto, hay menos margen para errores de configuración.
- Guarde de forma segura las claves privadas del servidor y los clientes. No las transmita a través de canales inseguros.
Su política de registro
Una de las principales razones para crear su propia VPN es el control de los registros. Por defecto, OpenVPN y WireGuard pueden llevar algunos registros operativos (conexiones, errores), pero no registran el tráfico en sí o los sitios web visitados.
- OpenVPN: El nivel de detalle de los registros se configura mediante la directiva
verb
enserver.conf
(verb 3
es el nivel estándar). El archivostatus
(por ejemplo,openvpn-status.log
) muestra las conexiones actuales. Puede configurar el registro ensyslog
o en un archivo separado (directivalog
olog-append
). - WireGuard: WireGuard en sí mismo es muy «silencioso» y no lleva registros activos de tráfico. La información sobre los últimos apretones de manos (handshakes) y el tráfico transferido para cada par se ve a través de
sudo wg show
, pero no se guarda permanentemente de forma predeterminada.
Decida qué nivel de registro necesita. Para una máxima privacidad, procure un mínimo de registros relacionados con la actividad de los usuarios. Los registros operativos del servidor para el diagnóstico de problemas pueden ser útiles.
Aspectos legales y éticos del uso de una VPN propia
Poseer y gestionar su propio servidor VPS para VPN le impone una determinada responsabilidad:
- Legislación de su país y del país donde se encuentra el VPS: El uso de VPN es legal en la mayoría de los países para proteger la privacidad. Sin embargo, en algunos países existen restricciones o prohibiciones. Infórmese sobre las leyes relativas a las VPN, tanto en su país como en el país donde se encuentra su VPS.
- Términos de uso del proveedor de VPS (ToS/AUP): La mayoría de los proveedores permiten VPN, pero pueden prohibir ciertos tipos de actividad a través de su red (por ejemplo, spam, DDoS, distribución de malware, infracción de derechos de autor). La infracción de los ToS puede provocar el bloqueo de su VPS.
- Responsabilidad por el tráfico: Usted es responsable de todo el tráfico que sale de la dirección IP de su VPS. Si se realiza una actividad ilegal a través de su VPN, las solicitudes de las fuerzas del orden (si las hubiera) llegarán a su proveedor, y éste, a su vez, puede reenviarlas a usted o tomar medidas de acuerdo con su política.
- Uso ético: Use su VPN de forma responsable. No para ataques, spam u otras actividades maliciosas. Recuerde que, aunque la VPN proporciona privacidad, no lo hace completamente anónimo o invulnerable.
Una VPN propia es una herramienta potente, y como cualquier herramienta, puede utilizarse tanto para bien como para mal. Úsela con inteligencia y responsabilidad.
Cita al respecto
Arguing that you don’t care about the right to privacy because you have nothing to hide is no different than saying you don’t care about free speech because you have nothing to say.
Edward Snowden
Esta cita subraya perfectamente la importancia de la privacidad en el mundo digital, y un servidor VPN propio es uno de los pasos para garantizarla.
Conclusiones: Su propia VPN es libertad y control
Colegas, hemos recorrido juntos un camino detallado de configuración de un servidor VPN propio en un VPS. Desde la elección del servidor VPS adecuado para VPN y su preparación inicial hasta la implementación de los protocolos populares OpenVPN y WireGuard VPN en un VPS con Ubuntu. También hemos tratado cuestiones de seguridad, configuraciones avanzadas y resolución de problemas. Espero que este artículo les haya proporcionado todos los conocimientos y la confianza necesarios para crear su propio túnel de internet protegido.
Lo que hemos aprendido:
- Ventajas de una VPN propia: Control total, ausencia de registros (según su preferencia), mayor seguridad y privacidad, evasión de restricciones, IP dedicada.
- Criterios para elegir un VPS para VPN: Ubicación, virtualización KVM, recursos suficientes (RAM, CPU, SSD), buen ancho de banda, sistema operativo adecuado (Ubuntu/Debian), política del proveedor. El proceso de alquiler de un VPS para VPN se ha vuelto más claro.
- Configuración inicial del VPS: Actualización del sistema, creación de un usuario sudo, configuración básica del cortafuegos UFW.
- Elección del protocolo VPN: Hemos comparado OpenVPN y WireGuard, destacando WireGuard como el preferido para la mayoría de las tareas modernas debido a su velocidad y simplicidad.
- Instalación paso a paso de OpenVPN y WireGuard: Hemos examinado tanto los métodos automatizados con scripts (Nyr para OpenVPN, Angristan para WireGuard), como los pasos principales de configuración manual para una comprensión profunda.
- Configuración de clientes VPN para diferentes plataformas.
- Configuraciones avanzadas: Prevención de fugas DNS, Kill Switch, puertos no estándar, IPv6, tunelización dividida.
- Refuerzo de la seguridad del servidor VPN: Protección del propio VPS y del protocolo VPN, gestión de registros.
- Aspectos legales y éticos: Uso responsable de la VPN.
La creación y el uso de un servidor VPS para VPN propio no solo es una habilidad práctica que mejora su seguridad digital, sino también un paso hacia una mayor libertad y control sobre sus datos en internet. Esto le permite no depender de las políticas de los servicios comerciales y tener la seguridad de cómo se procesa su tráfico. Sí, requiere cierto esfuerzo y conocimientos técnicos, pero el resultado lo vale. ¡Experimente, aprenda y manténgase seguro en la red! ¡Mucha suerte configurando su servidor VPN ideal!