JackCarver
Well-known Member
Du willst Erklärungen warum etwas unsauber funktioniert, kannst aber selbst nicht erklären, dass es definitiv sauber funktioniert. Das ist etwas einseitig und unsauberes diskutieren. Sie's drum, ich versuch dir nochmal das Problem anhand von Linux zu erklären, denn dort kommt man deinem Wunsch mit Bordmitteln sehr nahe. Es wird unter Windows nicht anders sein, ich vermute eher sogar schwerer als unter Linux.
Zur Technik des Routings am VPN vorbei:
Es gibt hier die Möglichkeit zb spezifischere Routen zu definieren, genau das macht übrigens OpenVPN, dass der Traffic komplett über VPN geht. Wenn ich also ein Teilnetz im Internet kenne, das an VPN vorbei soll, dann kann ich eine spezifischere Route in dieses Netz über den Standardadapter definieren, die die Route durch das VPN überstimmt. Der Traffic geht also am VPN vorbei.
Jetzt kommen die ersten Hürden an deinem Wunsch:
Man hat jetzt eine App, zb den Webbrowser A. Dessen Traffic soll komplett am VPN vorbei. Obige Lösung kann hier nicht mehr funktionieren, weil ich kein spezielles Netz kenne, das ich als spezifischere Route definieren könnte. Was ich jetzt brauche sind mehrere Routing Tabellen, die nebenher existieren. Ob das unter Win überhaupt geht, zumindest unter einer nicht Server-Version ist bereits äusserst fraglich...
Hab ich diese zweite Routing Tabelle, so muss ich dort wiederum Routen anlegen, für unseren Fall einfach ne default Route ins Internet über den Standard Adapter, also am VPN vorbei.
Das allein langt aber nicht, ich brauch auch ne Regel, welche Pakete genau diese Routing Tabelle verwenden sollen, nämlich ausschließlich die Pakete, die von Webbrowser A kommen.
Das nennt man unter Linux policy based Routing, auch hier ist zweifelhaft ob es das unter ner Zocker-Win Version überhaupt gibt, oder erst ab ner Serverversion, die wiederum nicht zum Zocken taugt...
Zuletzt brauch ich noch etwas, das diese Pakete auch entsprechend markieren kann, unter Linux machen das die iptables.
Nun ne weitere Hürde:
Wie markiere ich nun Pakete, die von Webbrowser A kommen? Programmnamen oder Pfade dazu verwenden ist viel zu unsicher, da sich das mal schnell ändern kann. Also brauch ich was anderes. Linux geht den Weg der Prozess-ID, da alle Prozesse auf einem System eindeutige IDs haben. Aber auch das ist aus folgendem Grund umstritten:
Ein Prozess kann Kindprozesse erzeugen, wiederum mit anderer PID, die aber im weiteren Sinne zu diesem Prozess gehören. Pakete davon würden bereits wieder nicht markiert und gingen durch VPN hindurch, also auch sehr schwammig das ganze. Es funktioniert im weiteren Sinne aber es ist nicht gesagt, dass es zu 100% funktioniert und das ist unsauber!
Ebenso halte ich nicht viel von Application Firewalls. Ne saubere Firewall blockt portbasiert oder IP basiert, aber nicht applicationbasiert.
Wenn du nun noch etwas zu deinem NDIS Treiber lesen möchtest, dann guck einfach mal hier nach:
https://de.wikipedia.org/wiki/Network_Driver_Interface_Specification
Dort siehst du für was dieser eigentlich verwendet wird unter Win und das ist meilenweit von dem entfernt, was du eigentlich möchtest.
Sorry aber du diskutierst hier was alles machbar ist und umgesetzt werden muss, hast aber m.E, nicht allzuviel Hintergrundwissen dazu um das überhaupt einschätzen zu können.
Zur Technik des Routings am VPN vorbei:
Es gibt hier die Möglichkeit zb spezifischere Routen zu definieren, genau das macht übrigens OpenVPN, dass der Traffic komplett über VPN geht. Wenn ich also ein Teilnetz im Internet kenne, das an VPN vorbei soll, dann kann ich eine spezifischere Route in dieses Netz über den Standardadapter definieren, die die Route durch das VPN überstimmt. Der Traffic geht also am VPN vorbei.
Jetzt kommen die ersten Hürden an deinem Wunsch:
Man hat jetzt eine App, zb den Webbrowser A. Dessen Traffic soll komplett am VPN vorbei. Obige Lösung kann hier nicht mehr funktionieren, weil ich kein spezielles Netz kenne, das ich als spezifischere Route definieren könnte. Was ich jetzt brauche sind mehrere Routing Tabellen, die nebenher existieren. Ob das unter Win überhaupt geht, zumindest unter einer nicht Server-Version ist bereits äusserst fraglich...
Hab ich diese zweite Routing Tabelle, so muss ich dort wiederum Routen anlegen, für unseren Fall einfach ne default Route ins Internet über den Standard Adapter, also am VPN vorbei.
Das allein langt aber nicht, ich brauch auch ne Regel, welche Pakete genau diese Routing Tabelle verwenden sollen, nämlich ausschließlich die Pakete, die von Webbrowser A kommen.
Das nennt man unter Linux policy based Routing, auch hier ist zweifelhaft ob es das unter ner Zocker-Win Version überhaupt gibt, oder erst ab ner Serverversion, die wiederum nicht zum Zocken taugt...
Zuletzt brauch ich noch etwas, das diese Pakete auch entsprechend markieren kann, unter Linux machen das die iptables.
Nun ne weitere Hürde:
Wie markiere ich nun Pakete, die von Webbrowser A kommen? Programmnamen oder Pfade dazu verwenden ist viel zu unsicher, da sich das mal schnell ändern kann. Also brauch ich was anderes. Linux geht den Weg der Prozess-ID, da alle Prozesse auf einem System eindeutige IDs haben. Aber auch das ist aus folgendem Grund umstritten:
Ein Prozess kann Kindprozesse erzeugen, wiederum mit anderer PID, die aber im weiteren Sinne zu diesem Prozess gehören. Pakete davon würden bereits wieder nicht markiert und gingen durch VPN hindurch, also auch sehr schwammig das ganze. Es funktioniert im weiteren Sinne aber es ist nicht gesagt, dass es zu 100% funktioniert und das ist unsauber!
Ebenso halte ich nicht viel von Application Firewalls. Ne saubere Firewall blockt portbasiert oder IP basiert, aber nicht applicationbasiert.
Wenn du nun noch etwas zu deinem NDIS Treiber lesen möchtest, dann guck einfach mal hier nach:
https://de.wikipedia.org/wiki/Network_Driver_Interface_Specification
Dort siehst du für was dieser eigentlich verwendet wird unter Win und das ist meilenweit von dem entfernt, was du eigentlich möchtest.
Sorry aber du diskutierst hier was alles machbar ist und umgesetzt werden muss, hast aber m.E, nicht allzuviel Hintergrundwissen dazu um das überhaupt einschätzen zu können.