Pasos para crear una VPN utilizando OpenVPN
¡Claro! Aquí tienes un tutorial detallado para instalar y configurar una VPN utilizando OpenVPN en Ubuntu Server y AlmaLinux, ambos sin interfaz gráfica.
Paso 1: Preparar el servidor
Actualizar el sistema
Ubuntu Server:
sudo apt update
sudo apt upgrade -y
AlmaLinux:
sudo dnf update -y
Paso 2: Instalar OpenVPN y Easy-RSA
Ubuntu Server
sudo apt install openvpn easy-rsa -y
AlmaLinux
- Instala el repositorio EPEL:
sudo dnf install epel-release -y
- Instala OpenVPN y Easy-RSA:
sudo dnf install openvpn easy-rsa -y
Paso 3: Configurar Easy-RSA
- Crea el directorio de Easy-RSA y copia los archivos necesarios:
make-cadir ~/easy-rsa
cd ~/easy-rsa
- Edita el archivo
vars
para configurar las variables necesarias:
nano vars
Añade las siguientes líneas al final del archivo vars
:
set_var EASYRSA_REQ_COUNTRY "US"
set_var EASYRSA_REQ_PROVINCE "CA"
set_var EASYRSA_REQ_CITY "SanFrancisco"
set_var EASYRSA_REQ_ORG "MyOrganization"
set_var EASYRSA_REQ_EMAIL "email@example.com"
set_var EASYRSA_REQ_OU "MyOrganizationalUnit"
Paso 4: Generar la Autoridad Certificadora (CA) y los certificados
- Inicializa el directorio de la PKI (Public Key Infrastructure):
./easyrsa init-pki
- Genera la CA:
./easyrsa build-ca
- Te pedirá que ingreses una contraseña para la CA y algunos detalles adicionales.
- Genera el certificado y la clave del servidor:
./easyrsa gen-req server nopass
- Firma el certificado del servidor:
./easyrsa sign-req server server
- Genera las claves de Diffie-Hellman:
./easyrsa gen-dh
- Genera un archivo de clave HMAC para TLS:
openvpn --genkey --secret ta.key
Paso 5: Configurar OpenVPN
- Copia los archivos generados a la configuración de OpenVPN:
sudo cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem ta.key /etc/openvpn/
- Crea un archivo de configuración de OpenVPN:
sudo nano /etc/openvpn/server.conf
Agrega la siguiente configuración básica:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
cipher AES-256-CBC
auth SHA256
keepalive 10 120
persist-key
persist-tun
user nobody
group nogroup
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3
Paso 6: Configurar el reenvío de IP y las reglas de firewall
- Habilita el reenvío de IP:
sudo nano /etc/sysctl.conf
Descomenta o añade la siguiente línea:
net.ipv4.ip_forward = 1
Aplica los cambios:
sudo sysctl -p
- Configura las reglas de iptables para permitir el tráfico de la VPN:
Ubuntu Server:
sudo ufw allow 1194/udp
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw route allow in on tun0 out on eth0
AlmaLinux:
Configura firewalld para permitir el tráfico de la VPN:
sudo firewall-cmd --add-service=openvpn --permanent
sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --add-masquerade --permanent
sudo firewall-cmd --reload
Paso 7: Iniciar y habilitar el servicio OpenVPN
Ubuntu Server
sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
AlmaLinux
sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
Paso 8: Configurar los clientes VPN
- Genera los certificados y las claves para los clientes:
cd ~/easy-rsa
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
- Copia los archivos necesarios al cliente (usar SCP o cualquier otro método seguro):
scp pki/ca.crt pki/issued/client1.crt pki/private/client1.key ta.key user@client-ip:/path/to/store/
- Crear un archivo de configuración de OpenVPN para el cliente:
nano client1.ovpn
Agrega la siguiente configuración:
client
dev tun
proto udp
remote your_server_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
key-direction 1
verb 3
<ca>
-----BEGIN CERTIFICATE-----
# Copia el contenido del archivo ca.crt aquí
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
# Copia el contenido del archivo client1.crt aquí
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
# Copia el contenido del archivo client1.key aquí
-----END PRIVATE KEY-----
</key>
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
# Copia el contenido del archivo ta.key aquí
-----END OpenVPN Static key V1-----
</tls-auth>
-
Conectar el cliente a la VPN:
- Usa el archivo de configuración
client1.ovpn
con el cliente OpenVPN de tu elección (Windows, macOS, Linux, etc.).
- Usa el archivo de configuración
Paso 9: Verificar la conexión
- Inicia el cliente OpenVPN y carga el archivo de configuración
client1.ovpn
. - Verifica que el cliente se conecte correctamente al servidor y que la conexión VPN esté funcionando.
Ahora has configurado una VPN utilizando OpenVPN en Ubuntu Server y AlmaLinux.