Проблема CNTLM с интранетом (возможно, DNS)
На моем компьютере с Linux мне нужно использовать ISA-прокси, который требует аутентификации для доступа в Интернет. Поэтому я установил CNTLM и настроил его так, чтобы он указывал на адрес прокси-сервера и слушал порт 4321.
Затем я настроил свой дистрибутив GNOME для использования localhost:4321 в качестве глобального прокси для HTTP и HTTPS.
Результат: я могу подключиться к интернету. Я могу пропинговать IP-адреса интрасети, я получаю разрешение имен для сайтов интрасети, но я не могу пропинговать их или открыть любой сайт интрасети в браузере (настроенном для использования прокси-сервера распространения), если я не использую IP-адрес сайта.
Я попытался заблокировать диапазон IP-адресов интрасети в конфигурационном файле CNTLM без удачи.
1 ответ
Похоже, что прокси-сервер ISA неправильно разрешает имена хостов в интрасети. Одним из решений является написание файла автоматической настройки прокси, который сообщает клиенту, когда и какой прокси использовать. Это не работает с программами CLI, которые используют http_proxy
, но по крайней мере будет работать в браузерах.
Сохраните это в файл как ~/proxy.pac
и изменить в соответствии с вашей средой. В конфигурации прокси GNOME выберите опцию "Автоматическая настройка прокси" и введите местоположение этого файла как file://
URL, например file:///home/htorque/proxy.pac
,
function FindProxyForURL(url, host)
{
// Strip port number
host = host.replace(/:\d*/, "");
// Local destinations
if ( isPlainHostName(host) ||
dnsDomainIs(host, ".local") ||
dnsDomainIs(host, ".mycompany") ||
shExpMatch(host, "127.*.*.*") ||
shExpMatch(host, "10.*.*.*") ||
shExpMatch(host, "192.168.*.*") )
return "DIRECT";
// External destinations
return "PROXY localhost:3128";
}