GNU/Linux >> Tutoriales Linux >  >> Linux

OpenVPN cliente a cliente

Solución 1:

Si client-to-client está habilitado , el servidor VPN reenvía los paquetes de cliente a cliente internamente sin enviarlos a la capa IP del host (es decir, al kernel). La pila de red del host no ve esos paquetes en absoluto.

           .-------------------.
           | IP Layer          |
           '-------------------'


           .-------------------.
           | TUN device (tun0) |
           '-------------------'


           .-------------------.
           | OpenVPN server    |
           '-------------------'
             ^           |
          1  |           |  2   
             |           v
 .----------------.  .----------------.
 | Client a       |  | Client b       |
 '----------------'  '----------------'

Si client-to-client está deshabilitado , los paquetes de un cliente a otro cliente pasan por la capa IP del host (iptables, tabla de enrutamiento, etc.) de la máquina que aloja el servidor VPN:si el reenvío de IP está habilitado , el host podría reenviar el paquete (usando su tabla de enrutamiento) nuevamente a la interfaz TUN y el demonio VPN reenviará el paquete al cliente correcto dentro del túnel.

           .-------------------.
           | IP Layer          |  (4) routing, firewall, NAT, etc.
           '-------------------'      (iptables, nftables, conntrack, tc, etc.)
              ^          |
          3   |          |  5
              |          v
           .-------------------.
           | TUN device (tun0) |
           '-------------------'
             ^           |
          2  |           |  6  
             |           v
           .-------------------.
           | OpenVPN server    |
           '-------------------'
             ^           |
          1  |           |  7  
             |           v
 .----------------.  .----------------.
 | Client a       |  | Client b       |
 '----------------'  '----------------'

En este caso (client-to-client deshabilitado), puede bloquear los paquetes de cliente a cliente usando iptables:

 iptables -A FORWARD -i tun0 -o tun0 -j DROP

donde tun0 es su interfaz VPN.

Solución 2:

Debe hacer algo más que simplemente comentar la directiva como dice aquí:

Descomente esta directiva para permitir que diferentes clientes puedan "verse" entre sí. De forma predeterminada, los clientes solo verán el servidor.Para obligar a los clientes a ver solo el servidor, también deberá proteger adecuadamente el TUN/TAP del servidor interfaz.

Por lo tanto, puede configurar una política de dirección IP separada para cada cliente. Consulte la sección Configuración de reglas y políticas de acceso específicas del cliente aquí:https://openvpn.net/index.php/open-source/documentation/howto.html.y aquí:https://www.sbarjatiya.com/notes_wiki/index.php/Configuring_separate_IP_and_firewall_rule_for_each_openvpn_client.

Solución 3:

El siguiente párrafo de la página man para openvpn responde a esta pregunta, aunque no está necesariamente claro en la primera lectura:

Debido a que el modo de servidor OpenVPN maneja múltiples clientes a través de una sola interfaz tun o tap, es efectivamente un enrutador. El --client-to-client le dice a OpenVPN que enrute internamente el tráfico de cliente a cliente en lugar de enviar todo el tráfico que se origina en el cliente a la interfaz TUN/TAP.

Cuando se usa esta opción, cada cliente "verá" a los otros clientes que están actualmente conectados. De lo contrario, cada cliente solo verá el servidor. No utilice esta opción si desea bloquear el tráfico mediante un túnel de cortafuegos mediante reglas personalizadas por cliente.

El client-to-client La opción cortocircuita las tablas de enrutamiento normales en el servidor. Su eliminación no evita que los clientes utilicen las tablas de enrutamiento del servidor. Si esas tablas de enrutamiento, y la configuración del firewall del servidor, permiten que los clientes se vean entre sí, entonces podrán hacerlo.


Linux
  1. Instale el servidor OpenVPN en Debian 10/11

  2. Openvpn:¿Enviar una ruta al cliente con una puerta de enlace diferente?

  3. Instalar y configurar el cliente OpenVPN en Rocky Linux 8

  4. Conectarse a VPN automáticamente en Ubuntu 20.04/18.04

  5. Instale y configure el cliente OpenVPN en CentOS 8/Ubuntu 18.04

ADSL Cliente

Cliente de acceso telefónico PPP

Cómo instalar el cliente OpenVPN en Debian 11 Bullseye

Cómo instalar el servidor OpenVPN en AlmaLinux 8

Cómo conectarse a una VPN con OpenVPN

Cómo configurar el servidor y el cliente VPN de Linux usando OpenVPN