Ich verwende ein VPN nur, um eine dedizierte/statische IP zu erhalten (weil mein Heimnetzwerk aufgrund seines Kabels eine dynamische IP hat). Es ist mir egal, meine Identität zu verbergen usw. Ich habe das VPN auf meinem Router mit der Tomato-Firmware eingerichtet und verwende den OpenVPN-Client.
Ich möchte, dass der Datenverkehr, wenn er über die IP-Adresse des VPNs eingeht und auf meinen Router trifft, je nachdem, von welcher IP-Adresse der Datenverkehr kam, an ein bestimmtes Gerät in meinem Heimnetzwerk umgeleitet wird. Jedem Gerät in meinem Netzwerk ist eine statische IP-Adresse zugewiesen, und in der Vergangenheit habe ich ein anderes VPN verwendet, das PPTP verwendete, und das hat einfach funktioniert. Beispielsweise funktionierten die normalen Portweiterleitungsregeln von Tomato perfekt, und je nachdem, woher der Datenverkehr kam, wurde er automatisch an das richtige Gerät weitergeleitet, das mit meinem Router verbunden war.
Da ich jetzt jedoch ein VPN verwende, das OpenVPN statt PPTP verwendet, scheinen die Portweiterleitungsregeln in Tomato nicht mehr zu funktionieren. Ich kann nicht herausfinden, wie ich den Datenverkehr basierend auf der Portnummer und der IP, die die Anfrage gesendet hat, an das richtige Gerät in meinem Heimnetzwerk sende. Mir ist auf der Einrichtungsseite des OpenVPN-Clients in Tomato die Registerkarte „Routing-Richtlinie“ aufgefallen, aber das ergibt für mich keinen Sinn.
Muss ich irgendwo in Tomato eine Art Skript hinzufügen? Irgendeine iptables-Regel oder so? Es scheint seltsam, dass ich nicht einfach die Konfigurationsseite für die Portweiterleitung in Tomato verwenden kann. Oder muss ich einfach einige der Optionen auf der Konfigurationsseite des OpenVPN-Clients aktivieren/deaktivieren? Ich bin überfordert, jeder Rat wäre willkommen.
Antwort1
Ich denke meinFrage auf Redditkönnte dir helfen.
Ich werde es hier duplizieren:
Nachdem wir also mit demVerband, der das VPN bereitstellt, kamen wir zu der folgenden Lösung.
192.168.1.1
ist die Standard-IP des Routers, die geändert werden kann inhttp://192.168.1.1/basic-network.asp.YYY.YYY.YYY.YYY
ist die IP des VPN-Tunnels.
Um ein benutzerdefiniertes Skript zu speichern, das ausgeführt wird, wenn das VPN aktiv (gestartet) ist, aktivieren Sie JFFS im Browser unterhttp://192.168.1.1/admin-jffs2.asp. Speichern Sie die Einstellungen und einige Dienste werden neu gestartet (/jffs/ wird gemountet).
Telnet in Ihrem Router:
telnet 192.168.1.1
Melden Sie sich mit
root
dem Passwort an, das Sie normalerweise für den Zugriff auf Tomato verwenden.Erstellen und bearbeiten Sie ein Skript in /jffs/:
vi /jffs/vpnup.sh
Fügen Sie dem Skript Folgendes hinzu:
#!/bin/sh # Script to be run when the VPN is brought up # Use the VPN to route all packets through the tunnel. iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d YYY.YYY.YYY.YYY -j WANPREROUTING # Apply the port forwarding rules to the tunnel. iptables -I FORWARD 1 -i tun11 -s 0.0.0.0/0 -d 0.0.0.0/0 -m state --state NEW -j wanin
Speichern und beenden Sie vi, indem Sie
Esc
,:
,w
,q
, und dann eingebenEnter
.Machen Sie das Skript nur für den Root-Benutzer lesbar und ausführbar:
chmod 700 /jffs/vpnup.sh
Beenden Sie die Telnet-Sitzung:
exit
Fügen Sie die folgende Zeile zum Formular-Steuerelement „Benutzerdefinierte Konfiguration“ unterhttp://192.168.1.1/vpn-client.asp, auf der Registerkarte „Erweitert“:
up /jffs/vpnup.sh
Speichern Sie die Einstellungen.
Starten Sie Ihr VPN (neu).
Bei jedem Start des VPN sollten die iptables jetzt aktualisiert werden, um den gesamten Datenverkehr durch das VPN zu leiten und die Portweiterleitungsregeln auf dessen Tunnel anzuwenden.
Einige nützliche Befehle zum Debuggen:
ip addr show
(auf derRouter)ip route show
(auf derRouter)iptables -nvL
(auf derRouter)iptables -t nat -nvL
(auf derRouter)tcpdump -ni any port 80
(auf derServer)
Ich hoffe, das hilft oder wird helfen.