Hier ist die grundlegende Konfiguration dessen, was ich versuche zu tun:
Client (beliebige Maschine) ---> VPN-Client (Raspberry Pi) ---> OpenVPN-Server ---> Internet
Der VPN-Client (Rpi) verwendet möglicherweise ein nicht vertrauenswürdiges Netzwerk, aber in diesem Fall möchte ich den gesamten Datenverkehr aus dem Internet über Port 4443 zurück an den Client weiterleiten, damit der Client antwortet.
Bei mir funktioniert alles andere ordnungsgemäß – der Client stellt eine Verbindung zum Pi her und scheint erfolgreich Teil des von mir erstellten VPN zu sein, aber ich kann den Rückpfad auf keinen Fall herausfinden.
Danke!
Antwort1
Um Ihre Frage konkret beantworten zu können, fehlen mir einige Informationen, aber ich werde versuchen, einige Dinge herauszufinden, um Ihnen weiterzuhelfen.
[...] Ich möchte den gesamten Datenverkehr aus dem Internet über Port 4443 zurück an den Client weiterleiten, damit der Client antwortet.
Sie können keine anderen Daten an einen Port weiterleiten, der keinen geeigneten Dienst für die Daten hat.
VPN funktioniert, indem ein virtuelles Netzwerk erstellt wird, das virtuelle Netzwerkschnittstellen enthält. Damit die virtuelle Netzwerkschnittstelle funktioniert, muss eine VPN-Software ausgeführt werden (Client oder Server). Wenn die VPN-Software Daten/Pakete von der virtuellen Netzwerkschnittstelle empfängt, werden die Daten neu verpackt und traditionell verschlüsselt und dann vom physischen Netzwerk übertragen, und umgekehrt, wenn Daten empfangen werden.
Physical Ethernet
sind WAN-Schnittstellen.
Aufgrund der VPN-Eigenschaften erhalten Sie zwei Netzwerke. Ein physikalisches und ein virtuelles, jedes mit einer eigenen IP-Adresse. Mit diesen Netzwerken können Sie alle üblichen Dinge tun, die Sie mit einem Netzwerk tun können.
Client (beliebige Maschine) ---> VPN-Client (Raspberry Pi) ---> OpenVPN-Server ---> Internet
Das Physical Ethernet
und Physical Ethernet 0
ist eine WAN-Schnittstelle. Das Physical Ethernet 1
dient zur Verbindung mit dem Client (machine)
.
Client (machine)
Ich gehe davon aus, dass Sie für die Verbindung ein Ethernet-Kabel verwenden VPN Client (Raspberry Pi)
und dass Sie iptables auf dem Raspberry Pi haben ...
Physical Ethernet 1
Um die NAT-Weiterleitung zwischen den beiden Netzwerken und einzurichten Virtuel Ethernet
, gehe ich davon aus, dass das Physical Ethernet 1
den Namen eth0 und das Virtuel Ethernet
den Namen tun0 hat.
# Set default policies
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# NAT
iptables -A POSTROUTING -o tun0 -j MASQUERADE # Enable NAT
# Forwarding
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT # Allow forwarding from client to vpn
iptables -A FORWARD -i eth0 -o eth0 -j ACCEPT # Allow forwarding from client to client
iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT # Allow forwarding from vpn to client, for already established connections
Siehe auchSo konfigurieren Sie einen einfachen Router mit iptables in Ubuntu
Ich weiß nicht, welches Betriebssystem Sie auf dem Computer mit dem VPN-Server verwenden. Ich kann daher nicht näher darauf eingehen, wie Sie NAT weiterleiten ...
Antwort2
Ich habe es tatsächlich herausgefunden!
Ich habe einen ganzen Beitrag darüber geschrieben, wie das geht -https://virtualprivatepi.com/diy/