Wie kann ich sicherstellen, dass alle Netzwerke über meinen SSH-Proxy laufen?

Ich habe einen Netzwerkstandort eingerichtet, um per SSH-Tunnel zu meinem Server zu gelangen. Im Moment nur ssh -D Typ Zeug. Das funktioniert gut. Ich habe den Tunnel in meiner .screenrc eingerichtet. Mit anderen Worten, "Bildschirm" ist der Auslöser, um eine Verbindung zu meinem Proxy herzustellen. Bevor ich das schreibe, sollte ich nicht online gehen können. Lynx und Ping gehen aber ohne Probleme durch. Tunnel oder nicht. Das ist beunruhigend.

Wie kann ich sicherstellen, dass der gesamte Netzwerkverkehr meine Netzwerkeinstellungen verwendet und nicht seine eigenen? Der einzige Weg, wie Pakete gehen sollten, ist über meinen DynamicForward-Port.

BEARBEITEN: Die Apple-Spezifität kommt mit den Netzwerkeinstellungen, auf die entweder über die Systemeinstellungen oder über das Netzwerksetup zugegriffen wird.

OS X hat sowohl ipfw als auch die Firewall auf Anwendungsebene.

Die Appfirewall scheint das Ausgehen nicht zu verhindern. Es stoppt Verbindungen zum System.

Ipfw hat anscheinend Vorrang vor der Anwendungsfirewall.

Mein SOCKS5-Proxy wird auf einem Port eingerichtet, und ich gebe diesen Port dann an einem Netzwerkstandort als SOCKS5-Proxy weiter. Das funktioniert gut. Aus meiner Sicht sollten Programme keine Wahl haben, den Proxy zu verwenden, und tatsächlich können Browser nicht auf das Web zugreifen, wenn ich ihn ausschalte.

Linux und *BSDs haben nicht die verschiedenen (ziemlich raffinierten) Dinge, die OSX in dieser Hinsicht hat. Für sie wären es ipchains bzw. ipfw.

Ich glaube, ich vermisse etwas. Es sollte einfach funktionieren.

können Sie auf der Ebene Ihres Routers filtern?
Außerdem haben Sie mit dieser Frage möglicherweise eine bessere Chance auf unix.se, superuser oder serverfault. Es ist nicht wirklich apfelspezifisch, daher würde ich tatsächlich vorschlagen, dass dies eine Frage außerhalb des Themas / außerhalb des Geltungsbereichs ist. Die enge Abstimmung ist jedoch aufgrund des offenen Kopfgelds deaktiviert.
@calavera Ich stimme zwar zu, dass er möglicherweise mehr Glück hat, auf einigen dieser Websites eine Antwort zu erhalten, und dass diese Frage nichts Apple- spezifisches ist, die von ihm erwähnten Programme (mit Ausnahme von Lynx) werden jedoch mit einem Mac geliefert, sodass dies nicht streng vom Thema abweicht .
@Kyle: Richtig, ich war meistens besorgt darüber, ob er hier eine gute Antwort bekommen würde oder nicht. siehe bitte: meta.apple.stackexchange.com/questions/176/…
@calavera, ich verwende einen Airport Express-Router.
Die Lösung heißt hier ipfw. Keine andere Möglichkeit, dem Ergebnis zu vertrauen.

Antworten (2)

Angenommen, es sshläuft auf localhost(oder einem anderen Rechner im lokalen Subnetz), ist es am einfachsten, Ihre Routen abzuschalten, damit nichts nach draußen gelangen kann. netstat -nrzeigt Ihnen Ihre aktuellen Routen. Meine sieht so aus:

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.0.69       UGSc       93     4438    en1

192.168.0.69ist meine Standardroute. Wenn ich diesen Weg nach draußen nehme: route delete default 192.168.0.69dann kann ich keine Maschine erreichen, die nicht mit meinem Netzwerk verbunden ist. Sobald screenSie Ihren Proxy eingerichtet haben, sollten Sie wieder Zugriff haben.

Beachten Sie, dass die Befehle unter Linux/Unix unterschiedlich sein können. OSX ist in diesem Bereich etwas anders.

Vielleicht möchten Sie einen Blick auf werfen, man networksetupum zu sehen, ob es Ihnen das geben könnte, wonach Sie suchen.

Dies ist wahrscheinlich eher ein Kommentar als eine Antwort.
Ich wusste von Networksetup ... kniffliges Problem, Networksetup scheint jedoch eine Befehlszeilenschnittstelle für ähnliche Funktionen wie die GUI zu sein. Ich muss opensnoop ausführen, um sicherzugehen, dass das Ausführen von Zeichenfolgen impliziert, dass es sich um eine Ebene über dem "Kill Switch" handelt, diese Route ist.