Поддержка Linux для файлов прокси PAC

9

Моя корпоративная среда настроена с прокси, блокирующим внешний доступ в Интернет и требующим проверки подлинности NTLM. Внутренние адреса не будут маршрутизироваться через прокси-сервер и должны быть доступны напрямую.

Я пытаюсь настроить машину Linux в этой среде (которая обычно является исключительно Windows) и использовать инструменты командной строки, которым требуется внешний доступ в Интернет. Я обнаружил NTLMaps, которые отлично работали для аутентификации на прокси-сервере - однако проблема сейчас в том, что когда я устанавливаю переменную окружения HTTP_PROXY в Linux, которую многие программы используют для определения прокси-сервера, они всегда используют прокси-сервер. Вместо этого мне нужно, чтобы они использовали прокси / DIRECT соединения на основе файла PAC.

Самым ручным решением является очистка переменной среды HTTP_PROXY, когда я хочу получить доступ к интрасети, и ее заполнение, когда я хочу получить доступ к Интернету - но это проблема.

Кто-нибудь знает способ сделать это? (Глобальная настройка Linux .pac и т. Д.)

Джо Шнайдер
источник

Ответы:

11

Поддержка автоконфигурации прокси в Windows кажется «бесшовной», потому что она реализована клиентом WinHTTP, который хранится в DLL, доступной для всех приложений с общедоступным API. Многие приложения используют WinHTTP и получают прокси-автоконфигурацию «бесплатно».

В мире Linux каждое приложение обычно выполняет свои собственные вызовы сокетов и использует свою собственную реализацию протокола HTTP. Существуют HTTP-библиотеки, но, по сравнению с Windows, гораздо вероятнее, что приложения будут обрабатывать HTTP самостоятельно и, вероятно, не будут иметь интерпретатора Javascript, необходимого для обработки файла автоконфигурации прокси.

Возможно, вы захотите запустить локальный прокси-сервер на компьютере с Linux, указав себя как HTTP_PROXY для всей системы, а затем настроить этот локальный прокси-сервер с необходимыми правилами для доступа к некоторым сайтам напрямую, а не использовать корпоративный прокси в качестве родительского.

Squid может делать то, что вы хотите, но он довольно тяжелый. Я только что нашел этот интересный проект tinyproxy , и он, безусловно, выглядит многообещающе (позволяет выборочно использовать восходящий прокси по доменам, очень легкий и т. Д.), Но я никогда не использовал его лично и ничего о нем не знаю. (Теоретически, можно модифицировать tinyproxy для фактического разбора файла автоконфигурации прокси. Это был бы очень интересный трюк, хотя и не над чем у меня есть время поработать ...)

Эван Андерсон
источник