Resumen #
Cuando te conectas a internet a través de cualquier proveedor, sabes que este tomará todas las precauciones necesarias para garantizar la seguridad de tu conexión. Pero, ¿qué ocurre si quieres conectarte a un servicio privado? ¿Cómo asegurar que el tráfico entre el cliente y el servidor en una infraestructura pública sea seguro? Aquí es donde entran en juego los servicios VPN o las redes privadas virtuales . Se establece una conexión segura entre ambos nodos, garantizando que ningún agente externo intercepte el tráfico y obtenga información confidencial.
Los servicios VPN ofrecen varias funcionalidades, tales como:
Confidencialidad: impidiendo que alguien pueda leer tus datos. Esto se implementa con cifrado.
Autenticación: Verificar que los miembros que crean el punto a punto sean dispositivos legítimos.
Integridad: verificar que el paquete VPN no haya cambiado de alguna manera durante el tránsito.
Anti-repetición: impedir que alguien capture tráfico y lo reenvíe, intentando aparecer como un dispositivo/usuario legítimo.
Existen diferentes tipos de implementación en el mercado basados en estándares privativos y abiertos, centraremos este artículo en las soluciones abiertas, ver a continuación las más relevantes.
IPsec: Se ha convertido en el estándar de facto para las instalaciones de VPN en Internet, implementa una gran cantidad de algoritmos criptográficos y no ha conocido mayores vulnerabilidades.
OpenVPN: Muy popular pero no basado en estándares, utiliza protocolos de seguridad personalizados, soporta TLS/SSL con Openssl y una gran cantidad de algoritmos criptográficos.
L2TP: Es una extensión de PPTP, puede usar IPSec como capa de seguridad, utilizada principalmente en el pasado por los ISP. Actualmente, existen mejores opciones con mejor rendimiento.
Guardia de alambre: Es una VPN extremadamente rápida, y sumamente fácil de instalar, utiliza los algoritmos criptográficos ya incluidos en el Kernel de Linux, usa UDP y se puede configurar en cualquier puerto.
Entorno VPN escalable #
El objetivo de este artículo es describir cómo crear un servicio con balanceo de carga y alta disponibilidad para servicios VPN con Relianoid Load Balancer . Nos centramos en Wireguard , que utiliza el puerto 51820 UDP , pero puede extenderse a otras soluciones similares con otros protocolos y puertos.
En este artículo se omite la configuración del servidor VPN , pero se deben tener en cuenta los siguientes puntos para escalar la VPN con alta disponibilidad de forma exitosa:
El Los archivos de configuración del servidor VPN deben replicarse en todo el VPN servidores que estarán equilibrados.
Clientes VPN el tráfico debe ser NAT en el servidor VPN solo para garantizar que todas las conexiones entrantes y salientes de un cliente APN pasen por el mismo servidor VPN en el grupo.
El siguiente diagrama describe la arquitectura escalable a alcanzar.
1. Dos Guardia de alambre servidores que comparten la misma configuración.
2. Cada Guardia de alambre El servidor crea la misma red privada. 192.168.2.0/24.
3. Cada VPN El cliente será NAT con la IP del VPN servidor donde está conectado.
4. Los clientes se conectan a una IP pública. vpn.empresa.com vía 51820UDP, esta conexión será reenviada a Relianoide (192.168.100.10).
5. Relianoide equilibrará la carga de las conexiones del cliente con las disponibles VPN servidores y finalmente, el túnel se creará contra uno de los servidores.
En este artículo, vamos a detallar dos formas diferentes de configurar este servicio VPN escalable con Relianoid : una a través de la interfaz gráfica web y otra a través de la interfaz de línea de comandos.
Configuración del servicio virtual VPN con Relianoid #
Esta sección explica cómo alcanzar la configuración adecuada con la interfaz de línea de comandos.
Tenga en cuenta que los protocolos VPN requieren capacidades de sesión persistente para garantizar que el mismo cliente esté conectado al mismo servidor backend durante un período de tiempo, incluso si este cliente no genera ningún tráfico.
Para crear el servicio virtual VPN , se necesita una nueva granja llamada VPNLB con perfil l4xnat que escuche en el puerto 51820 UDP vinculado a la IP virtual VPN 192.168.100.10 y en modo sNAT , donde el firewall realizará NAT en las conexiones de los clientes con el siguiente comando:
creación de granja zcli -nombre de granja VPNLB -vip 192.168.100.10 -vport 51820 -perfil l4xnat
o mediante GUI web:
Modifique los parámetros globales de la granja para utilizar el protocolo UDP , luego configure la sesión de persistencia por IP de origen y un algoritmo simple de equilibrio de carga por peso.
conjunto de granja zcli VPNLB -protocolo udp -nattype nat -persistencia srcip -ttl 1800 -peso del algoritmo
o mediante GUI web:
Agregue dos servidores backend (192.168.100.11 y 192.168.100.12) a la granja de servidores ya creada para el servicio de balanceo de carga VPN . No es necesario configurar el puerto , ya que l4xnat utilizará el mismo que el puerto virtual configurado.
zcli farm-service-backend agrega VPNLB default_service -ip 192.168.100.11 zcli farm-service-backend agrega VPNLB default_service -ip 192.168.100.12
o mediante GUI web:
Para seleccionar solo backends saludables, configuremos una comprobación de estado simple para los backends que garantice que el puerto 51820 UDP esté disponible en el lado del backend. Haga una copia de una comprobación de estado genérica y precargada llamada check_udp y edítela. Recomendamos cambiar el campo de intervalo a 21 porque cada comprobación de estado usa un tiempo de espera de 10 segundos , por lo que 10 segundos * 2 backends + 1 segundo = 21 segundos.
zcli farmguardian create -copy_from check_udp -name check_udp_vpn zcli farmguardian set check_udp_vpn -descripción "Comprobación de VPN para UDP 51820" -intervalo 21
o mediante GUI web:
Por último, agregue la comprobación de estado ya creada llamada check_udp_vpn al VPNLB de la granja actual.
zcli farm-service-farmguardian agrega VPNLB default_service -name check_udp_vpn
Mitigación de ataques DDoS con módulo IPDS #
Los servicios VPN suelen ser blanco de ataques y amenazas de ciberseguridad con el fin de aprovechar la conectividad remota para ingresar a las redes de la organización.
Por ello, es recomendable complementar nuestro servicio VPN escalable con un sistema de seguridad que proteja a nuestra organización de ataques externos. Esta sección explica cómo usar el módulo Relianoid IPDS y mitigar fácilmente los ataques DDoS en servicios VPN públicos .
En esta sección se detallan dos protecciones diferentes que ofrecen mejores resultados con este tipo de servicio: la protección de IP mediante listas blancas y los límites de conexión.
Permitir el acceso al servicio VPN público desde una lista blanca determinada #
El uso de listas negras / blancas puede emplearse en servicios donde podemos garantizar que se conozca la lista de clientes, por ejemplo, un servicio VPN público para permitir el teletrabajo en una organización de un país determinado.
Para configurar una lista blanca para Alemania y rechazar el tráfico de otros rangos de direcciones IP de países, aplique lo siguiente:
1. Vaya a IPDS > Lista negra y encuentra ahí la lista negra geo_ES_Alemania. entonces Editar esta regla de lista negra y cambie el campo de política a Permitir para ser utilizado como lista blanca.
2. En la misma lista ir a la pestaña Granjas y mover la granja VPNLB de la columna Fincas disponibles a Habilitar granjas.
3. Presione la tecla Jugar icono incluido en Acciones para habilitar la lista blanca.
4. Vaya al IPDS > Lista negra y encuentra ahí la lista negra Todos, ir a la pestaña Granjas y mover la granja VPNLB de la columna Fincas disponibles a Habilitar granjas.
5. Presione la tecla Jugar icono de Acciones para habilitar la lista negra.
Con esta configuración, una lista blanca llamada geo_ES_Germany, que ya viene precargada en Relianoid con todos los rangos de IP de ese país, se agrega a la granja VPNLB y una lista negra adicional llamada All , que incluye el resto de las direcciones IP, se agrega a la granja. De esta manera, si la IP del cliente no coincide con ningún rango de Alemania, se descartará.
Permitir el acceso al servicio VPN público con límites de conexión #
Para aplicar este tipo de protección DDoS, es fundamental comprender el funcionamiento de nuestro servicio público. Por ejemplo, WireGuard utiliza una única conexión UDP por cliente . Si recibimos varias conexiones simultáneas desde la misma IP de origen, podemos suponer que más de un teletrabajador se está conectando a través de un NAT que enmascara el tráfico, o que se trata de un ataque de inundación UDP . En cualquier caso, podemos entender que más de 10 conexiones por IP de origen no constituyen tráfico legítimo.
Para configurar un límite de conexiones simultáneas por dirección IP de origen para nuestro servicio virtual VPN , siga estos pasos:
1. Vaya al IPDS > DoS > Crear regla DoS, crea una nueva regla con nombre límite_por_fuente_IP y seleccione el Tipo de regla límite total de conexión por IP de origen y pulse Crear.
2. En el formulario de edición de reglas, ingrese el límite de conexiones simultáneas deseado en el campo Límite total de conexiones por IP de origen, en nuestro caso 10 y pulse Enviar Formulario.
3. Ir a la pestaña Granjas y mover la granja VPNLB de la columna Fincas disponibles a Habilitar granjas.
Con esta configuración, hemos limitado el número de conexiones simultáneas por IP de origen a 10; no confiamos en ninguna IP de cliente que intente establecer más de 10 conexiones VPN. Si puede garantizar que ningún cliente intentará conectarse a través de una NAT pública, puede configurar el límite por IP de origen a solo 1.
¡Disfruta de un servicio VPN escalable, de alta disponibilidad y seguro con Relianoid!




