Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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