- ¿Qué cubre esta guía técnica?
- Requisitos previos y selección de ubicación
- Instalación de ocserv y los paquetes necesarios
- Obtener un certificado Let's Encrypt (métodos)
- Configuración de ocserv: ejemplo de ocserv.conf
- Configuración de firewall y NAT (reenvío de IP)
- Autenticación y gestión de usuarios
- Seguridad, fortalecimiento y optimización
- Probar y conectar clientes
- Automatización de la renovación y el mantenimiento de certificados
- Consejos prácticos y casos especializados para aplicaciones
- Conclusión
¿Qué cubre esta guía técnica?
Esta guía técnica paso a paso le muestra cómo configurar el servicio. Conexión abierta (ocserv) En Ubuntu 22.04 Además de recibir y gestionar certificados Vamos a encriptarSe cubren temas como configuración segura, configuración de firewall y NAT, autenticación de usuarios y sugerencias para conectar clientes y automatizar la renovación de certificados.
Para entornos sensibles como el comercio, los juegos o el acceso corporativo, es fundamental elegir la ubicación adecuada y utilizar servidores con protección anti-DDoS. Nuestra empresa ofrece más de 85 ubicaciones en todo el mundo, servidores anti-DDoS y una red BGP.
Requisitos previos y selección de ubicación
Antes de comenzar, asegúrese de que:
- Un servidor Ubuntu 22.04 Tienes acceso root o sudo.
- Un dominio (p. ej. vpn.ejemplo.com) se refiere a la IP del servidor.
- Puertos 80 y 443 Están abiertos en el firewall para recibir el certificado Let's Encrypt.
¿Por qué es importante la ubicación?
- Para los comerciantes y jugadores, elegir una ubicación con un ping bajo (por ejemplo, Londres, Frankfurt o Tokio) es una prioridad.
- Las organizaciones pueden necesitar múltiples ubicaciones con BGP y CDN para aumentar la estabilidad.
- Para protección y estabilidad, se recomiendan servidores con protección anti-DDoS.
Instalación de ocserv y los paquetes necesarios
Primero, actualice el sistema e instale los paquetes básicos:
sudo apt update && sudo apt upgrade -y
sudo apt install ocserv certbot libnss3-tools -yPaquetes recomendados para el entorno operativo:
- ufw o nftables para la gestión de firewall
- fail2ban para protegerse contra ataques de fuerza bruta
- openssl o gnutls‑bin si necesita probar TLS
Obtener un certificado Let's Encrypt (métodos)
Dos formas comunes de obtener la certificación:
Método A: usar nginx (si tiene un servidor web)
Si tiene nginx, puede habilitar el host virtual y usar certbot con el complemento nginx:
sudo apt install nginx
sudo certbot --nginx -d vpn.example.comLuego, en el archivo de configuración de ocserv, especifique la ruta del certificado de la siguiente manera:
server-cert = /etc/letsencrypt/live/vpn.example.com/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.example.com/privkey.pemMétodo B: independiente (si no tienes nginx)
Debido a que ocserv escucha en el puerto 443 de manera predeterminada, debe detener ocserv temporalmente o usar un desafío DNS antes de ejecutar certbot independiente:
sudo systemctl stop ocserv
sudo certbot certonly --standalone -d vpn.example.com
sudo systemctl start ocserv
Configuración de ocserv: ejemplo de ocserv.conf
Archivo de configuración principal: /etc/ocserv/ocserv.conf. Ejemplo de secciones clave:
# ports
tcp-port = 443
udp-port = 443
# certificates
server-cert = /etc/letsencrypt/live/vpn.example.com/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.example.com/privkey.pem
# network
default-domain = vpn.example.com
dns = 1.1.1.1
dns = 1.0.0.1
route = 0.0.0.0/0
no-route = 192.168.0.0/16
# limits
max-clients = 250
max-same-clients = 2
# security and performance
keepalive = 60
auth = "plain[passwd=/etc/ocserv/ocpasswd]"
compression = false
tls-priorities = "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2"
allow-roaming = trueNotas importantes: ruta = 0.0.0.0/0 Para túnel completo. Para túnel dividido, agregue solo las redes requeridas. Por razones de seguridad. compresión = falso Recomendado.
Configuración de firewall y NAT (reenvío de IP)
Habilitar el reenvío de IP:
sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.confEjemplo de reglas de iptables para NAT (asumiendo que la interfaz de salida es eth0 y la red interna es 10.10.10.0/24):
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPTPara conservar las reglas en los reinicios, utilice iptables-persistent o guarde la configuración en nftables.
Ejemplo de comandos UFW:
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw allow 80/tcp
sudo ufw enable
Autenticación y gestión de usuarios
Método simple basado en el archivo passwd local:
sudo ocpasswd -c /etc/ocserv/ocpasswd alicePuedes desde PAM Uso para la integración LDAP/AD (configuración) auth = "pam"" en ocserv.conf).
Para la autenticación basada en certificado (x.509) generar clave/certificado de cliente:
sudo certtool --generate-privkey --outfile client-key.pem
sudo certtool --generate-certificate --load-privkey client-key.pem --outfile client-cert.pem --template client.tmplPara agregar 2FA, puedes usar libpam-google-autenticator y estableciendo PAM en /etc/pam.d/ocserv Usar.
Seguridad, fortalecimiento y optimización
- Restricción de versiones de TLS Usando
prioridades de tls. - Desactivación de la compresión Por razones de seguridad (como DELITOS).
- Limitar el número de conexiones simultáneas (
máximo de clientes iguales). - Habilitar el registro y la supervisión de recursos.
- Instale y configure fail2ban para evitar intentos repetidos de inicio de sesión.
Ejemplo simple de configuración de fail2ban:
[ocserv]
enabled = true
port = 443
filter = ocserv
logpath = /var/log/syslog
maxretry = 5Es necesario crear un filtro apropiado (regex) de acuerdo con los registros de ocserv.
Probar y conectar clientes
Cliente de línea de comandos de Linux con conexión abierta:
sudo apt install openconnect
sudo openconnect vpn.example.comEn el escritorio de Linux desde administrador de red-openconnect Y en Windows/macOS, utilice la GUI de OpenConnect o clientes compatibles con Cisco AnyConnect.
Para comprobar el estado del servicio:
sudo systemctl status ocserv
sudo journalctl -u ocserv -f
Automatización de la renovación y el mantenimiento de certificados
Si está utilizando nginx o apache como proxy inverso, certbot generalmente puede renovar el certificado sin detener el servicio y volver a cargar ocserv después de la renovación:
sudo certbot renew --deploy-hook "systemctl reload ocserv"Si está utilizando el modo independiente y ocserv está habilitado en 443, las opciones son desafío DNS o usar ganchos pre/post:
sudo certbot renew --pre-hook "systemctl stop ocserv" --post-hook "systemctl start ocserv"
Consejos prácticos y casos especializados para aplicaciones
- Comercio: Elija un servidor en la ubicación más cercana para obtener la latencia más baja; los VPS específicos para trading con puerto 443 y UDP/DTLS pueden ser útiles.
- Juego de azar: Utilice la tunelización dividida para enviar únicamente el tráfico necesario a través de la VPN y reducir el ping del juego.
- Inteligencia artificial y renderizado: El uso de servidores GPU en la misma región puede reducir la carga y la latencia de la red.
- Seguridad organizacional: Se recomienda una combinación de servidores LDAP/AD, 2FA, monitoreo y anti-DDoS.
Nuestra empresa ofrece servicios en la nube de alto rendimiento, servidor de gráficos (GPU), VPS de comercio/juegos, registro de dominios, CDN y red BGP en Más de 85 ubicaciones en todo el mundo Le ofrece la posibilidad de colocar la VPN cerca de sus usuarios y beneficiarse de la protección DDoS.
Conclusión
Esta guía cubrió prácticamente los pasos para configurar OpenConnect (ocserv) en Ubuntu 22.04, desde la instalación hasta la obtención de un certificado Let's Encrypt, configuración segura, firewall y NAT, autenticación, optimización y automatización de renovación.
Observando precauciones de seguridad como: TLS moderno, Desactivación de la compresión, los límites de conexión, la activación de 2FA y fail2ban pueden proporcionar un servicio VPN seguro y confiable para equipos, jugadores y comerciantes.









