OS X OpenVPN-Paketfilterung

454
alex-phillips

Ich habe derzeit eine OpenVPN-Verbindung auf meinem Mac. Standardmäßig wird der gesamte Netzwerkverkehr derzeit über diese Verbindung geleitet: http, ssh usw. Ich versuche, Paketfilterkonfigurationen zu verwenden, um sicherzustellen, dass bestimmter Verkehr meine standardmäßige "öffentliche" Verbindung durchläuft, aber ich kann nicht scheinen um das zum Laufen zu bringen. Ich kann es falsch konfigurieren, aber unten ist was ich habe. Ich erhalte keine Fehlermeldung pfctlüber meine Konfiguration, aber wenn ich curl http://ipecho.net/plain, wird die VPN-IP-Adresse anstelle meiner öffentlichen IP- Adresse angezeigt.

Hinweis: Meine publicSchnittstelle ist eine Ethernet-Verbindung (en0). Soweit ich das beurteilen kann, ist bei utun0 meine OpenVPN-Verbindung in aufgeführt ifconfig.

pass out on en0 proto tcp from en0 to any port 80 flags S/SA keep state

Gleiches mit SSH.

pass out on en0 proto tcp from en to any port 22 flags S/SA keep state

Ich sollte erwähnen, dass ich den OpenVPN-Server nicht verwalte.

0
Die Tatsache, dass Sie den OpenVPN-Server nicht verwalten, ist für meine Antwort irrelevant: Die vier hinzuzufügenden Zeilen müssen der ** Client ** Conf-Datei hinzugefügt werden, ** nicht ** der Server-Conf-Datei. MariusMatutiae vor 8 Jahren 0
D'oh, mein Schlechter. Werde das beim Versuch geben. Vielen Dank! alex-phillips vor 8 Jahren 0

1 Antwort auf die Frage

0
MariusMatutiae

Ich gehe davon aus, dass das, was Sie für OpenVPN verwenden, nur Zugriff auf Ihr Heim-LAN ist. Wenn dies tatsächlich der Fall ist, gibt es mehrere Möglichkeiten, das Übliche außer Kraft zu setzen

 push "redirect-gateway def1" 

Einstellung in der server.conf. Sie finden sie auf dieser OpenVPN-Wiki-Seite beschrieben . Die einfachste davon ist, diese vier Zeilen zu Ihrer Client-Konfigurationsdatei hinzuzufügen:

 route 0.0.0.0 192.0.0.0 net_gateway route 64.0.0.0 192.0.0.0 net_gateway route 128.0.0.0 192.0.0.0 net_gateway route 192.0.0.0 192.0.0.0 net_gateway 

Das Wiki sagt ausdrücklich:

Beachten Sie, dass net_gateway eine interne Variable für openvpn ist und nicht geändert werden muss

und noch besorgniserregender sagt, dass diese vier Linien funktionieren werden ...

Wenn Sie nicht wissen, ob Ihr Server def1 verwendet und Sie die Protokolle nicht überprüfen möchten, gehen Sie einfach davon aus, dass sie def1 verwenden und die 4 Routen verwenden. Das wird auf jeden Fall funktionieren.

Sorry, ich hätte erwähnen sollen, dass dies kein OpenVPN-Server ist, den ich verwalte. In der Client-Konfiguration gibt es eine Möglichkeit, zu bestimmen, welcher Verkehr geroutet wird, aber in meiner Client-Konfiguration gibt es nicht viel. alex-phillips vor 8 Jahren 0
Es hat funktioniert, ich werde die Antwort als korrekt kennzeichnen. Könnten Sie mir einen Einblick geben, wie Sie einen bestimmten Portverkehr oder ein Protokoll über das VPN senden, nachdem diese Konfiguration geändert wurde? Wäre das etwas für die Paketfilterung? alex-phillips vor 8 Jahren 0
Leider ist dies nicht in Unix möglich. Dies ist nur unter Linux möglich, da zwei Funktionen (Quellrouting und Netzwerk-Namespaces) vorhanden sind, die weder in Unix noch in Windows-Kerneln analog sind. Paketfilterung ist zum Beispiel das Senden aller Pakete, die an einem bestimmten Port an eine bestimmte Adresse gelangen, nicht durch diesen ** geleitet. Am besten richten Sie eine virtuelle Maschine ein, die Sie dann über das VPN routen können (oder nicht). Sie können dann den Host nicht über OpenVPN und den Gast über das VPN (oder umgekehrt) weiterleiten lassen und Apps entsprechend den Routinganforderungen starten. MariusMatutiae vor 8 Jahren 0