Las VPN más recomendables para Elastix y por qué encajan
Trabajar con Elastix, la popular distro de comunicaciones unificadas basada en CentOS, implica enfrentarse a servidores casi siempre headless, gestiones vía SSH y, en muchos casos, paneles web como FreePBX. Su gestor de paquetes nativo es yum (o dnf en versiones más recientes), y el público objetivo suele ser administradores de centralitas VoIP, afines a entornos sencillos (GNOME mínimo, Webmin como GUI ligera) y con la necesidad de asegurar tanto la voz como datos sensibles.
Por estas circunstancias, las VPN ideales para Elastix deben cumplir:
- Compatibilidad con CentOS 6/7/8 y sus kernels (2.6.x, 3.x y 4.x).
- Disponibilidad en repositorios EPEL o instalación sencilla sin romper dependencias.
- Bajo consumo de CPU para no interferir en la calidad de las llamadas SIP/RTP.
- Configuración modular para poder automatizar despliegues vía Ansible o Bash.
De entre todas las opciones, las que mejores resultados me han dado en Elastix son:
- OpenVPN
- Strongswan (IPsec/IKEv2)
- SoftEther VPN
Tabla comparativa de características
| Solución | Repositorio / Fuente | Compatibilidad Kernel | Rendimiento UDP | Complejidad | Web |
|---|---|---|---|---|---|
| OpenVPN | EPEL (yum install openvpn) | 2.6.x / 3.x / 4.x | Media-Alta | Media | sitio oficial de OpenVPN |
| Strongswan (IPsec/IKEv2) | EPEL (yum install strongswan) | 2.6.x / 3.x / 4.x | Alta | Alta | sitio oficial de Strongswan |
| SoftEther VPN | Binarios oficiales o compilación | 2.6.x / 3.x / 4.x | Alta | Media-Alta | sitio oficial de SoftEther |
1. OpenVPN: instalación y configuración básica
Instalación desde EPEL
# Activar EPEL si no lo tienes yum install -y epel-release # Instalar OpenVPN y easy-rsa yum install -y openvpn easy-rsa
Generar certificados y claves
# Copiar plantillas de easy-rsa cp -r /usr/share/easy-rsa/ /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa # Configurar vars básicas sed -i s^# export KEY_COUNTRYexport KEY_COUNTRY vars # Editar vars con tu información (país, ciudad, organización...) source ./vars ./clean-all ./build-ca # Autoridad certificadora ./build-key-server server ./build-dh ./build-key client1
Configuración del servidor
# Crear /etc/openvpn/server.conf cat > /etc/openvpn/server.conf << EOF port 1194 proto udp dev tun ca easy-rsa/keys/ca.crt cert easy-rsa/keys/server.crt key easy-rsa/keys/server.key dh easy-rsa/keys/dh2048.pem server 10.8.0.0 255.255.255.0 keepalive 10 120 persist-key persist-tun cipher AES-256-CBC user nobody group nobody verb 3 EOF # Iniciar servicio systemctl enable openvpn@server systemctl start openvpn@server
2. Strongswan (IPsec/IKEv2): instalación y ajustes
Preparar repositorio y paquetes
yum install -y epel-release yum install -y strongswan libcharon-extra-plugins
Configurar /etc/strongswan/strongswan.conf
# Sólo desactiva plugins innecesarios y ajusta logging
charon {
load = aes des sha2 sha1 random nonce x509 revocation database pem
# más plugins...
}
Configurar conexiones en /etc/strongswan/ipsec.conf
config setup uniqueids=never conn roadwarrior keyexchange=ikev2 ike=aes256-sha2_256-modp2048 esp=aes256-sha2_256 left=%any leftid=@elastix.example.com leftcert=serverCert.pem leftsendcert=always right=%any rightauth=eap-mschapv2 rightsourceip=10.9.0.0/24 rightsendcert=never eap_identity=%identity auto=add
Crear certificados
# Generación automática ipsec pki --gen --outform pem > caKey.pem ipsec pki --self --ca --lifetime 3650 --in caKey.pem --type rsa --dn CN=Elastix VPN CA --outform pem > caCert.pem ipsec pki --gen --outform pem > serverKey.pem ipsec pki --pub --in serverKey.pem ipsec pki --issue --lifetime 1825 --cacert caCert.pem --cakey caKey.pem --dn CN=elastix.example.com --san elastix.example.com --flag serverAuth --flag ikeIntermediate --outform pem > serverCert.pem cp .pem /etc/strongswan/ipsec.d/
Arrancar el servicio
systemctl enable strongswan systemctl start strongswan # Ver logs journalctl -u strongswan -f
3. SoftEther VPN: despliegue rápido
Descarga y compilación
yum install -y gcc make wget cd /opt wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.34-9745-beta/softether-vpnserver-v4.34-9745-beta-2020.04.05-linux-x64-64bit.tar.gz tar xzf .tar.gz cd vpnserver make
Configuración inicial y arranque
# Copiar a un directorio fijo cp -r vpnserver /usr/local/ cd /usr/local/vpnserver # Ajustar permisos chmod 600 chmod 700 vpnserver vpncmd # Crear servicio systemd (versión simplificada) cat > /etc/systemd/system/vpnserver.service << EOF [Unit] Description=SoftEther VPN Server After=network.target [Service] Type=forking ExecStart=/usr/local/vpnserver/vpnserver start ExecStop=/usr/local/vpnserver/vpnserver stop Restart=on-failure [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable vpnserver systemctl start vpnserver
Desde aquí puedes conectar con vpncmd para crear Virtual Hubs, usuarios y puentes a tu red interna.
Conclusiones
En un entorno Elastix, donde la estabilidad y la ligereza son clave para mantener la calidad de la voz, OpenVPN y Strongswan ofrecen soluciones robustas y fáciles de automatizar. SoftEther, por su parte, aporta flexibilidad y múltiples protocolos en un solo paquete. Elige la que mejor encaje con tus necesidades de apertura de puertos y rendimiento, y asegúrate de probar en laboratorio antes de pasar a producción.
Deja una respuesta