Linux-Unterstützung für Proxy-PAC-Dateien

9

Meine Unternehmensumgebung ist mit einem Proxy eingerichtet, der den externen Internetzugang blockiert und eine NTLM-Authentifizierung erfordert. Interne Adressen werden nicht als Proxy weitergeleitet und müssen direkt aufgerufen werden.

Ich versuche, einen Linux-Computer in dieser Umgebung (normalerweise ausschließlich Windows) einzurichten und habe Befehlszeilentools, die einen externen Internetzugang benötigen. Ich habe NTLMaps gefunden, das sich hervorragend für die Authentifizierung beim Proxy eignet. Das Problem besteht jedoch jetzt darin, dass ich die Umgebungsvariable HTTP_PROXY von Linux festlege, mit der viele Programme den Proxy bestimmen. Sie verwenden immer den Proxyserver. Stattdessen müssen sie Proxy / DIRECT-Verbindungen verwenden, die auf der PAC-Datei basieren.

Die sehr, sehr manuelle Lösung besteht darin, die Umgebungsvariable HTTP_PROXY zu löschen, wenn ich auf das Intranet zugreifen möchte, und sie auszufüllen, wenn ich auf das Internet zugreifen möchte - aber das ist ein Schmerz.

Kennt jemand einen Weg, dies zu tun? (Globale .pac-Einstellung für Linux usw.)

Joe Schneider
quelle

Antworten:

11

Die Unterstützung für die automatische Proxy-Konfiguration unter Windows scheint so "nahtlos" zu sein, da sie vom WinHTTP-Client implementiert wird, der in einer DLL gespeichert ist, auf die alle Anwendungen mit einer öffentlichen API zugreifen können. Viele Anwendungen verwenden WinHTTP und erhalten die Proxy-Autokonfiguration "kostenlos".

In der Linux-Welt führt jede Anwendung normalerweise ihre eigenen Socket-Aufrufe durch und verwendet ihre eigene Implementierung des HTTP-Protokolls. Es gibt HTTP-Bibliotheken, aber im Vergleich zu Windows ist es viel wahrscheinlicher, dass Anwendungen HTTP selbst ausführen und wahrscheinlich keinen Javascript-Interpreter haben, der für die Verarbeitung einer Proxy-Autokonfigurationsdatei erforderlich ist.

Sie können einen lokalen Proxyserver auf dem Linux-Computer ausführen, sich systemweit als HTTP_PROXY angeben und dann diesen lokalen Proxyserver mit den erforderlichen Regeln für den direkten Zugriff auf einige Sites konfigurieren, anstatt den Unternehmensproxy als übergeordnetes Element zu verwenden.

Tintenfisch könnte tun, was Sie wollen, aber es ist ziemlich schwer. Ich habe gerade dieses interessante Tinyproxy-Projekt gefunden , und es sieht auf jeden Fall vielversprechend aus (ermöglicht die selektive Verwendung eines Upstream-Proxys nach Domain, sehr leicht usw.), aber ich habe es nie persönlich verwendet und weiß nichts darüber. (Theoretisch könnte man tinyproxy so ändern, dass die Autokonfigurationsdatei des Proxys tatsächlich analysiert wird. Das wäre ein wirklich guter Trick, aber ich habe keine Zeit, daran zu arbeiten ...)

Evan Anderson
quelle