Řešení 1:
Pokud client-to-client
je povoleno VPN server přeposílá pakety klient-klient interně, aniž by je posílal do vrstvy IP hostitele (tj. do jádra). Hostitelský síťový zásobník tyto pakety vůbec nevidí.
.-------------------.
| IP Layer |
'-------------------'
.-------------------.
| TUN device (tun0) |
'-------------------'
.-------------------.
| OpenVPN server |
'-------------------'
^ |
1 | | 2
| v
.----------------. .----------------.
| Client a | | Client b |
'----------------' '----------------'
Pokud client-to-client
je zakázáno , pakety z klienta do jiného klienta procházejí vrstvou IP hostitele (iptables, směrovací tabulka atd.) počítače hostujícího server VPN:pokud je povoleno předávání IP , hostitel může přeposlat paket (pomocí své směrovací tabulky) znovu do rozhraní TUN a démon VPN předá paket správnému klientovi v tunelu.
.-------------------.
| 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 |
'----------------' '----------------'
V tomto případě (client-to-client
vypnuto), můžete blokovat pakety klient-klient pomocí iptables:
iptables -A FORWARD -i tun0 -o tun0 -j DROP
kde tun0
je vaše rozhraní VPN.
Řešení 2:
Musíte udělat víc než jen komentovat směrnici, jak je uvedeno zde:
Odkomentujte tuto direktivu, aby se různí klienti mohli navzájem „vidět“. Ve výchozím nastavení klienti uvidí pouze server.Chcete-li přinutit klienty, aby viděli pouze server, budete také muset vhodně zablokovat TUN/TAP serveru rozhraní.
Proto můžete pro každého klienta nakonfigurovat samostatnou politiku IP adresy. Viz část Konfigurace pravidel a zásad přístupu pro konkrétního klienta zde:https://openvpn.net/index.php/open-source/documentation/howto.html.a zde:https://www.sbarjatiya.com/notes_wiki/index.php/Configuring_separate_IP_and_firewall_rule_for_each_openvpn_client.
Řešení 3:
Další odstavec manuálové stránky pro openvpn
odpovídá na tuto otázku, i když to při prvním čtení nemusí být jasné:
Vzhledem k tomu, že režim serveru OpenVPN zpracovává více klientů prostřednictvím jediného rozhraní tuning nebo tap, je to ve skutečnosti router.
--client-to-client
příznak říká OpenVPN, aby interně směrovala provoz z klienta na klienta, místo aby tlačila veškerý provoz pocházející z klienta do rozhraní TUN/TAP.Při použití této možnosti každý klient „vidí“ ostatní klienty, kteří jsou aktuálně připojeni. Jinak každý klient uvidí pouze server. Tuto možnost nepoužívejte, pokud chcete tunelovat provoz brány firewall pomocí vlastních pravidel pro každého klienta.
client-to-client
volba zkratuje normální směrovací tabulky na serveru. Jeho odstranění nezabrání klientům používat směrovací tabulky serveru. Pokud tyto směrovací tabulky – a konfigurace brány firewall serveru – umožní klientům, aby se navzájem viděli, budou tak moci učinit.