OpenVPN es una de las soluciones más populares para crear redes privadas virtuales (VPN), permitiendo conexiones seguras y cifradas entre dispositivos. En esta guía, aprenderás a instalar y configurar OpenVPN en un servidor Linux y a conectar clientes de manera segura.
Requisitos previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Un servidor Linux (Ubuntu, Debian o CentOS) con acceso root o permisos
sudo
. - Un cliente Linux o Windows para conectarse a la VPN.
- Un firewall configurado para permitir el tráfico OpenVPN (puerto UDP 1194 por defecto).
Paso 1: Instalar OpenVPN y Easy-RSA
En Ubuntu/Debian:
Ejecuta los siguientes comandos para instalar OpenVPN y las herramientas de generación de certificados:
sudo apt update && sudo apt upgrade -y
sudo apt install openvpn easy-rsa -y
En CentOS/RHEL:
sudo yum install epel-release -y
sudo yum install openvpn easy-rsa -y
Paso 2: Configurar el servidor OpenVPN
Copiar los archivos de configuración
sudo cp -r /usr/share/easy-rsa /etc/openvpn/
cd /etc/openvpn/easy-rsa
sudo cp vars.example vars
Edita el archivo vars
con un editor de texto como nano:
sudo nano vars
Modifica los valores de las siguientes variables según tus necesidades:
set_var EASYRSA_REQ_COUNTRY "PAÍS"
set_var EASYRSA_REQ_PROVINCE "PROVINCIA"
set_var EASYRSA_REQ_CITY "CIUDAD"
set_var EASYRSA_REQ_ORG "ORGANIZACIÓN"
set_var EASYRSA_REQ_EMAIL "correo@ejemplo.com"
set_var EASYRSA_REQ_OU "UNIDAD"
Guarda y cierra el archivo.
Generar claves y certificados
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca
sudo ./easyrsa gen-req servidor-ovpn nopass
sudo ./easyrsa sign-req server servidor-ovpn
sudo ./easyrsa gen-dh
openvpn --genkey --secret ta.key
Copia los archivos generados a la carpeta de configuración de OpenVPN:
sudo cp pki/ca.crt pki/issued/servidor-ovpn.crt pki/private/servidor-ovpn.key pki/dh.pem ta.key /etc/openvpn/
Paso 3: Configurar OpenVPN Server
Crea un nuevo archivo de configuración:
sudo nano /etc/openvpn/server.conf
Añade la siguiente configuración:
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/servidor-ovpn.crt
key /etc/openvpn/servidor-ovpn.key
dh /etc/openvpn/dh.pem
tls-auth /etc/openvpn/ta.key 0
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 3
Habilita y ejecuta OpenVPN:
sudo systemctl enable openvpn@server
sudo systemctl start openvpn@server
Paso 4: Configurar los clientes OpenVPN
En el servidor, genera claves para los clientes:
cd /etc/openvpn/easy-rsa
sudo ./easyrsa gen-req cliente1 nopass
sudo ./easyrsa sign-req client cliente1
sudo cp pki/ca.crt pki/issued/cliente1.crt pki/private/cliente1.key /etc/openvpn/client-configs/
Crea un archivo de configuración para el cliente (cliente1.ovpn
):
sudo nano /etc/openvpn/client-configs/cliente1.ovpn
Agrega el siguiente contenido:
client
dev tun
proto udp
remote TU_IP_PUBLICA 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert cliente1.crt
key cliente1.key
tls-auth ta.key 1
comp-lzo
verb 3
Transfiere este archivo al cliente y usa OpenVPN para conectarte:
sudo openvpn --config cliente1.ovpn
Paso 5: Configuración del firewall y reenvío de IP
Habilita el reenvío de paquetes en /etc/sysctl.conf
:
sudo nano /etc/sysctl.conf
Descomenta o agrega la siguiente línea:
net.ipv4.ip_forward=1
Aplica los cambios:
sudo sysctl -p
Configura iptables para redirigir el tráfico:
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Guarda la configuración de iptables:
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
Conclusión
Con estos pasos, has instalado y configurado un servidor OpenVPN en Linux. Ahora puedes conectar clientes de forma segura y navegar con privacidad. ¡Disfruta de tu VPN segura!