📖 Página 1: Introducción
"La seguridad no es un producto, sino un proceso." — Bruce Schneier
🔐 ¿Qué es OpenVPN?
OpenVPN es un protocolo de VPN de código abierto que utiliza SSL/TLS para crear conexiones seguras y cifradas. Es ampliamente reconocido por su flexibilidad, compatibilidad y robustez en el establecimiento de túneles entre dispositivos.
Según la documentación oficial de OpenVPN, este protocolo implementa extensiones de red seguras de capa 2 o 3 utilizando el protocolo SSL/TLS, soportando IPv4 e IPv6.
🎯 ¿Por qué usar OpenVPN con MikroTik?
Los routers MikroTik con RouterOS ofrecen soporte nativo para OpenVPN, permitiendo:
- Acceso remoto seguro — Conexión cifrada a redes corporativas o domésticas
- Conexiones site-to-site — Túneles permanentes entre oficinas remotas
- Compatibilidad multiplataforma — Windows, Linux, macOS, iOS y Android
- Cifrado robusto — Certificados SSL con algoritmos modernos
📋 Objetivos de este Ebook
Este manual te guiará paso a paso para configurar:
- ✅ Un servidor OpenVPN en un router MikroTik
- ✅ Conexiones VPN entre dos routers MikroTik (site-to-site)
- ✅ Clientes OpenVPN en sistemas operativos Windows, Linux y macOS
💡 Página 2: Conceptos Fundamentales
"Conocerse a uno mismo es el principio de toda sabiduría." — Aristóteles
🏗️ Arquitectura Cliente-Servidor
OpenVPN funciona bajo un modelo cliente-servidor:
┌─────────────────────────────────────────────────────────┐
│ INTERNET │
└─────────────────┬─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ MIKROTIK SERVIDOR │
│ ┌─────────────────────────────────────────────────┐ │
│ │ OpenVPN Server (Puerto 1194) │ │
│ │ IP: 10.8.0.1 │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────┬─────────────────────────────────────┘
│
┌─────────┼─────────┐
▼ ▼ ▼
┌───────┐ ┌───────┐ ┌──────────┐
│ Win │ │ Linux │ │ macOS │
│ 10.8.0│ │10.8.0 │ │ 10.8.0.x│
└───────┘ └───────┘ └──────────┘
🔌 Tipos de Conexión
Acceso Remoto (Road Warrior)
Un cliente individual se conecta a la red corporativa desde una ubicación remota. El cliente obtiene una IP de la red VPN y puede acceder a los recursos internos.
Site-to-Site (Gateway-to-Gateway)
Dos routers MikroTik crean un túnel permanente entre dos ubicaciones físicas diferentes. Los dispositivos en ambas redes pueden comunicarse como si estuvieran en la misma red local.
⚙️ Modos de Operación
| Modo | Capa | Descripción |
|---|---|---|
| TUN | Capa 3 (Red) | Enruta tráfico entre redes. Más eficiente. |
| TAP | Capa 2 (Enlace) | Simula switch ethernet. Permite protocolos no IP. |
🌐 Protocolos de Transporte
| Protocolo | Puerto | Ventajas | Desventajas |
|---|---|---|---|
| UDP | 1194 | Mayor rendimiento, menor latencia | Puede ser bloqueado por firewalls |
| TCP | 1194 | Atravesar firewalls fácilmente | Mayor overhead |
📦 Página 3: Preparación y Requisitos
"El éxito es la suma de pequeños esfuerzos repetidos día tras día." — Robert Collier
🖥️ Requisitos de Hardware y Software
En el Servidor (MikroTik)
| Requisito | Especificación |
|---|---|
| Router | MikroTik con RouterOS 6.x+ (recomendado 7.x) |
| Paquete | PPP instalado y habilitado |
| Acceso | WinBox, WebFig o SSH |
| Red | IP pública estática o DDNS configurado |
En los Clientes
| Sistema | Software |
|---|---|
| Windows | OpenVPN GUI o OpenVPN Connect |
| Linux | Paquete openvpn o NetworkManager |
| macOS | Tunnelblick o OpenVPN Connect |
🗺️ Topología de Red de Ejemplo
Para este manual usaremos la siguiente configuración:
| Elemento | Valor |
|---|---|
| Red LAN del servidor | 192.168.10.0/24 |
| IP del servidor LAN | 192.168.10.1 |
| Pool de IPs VPN | 10.8.0.0/24 |
| IP del servidor VPN | 10.8.0.1 |
| Puerto OpenVPN | 1194 |
| Protocolo | TCP |
🔥 Puertos y Firewall
Asegúrate de que el puerto 1194 (o el que configures) esté abierto en:
- ✅ El firewall del MikroTik (Input chain)
- ✅ El router ISP o firewall externo
- ✅ NAT/PAT si existe redirección de puertos
🔑 Página 4: Generación de Certificados
"La seguridad es un proceso, no un producto." — Bruce Schneier
❓ ¿Por qué necesitamos certificados?
OpenVPN utiliza certificados SSL para:
- Autenticación: Verificar la identidad del servidor y clientes
- Cifrado: Establecer canales de comunicación seguros
- Integridad: Garantizar que los datos no fueron manipulados
🏛️ Crear la Autoridad Certificadora (CA)
Desde el terminal del MikroTik:
/certificate add name=ca-ca common-name="MiCA" days-valid=3650 key-size=4096 key-usage=crl-sign,key-cert-sign sign ca-ca
🖥️ Crear Certificado del Servidor
/certificate add name=ovpn-server common-name="servidor-ovpn" days-valid=3650 key-size=4096 key-usage=digital-signature,key-encipherment,tls-server sign ovpn-server ca=ca-ca
👤 Crear Certificado del Cliente
/certificate add name=ovpn-client common-name="cliente-ovpn" days-valid=3650 key-size=4096 key-usage=tls-client sign ovpn-client ca=ca-ca
📤 Exportar Certificados
/certificate export-certificate ca-ca export-passphrase="" /certificate export-certificate ovpn-client export-passphrase="password-cliente"
✅ Verificar Certificados
/certificate print
Deberás ver los certificados firmados (T) en la columna FLAGS:
Flags: K - PRIVATE KEY, T - SIGNED, C - CRL SIGNING # NAME COMMON-NAME VALIDITY 0 T ca-ca MiCA mar/2036 06:34:56 1 KT ovpn-server servidor-ovpn mar/2036 06:36:12 2 KT ovpn-client cliente-ovpn mar/2036 06:37:05
⚙️ Página 5: Configuración del Servidor OpenVPN
"Todo lo worth doing, worth doing well."
1️⃣ Paso 1: Crear el Pool de IPs
/ip pool add name=ovpn-pool ranges=10.8.0.10-10.8.0.50
2️⃣ Paso 2: Crear el Perfil PPP
/ppp profile add name=ovpn-profile local-address=10.8.0.1 remote-address=ovpn-pool dns-server=8.8.8.8,8.8.4.4 use-encryption=yes
3️⃣ Paso 3: Crear Usuario
/secret add name=usuario-vpn password=PasswordSegura123 service=ovpn profile=ovpn-profile
4️⃣ Paso 4: Habilitar el Servidor OpenVPN
/interface ovpn-server server set enabled=yes \ certificate=ovpn-server \ default-profile=ovpn-profile \ port=1194 \ protocol=tcp \ mode=ip \ netmask=24 \ require-client-certificate=yes \ auth=sha256 \ cipher=aes256
Parámetros Explicados
| Parámetro | Descripción |
|---|---|
enabled=yes |
Activa el servidor OpenVPN |
certificate |
Certificado del servidor creado anteriormente |
default-profile |
Perfil PPP usado por defecto |
port |
Puerto de escucha (1194 por defecto) |
protocol |
TCP o UDP |
require-client-certificate |
Exige certificado del cliente |
5️⃣ Paso 5: Configurar Firewall
Regla Input (permitir conexiones entrantes)
/ip firewall filter add chain=input protocol=tcp dst-port=1194 action=accept
Regla NAT (para que clientes VPN accedan a Internet)
/ip firewall nat add chain=srcnat out-interface=ether1 action=masquerade
/interface print.🌐 Página 6: Configuración Site-to-Site
"Dos cerebros valen más que uno." — Proverbio
📊 Escenario
Dos oficinas necesitan comunicarse a través de VPN:
OFICINA A OFICINA B ┌──────────────┐ ┌──────────────┐ │ Mikrotik A │◄──── VPN TUNNEL ────►│ Mikrotik B │ │ IP Pública │ (10.8.0.x) │ IP Pública │ │ LAN: 192.168 │ │ LAN: 192.168 │ │ .10.0/24 │ │ .20.0/24 │ └──────────────┘ └──────────────┘
🏢 Configuración en el MikroTik Servidor (Oficina A)
Ya completada en las páginas anteriores. Asegúrate de:
- ✅ Tener un usuario para la oficina B
- ✅ Exportar los certificados necesarios
- ✅ La regla de firewall permita el tráfico entre redes
🏪 Configuración en el MikroTik Cliente (Oficina B)
Importar certificados
Sube los archivos al MikroTik cliente y luego:
/certificate import file-name=ca.crt /certificate import file-name=cliente.crt passphrase=password-cliente
Crear perfil PPP
/ppp profile add name=ovpn-client-profile local-address=10.8.0.2 remote-address=10.8.0.1 use-encryption=yes
Configurar el cliente OpenVPN
/interface ovpn-client add name=ovpn-out1 \ connect-to=IP_PUBLICA_SERVIDOR \ certificate=cliente.crt \ user=usuario-vpn \ password=PasswordSegura123 \ profile=ovpn-client-profile \ port=1194 \ protocol=tcp
🔍 Verificar Conexión
/interface ovpn-client monitor ovpn-out1
Deberías ver:
name: ovpn-out1
status: connected
duration: 0s
encoding: AES-256-SHA256
idle-time: 0s
session-id: 1
recursive-nat: no
🛤️ Añadir Rutas Estáticas
Para que la Oficina B acceda a la red de la Oficina A:
/ip route add dst-address=192.168.10.0/24 gateway=10.8.0.1
Para que la Oficina A acceda a la red de la Oficina B:
En el servidor, añade:
/ip route add dst-address=192.168.20.0/24 gateway=10.8.0.2
🪟 Página 7: Conexión desde Windows
"El conocimiento es poder." — Francis Bacon
📥 Instalar OpenVPN
- Descarga OpenVPN GUI desde openvpn.net
- Ejecuta el instalador con permisos de administrador
- Finaliza la instalación
📁 Preparar Archivos de Configuración
Necesitas los siguientes archivos del servidor:
| Archivo | Descripción |
|---|---|
ca.crt |
Certificado de la CA |
cliente.crt |
Certificado del cliente |
cliente.key |
Clave privada del cliente |
cliente.ovpn |
Archivo de configuración |
📝 Crear archivo .ovpn
Guarda como cliente.ovpn:
client dev tun proto tcp remote TU_IP_PUBLICA 1194 resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-CBC auth SHA256 auth-user-pass <ca> # -----BEGIN CERTIFICATE----- # [Pega el contenido de ca.crt] # -----END CERTIFICATE----- </ca> <cert> # -----BEGIN CERTIFICATE----- # [Pega el contenido de cliente.crt] # -----END CERTIFICATE----- </cert> <key> # -----BEGIN PRIVATE KEY----- # [Pega el contenido de cliente.key] # -----END PRIVATE KEY----- </key> verb 3
📂 Instalar Certificados
Copia todos los archivos a:
C:\Program Files\OpenVPN\config\
🔗 Conectar
- Ejecuta OpenVPN GUI como Administrador
- Haz clic derecho sobre el icono en la bandeja del sistema
- Selecciona "Conectar"
- Ingresa el usuario y contraseña cuando se solicite
✅ Verificar Conexión
- ✅ El icono de la bandeja se volverá verde
- Ejecuta
ipconfigy busca la interfaz TAP-Windows - Deberías tener una IP del rango 10.8.0.x
🐧 Página 8: Conexión desde Linux
"Linux es como un bikini: pequeño, abierto, y teasing." — Juan Antonio
📦 Instalación
Debian/Ubuntu
sudo apt update sudo apt install openvpn
Fedora/RHEL
sudo dnf install openvpn
Arch Linux
sudo pacman -S openvpn
⚙️ Configuración
Crear directorio de configuración
sudo mkdir -p /etc/openvpn/client sudo chmod 700 /etc/openvpn/client
Crear archivo de configuración
Guarda en /etc/openvpn/client/cliente.conf:
client dev tun proto tcp remote TU_IP_PUBLICA 1194 resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-CBC auth SHA256 auth-user-pass ca /etc/openvpn/client/ca.crt cert /etc/openvpn/client/cliente.crt key /etc/openvpn/client/cliente.key verb 3
Copiar certificados
sudo cp ca.crt /etc/openvpn/client/ sudo cp cliente.crt /etc/openvpn/client/ sudo cp cliente.key /etc/openvpn/client/ sudo chmod 600 /etc/openvpn/client/cliente.key
▶️ Conexión Manual
sudo openvpn --config /etc/openvpn/client/cliente.conf
Ingresa el usuario y contraseña cuando se solicite.
🚀 Conexión con systemctl
sudo cp /etc/openvpn/client/cliente.conf /etc/openvpn/client.conf sudo systemctl enable openvpn-client@client sudo systemctl start openvpn-client@client
🌐 Conexión con NetworkManager
- Abre Configuración → Red → VPN
- Selecciona "Importar configuración de VPN"
- Elige el archivo
.ovpn - Completa usuario y contraseña
- Activa la conexión
🍎 Página 9: Conexión desde macOS
"There's a way to do it better - find it." — Thomas A. Edison
📱 Opciones de Cliente
| Aplicación | Tipo | Descarga |
|---|---|---|
| OpenVPN Connect | Oficial | App Store |
| Tunnelblick | Código Abierto | tunnelblick.net |
🔧 Usando Tunnelblick
Instalación
- Descarga Tunnelblick desde tunnelblick.net
- Ejecuta el instalador
- Arrastra Tunnelblick a Aplicaciones
Configuración
- Crea una carpeta llamada
VPN Config - Coloca dentro:
ca.crtcliente.crtcliente.keycliente.ovpn
- Edita
cliente.ovpn:
client dev tun proto tcp remote TU_IP_PUBLICA 1194 resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-CBC auth SHA256 auth-user-pass ca ca.crt cert cliente.crt key cliente.key verb 3
- Doble clic en el archivo
.ovpnpara importar
Conectar
- Abre Tunnelblick desde el menú
- Selecciona "Conectar"
- Ingresa credenciales
✅ Verificar Conexión
ifconfig | grep -A 5 tun
Deberías ver una interfaz tun0 con IP del rango 10.8.0.x
🔧 Página 10: Diagnóstico y Solución de Problemas
"Los problemas no son señales de alto, sino guías."
❌ Problemas Comunes y Soluciones
❌ "TLS Failed" o "TLS Handshake Failed"
Causas posibles:
- Certificados vencidos o mal firmados
- Cipher incompatibles entre cliente y servidor
- Reloj del sistema desincronizado
Soluciones:
- Verifica que los certificados estén correctamente firmados
- Asegúrate de usar los mismos algoritmos (cipher y auth)
- Sincroniza la hora del dispositivo cliente
/system clock set time-zone-name=America/New_York /system ntp client set enabled=yes primary-ntp=pool.ntp.org
❌ "Connection Refused"
Causas:
- Puerto bloqueado en firewall
- NAT no configurado correctamente
- IP incorrecta del servidor
Soluciones:
- Verifica regla firewall:
/ip firewall filter print where dst-port=1194
- Confirma que el puerto está abierto en el router ISP
- Verifica la IP pública del servidor
❌ "No Valid Certificates"
Causa: El certificado del cliente no está firmado por la CA
Solución:
/certificate sign ovpn-client ca=ca-ca
❌ "Could Not Connect" (todos los intentos)
Causas:
- Router no tiene acceso a Internet
- El servidor OpenVPN no está habilitado
Soluciones:
/ping 8.8.8.8 /interface ovpn-server server print
🔍 Comandos de Diagnóstico
| Comando | Descripción |
|---|---|
/interface ovpn-server monitor |
Ver estado del servidor |
/ppp active print |
Ver conexiones activas |
/log print where message~"ovpn" |
Ver logs en tiempo real |
/interface ovpn-server print |
Ver interfaces servidor |
/interface ovpn-client print |
Ver interfaces cliente |
🛡️ Mejores Prácticas de Seguridad
- Usa certificados con validez limitada (1-2 años)
- Habilita autenticación de dos factores (certificado + contraseña)
- Mantén RouterOS actualizado
- Usa cifrado fuerte (AES-256 + SHA256 mínimo)
- Rota certificados periódicamente
- Limita usuarios que pueden conectarse
- Usa puertos no estándar para mayor seguridad
🎉 Conclusión
"¡Felicitaciones! Has completado la configuración completa de OpenVPN con MikroTik."
Ahora dispones de:
- ✅ Un servidor OpenVPN funcional en tu router MikroTik
- ✅ Conexiones site-to-site entre dos routers MikroTik
- ✅ Clientes configurados en Windows, Linux y macOS
- ✅ Conocimiento para diagnosticar y resolver problemas
🚀 Próximos Pasos
- Experimenta con configuraciones más avanzadas
- Implementa redundancia con múltiples servidores
- Explora WireGuard (disponible en RouterOS 7.x) como alternativa más moderna
📚 Referencias
- OpenVPN Official Documentation: openvpn.net
- MikroTik RouterOS Documentation: help.mikrotik.com