GNU/Linux >> LINUX-Kenntnisse >  >> Linux

OpenVPN-Client-zu-Client

Lösung 1:

Wenn client-to-client ist aktiviert , leitet der VPN-Server Client-zu-Client-Pakete intern weiter, ohne sie an die IP-Schicht des Hosts (also an den Kernel) zu senden. Der Host-Networking-Stack sieht diese Pakete überhaupt nicht.

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


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


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

Wenn client-to-client ist deaktiviert , durchlaufen die Pakete von einem Client zu einem anderen Client die Host-IP-Schicht (iptables, Routing-Tabelle usw.) des Rechners, der den VPN-Server hostet:wenn die IP-Weiterleitung aktiviert ist , leitet der Host das Paket (unter Verwendung seiner Routing-Tabelle) möglicherweise erneut an die TUN-Schnittstelle weiter und der VPN-Daemon leitet das Paket an den richtigen Client innerhalb des Tunnels weiter.

           .-------------------.
           | 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       |
 '----------------'  '----------------'

In diesem Fall (client-to-client deaktiviert), können Sie die Client-zu-Client-Pakete mit iptables blockieren:

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

wobei tun0 ist Ihre VPN-Schnittstelle.

Lösung 2:

Sie müssen mehr tun, als nur die Direktive zu kommentieren, wie sie hier steht:

Kommentieren Sie diese Anweisung aus, damit sich verschiedene Clients gegenseitig "sehen" können. Standardmäßig sehen Clients nur den Server.Um Clients zu zwingen, nur den Server zu sehen, müssen Sie auch das TUN/TAP des Servers entsprechend mit einer Firewall versehen Schnittstelle.

Daher können Sie für jeden Client eine separate IP-Adressrichtlinie konfigurieren. Siehe Abschnitt Clientspezifische Regeln und Zugriffsrichtlinien konfigurieren hier:https://openvpn.net/index.php/open-source/documentation/howto.html.und hier:https://www.sbarjatiya.com/notes_wiki/index.php/Configuring_separate_IP_and_firewall_rule_for_each_openvpn_client.

Lösung 3:

Der nächste Absatz der Manpage für openvpn beantwortet diese Frage, obwohl es beim ersten Lesen nicht unbedingt klar ist:

Da der OpenVPN-Servermodus mehrere Clients über eine einzige Tun- oder Tap-Schnittstelle verwaltet, handelt es sich effektiv um einen Router. Die --client-to-client Flag weist OpenVPN an, den Client-zu-Client-Verkehr intern zu routen, anstatt den gesamten vom Client stammenden Verkehr an die TUN/TAP-Schnittstelle zu schieben.

Wenn diese Option verwendet wird, "sieht" jeder Client die anderen Clients, die gerade verbunden sind. Andernfalls sieht jeder Client nur den Server. Verwenden Sie diese Option nicht, wenn Sie Tunneldatenverkehr mit benutzerdefinierten Regeln pro Client per Firewall schützen möchten.

Die client-to-client Option schließt die normalen Routing-Tabellen auf dem Server kurz. Das Entfernen hindert die Clients nicht daran, die Routing-Tabellen des Servers zu verwenden. Wenn diese Routing-Tabellen - und die Firewall-Konfiguration des Servers - Clients erlauben, sich gegenseitig zu sehen, dann können sie das auch.


Linux
  1. OPENVPN-CLIENT Für Windows und Linux

  2. Sicheres OpenVPN mit Zwei-Faktor-Authentifizierung von WiKID auf Centos 7

  3. Installieren Sie den OpenVPN-Server auf Debian 10/11

  4. Openvpn:Pushen Sie eine Route zum Client mit einem anderen Gateway?

  5. Installieren und konfigurieren Sie den OpenVPN-Client unter Rocky Linux 8

ADSL-Client

PPP-DFÜ-Client

So installieren Sie den OpenVPN-Client auf Debian 11 Bullseye

So installieren Sie OpenVPN-Server auf AlmaLinux 8

So verbinden Sie sich mit OpenVPN mit einem VPN

So richten Sie einen Linux-VPN-Server und -Client mit OpenVPN ein