Как передать настройки прокси клиентам windows server

Протокол WPAD (Web Proxy Auto-Discovery Protocol) позволяет упростить настройку параметров прокси сервера в браузерах на клиентах в вашей сети. Идея WPAD в том,

Протокол WPAD (Web Proxy Auto-Discovery Protocol) позволяет упростить настройку параметров прокси сервера в браузерах на клиентах в вашей сети. Идея WPAD в том, что клиент сам обнаруживает (через DHCP или DNS) в вашей сети веб-сервер, где хранится конфигурационный файл с настройками прокси (
http://yourdomain/wpad.dat
).

Содержание:

  • Настройка параметров прокси в файле wpad.dat
  • Настройка WPAD записей в DHCP и DNS
  • Использование WPAD с настройками прокси в браузерах

Настройка параметров прокси в файле wpad.dat

Правила использования прокси описываются в специальном файле PAC-файле (Proxy Auto Configuration). PAC файл имеет предопределенное имя wpad.dat. В этом файле указываются правила, в которых указано, нужно ли клиенту использовать прокси сервер при подключении или обращаться к запрошенному ресурсу (HTTP, HTTPS или FTP) напрямую.

В файле wpad.dat использует синтаксис Java-script. Вы можете задать адрес прокси сервера по-умолчанию, а также различные исключения и правила, когда клиент должен использовать (или не использовать) подключение через прокси.

Рассмотрим простой примера синтаксиса файла wpad.dat:

function FindProxyForURL(url, host)
{
if (shExpMatch(host, "127.0.0.1" )) {return "DIRECT";}
if (shExpMatch(host, "*/localhost*" )) {return "DIRECT";}
if (isInNet(host, "192.0.0.0", "255.0.0.0")) {return "DIRECT";}
if (isInNet(host, "10.0.0.0", "255.0.0.0")) {return "DIRECT";}
//отдельный прокси для одной подсети:
if (isInNet(myIpAddress(), "172.10.30.0", "255.255.255.0"))
{return "PROXY prx2.winitpro.ru:8080";

}
if (dnsDomainIs(host, "*.corp.winitpro.ru")) {return "DIRECT";}
// Локальные адреса с которыми нужно работать напрямую.
if (
shExpMatch(url,"http://*.winitpro.ru") ||
shExpMatch(url,"https://*.winitpro.ru") ||
shExpMatch(url,"ftp://*.winitpro.ru")
)
return "DIRECT";
// Если URL не содержит точек в адресе, то работаем напрямую.
if (isPlainHostName(host)) {return "DIRECT";}
if (shExpMatch(host,"bank.example.com")) {return "DIRECT";}
//используем отдельный прокси для одного домена
if (shExpMatch(url,"*.sbis.ru*")){return "PROXY prx2.winitpro.ru:8080";}
//адрес прокси-сервера по-умолчанию
return "PROXY proxy.winitpro.ru:3128";
}

пример синтаксиса файла wpad.dat

PAC файл обычно состоит из одной функции
FindProxyForURL
, которая возвращает клиенту адрес прокси в зависимости от запрошенного URL адреса. В данном случае директива
return "DIRECT"
указывает, что для данных адресов и доменов нужно использовать прямое подключение (без прокси). Если сайт, к которому обращается клиент не подходит ни под одно из правил в файле WPAD, для доступа к нему используется прокси сервер
PROXY proxy.winitpro.ru:3128
.

В качестве прокси вы можете использовать любой из популярных прокси серверов, таких как squid или 3proxy.

PAC файл можно использовать в качестве средства простейшей фильтрации контента, чтобы запретить пользователям доступ к определенным сайтам или запретить обращаться к доменам с рекламой.

proxy_empty = "PROXY 127.0.0.1:3128"; // ссылка на несуществующий прокси
if ( shExpMatch(url,"*://twitter.com/*")) { return proxy_empty; }
if ( shExpMatch(url,"*://spam.*")) { return proxy_empty; }
if ( shExpMatch(url,"*doubleclick.net/*")) { return proxy_empty; }

В различных версиях ОС есть ограничения на максимальный размер PAC-файла. Для Windows – не превышайте размер 1 Мб.

Нужно разместить файл wpad.dat на HTTP веб сервере в локальной сети, который будет доступен для чтения всем пользователям. Можно использовать веб сервер на Linux (nginx, apache, lighttpd) или Windows (IIS, или даже простейший веб сервер на PowerShell).

В нашем примере я опубликую файл wpad.dat на веб сервере IIS на контроллере домена. Скопируйте файл wpad.dat в каталог C:inetpubwwwroot.

Если в вашей сети используются недоменные клиенты, нужно предоставить права на чтение каталога в IIS для «IUSR» и «IIS APPPOOLDefaultAppPool.

Запустите консоли IIS Manager, в настройках сайта IIS выберите раздел MIME Types и добавьте новый тип:

  • File name extension:
    .dat
  • MIME type:
    application/x-ns-proxy-autoconfig

добавить dat файлы в IIS

Перезапустите IIS.

Настройка WPAD записей в DHCP и DNS

Теперь нужно настроить сервера DHCP и DNS записи обнаружения PAC файла клиентами.

Если у вас используется сервер DHCP, можно задать адрес WPAD для клиентов с помощью опции 252.

В нашем примере для DHCP на Windows Server:

  1. Запустите консоль
    dhcpmgmt.msc
    , щелкните по разделу IPv4 и выберите опцию Set Predefined Options;
  2. Нажмите кнопку Add и добавьте запись с параметрами:Name:
    WPAD

    Data type:
    string

    Code:
    252
  3. Нажмите OK и укажите адрес вашего WPAD сервера (http://wpad.winitpro.ru); настройка WPAD в DHCP
  4. Затем откройте параметры DHCP области Scope Options и включите для нее опцию 252 WPAD (или настройте этот параметр в разделе Server Options). настройка опции 252 wpad в dhcp

Теперь нужно создать DNS записи типа A или CNAME для имени wpad в вашем домене.

Если у вас используется Active Directory, обратите внимание, что сервер Microsoft DNS по умолчанию блокирует использование имен wpad и isatap. Можете проверить это, выполнив команду:

dnscmd msk-dc02 /info /globalqueryblocklist

microsoft dns блокирует записи wpad и isatap по умолчанию

Чтобы разрешить использование этих имен в DNS, нужно выполнить команду:

dnscmd msk-dc02 /config /enableglobalqueryblocklist 0

Можно очистить этот список:

dnscmd /config /globalqueryblocklist

И добавить запись для isatap:

dnscmd /config /globalqueryblocklist isatap

Эти изменения нужно внести на всех DNS серверах.

Теперь создайте A запись с именем wpad, которая указывает на ваш веб-сервер, где находится WPAD файл. Можно создать A запись вручную через консоль DNS Manager (dnsmgmt.msc) или воспользоваться PowerShell командлетом Add-DnsServerResourceRecordA:

Add-DnsServerResourceRecordA -Name wpad -IPv4Address 192.168.13.10 -ZoneName resource.loc -TimeToLive 01:00:00

wpad запись в dns

Использование WPAD с настройками прокси в браузерах

Теперь нужно настроить браузеры, чтобы при старте они автоматически получали PAC файл с настройками. Для этого в параметрах IE или в настройках прокси в Windows в панели Параметры (команда быстрого доступа
ms-settings:network-proxy
) должна быть включена опцию Automatic Detect Settings (Tools > Internet Options > Connections > LAN Settings).

автоматически определять параметры покдлчения прокси в браузере

Можно централизованно включи эту опцию с помощью групповой политики User Configuration -> Preferences -> Control Panel Settings -> Internet Settings –> New -> Internet Explorer 10.

Включить автоопределение прокси через GPO

Теперь браузеры на клиентских устройствах при загрузке будут искать wpad запись в DNS (или получат ее от DHCP). Если в сети найдет сервер с WPAD, браузер клиента скачает файл
http://wpad.%domain%/wpad.dat
, выполнит код JavaScript и применит правила прокси-сервера из PAC файла.

Windows например выполняет поиск имени wpad сначала по DNS, затем через Link-Local Multicast Name Resolution (LLMNR) и затем через NetBIOS (NBNS). Если LLMNR и NetBIOS отключены, используется только DNS поиск.

Вы можете проверить, что браузер использует PAC файл при доступе в интернет (для веб браузеров на движке Chromium: Google Chrome, Opera, Microsoft Edge):

  1. Откройте браузер и перейдите на
    chrome://net-export/
  2. Выберите опцию Strip private information и нажмите кнопку Start Logging to Disk; включить логирование в браузере chrome
  3. Затем укажите имя json файла для сохранения данных;
  4. Нажмите Stop Logging;
  5. Откройте полученный json файл с помощью любого текстового редактора и выполните поиск по ключу
    proxySettings
    . В нашем примере видно, что браузер использует настройки прокси из wpad.dat:

    "proxySettings":{"effective":{"pac_url":"http://wpad/wpad.dat"},"original":{"auto_detect":true,"from_system":true}}

проверить pac_url в proxysettings браузера

Если вы хотите запретить использовать WPAD на компьютере Windows, нужно создать параметр Dword параметр с именем DisableWpad и значением 1 в ветке
HKLMSOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsWinHttp
.

Настройка параметров прокси через файл WPAD (PAC) позволяет добавить гибкость, недоступные при настройке параметров прокси в Windows через GPO. Кроме того, WPAD поддерживается не только на Windows, но и на Linux, MacOS и мобильных устройствах.

wpad-pac-000.pngЕсли автоматическая настройка сетевых параметров сегодня стала «нормой жизни» даже в небольших сетях, то автоматическое получение настроек прокси-сервера по-прежнему вызывает некоторые затруднения. Для этих целей существует протокол автоматической настройки прокси — WPAD, который позволяет достаточно гибко управлять трафиком и избежать необходимости настраивать браузеры и иное сетевое ПО вручную.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Протокол WPAD

Прежде всего немного теории. Давайте разберемся, как работает протокол и какие сетевые службы нужны для этого.

Автоматическая настройка системы на работу с прокси-сервером производится специальным набором инструкций на JavaScript, который называется PAC-файл (Proxy Auto Configuration), для нахождения его расположения в локальной сети используется протокол WPAD (Web Proxy Auto-Discovery Protocol).

Рассмотрим следующую схему:

wpad-pac-001.pngПолучив запрос от пользователя браузер пытается найти расположение PAC-скрипта используя различные сетевые механизмы. В первую очередь отправляется DHCP-запрос, ответ на который должен содержать URL PAC-файла в специальном поле ответа, для этого используется опция 252 протокола DHCP.

Если в ответе DHCP-сервера искомый адрес не найден, то посылается DNS-запрос для хоста wpad в текущем домене. Некоторые браузеры, например, Firefox, не используют DHCP-запросы, а сразу обращаются к DNS. С механизмом поиска службы WPAD через DNS связана одна серьезная уязвимость. Если в текущем домене хост с именем wpad не найден, то поиск будет произведен в вышестоящем домене, при этом выход за пределы домена организации никак не контролируется.

Что это значит? Допустим клиент расположен в домене office.spb.example.com, то поочередно будет произведен поиск следующих хостов:

  • wpad.office.spb.example.com
  • wpad.spb.example.com
  • wpad.example.com
  • wpad.com

Пользуясь этим, злоумышленники могут расположить PAC-файл по адресу за пределами домена предприятия и направить весь трафик на свои прокси сервера, в том числе и зашифрованный, в отношении которого можно осуществить атаку типа «человек посередине» с подменой сертификата.

В связи с этим DNS-сервер от Microsoft начиная с Windows Server 2008 содержит хост wpad в черном списке и не разрешает данное имя, даже если соответствующая запись на данном сервере существует.

В среде OC Windows, если предыдущие попытки не принесли результата, производится поиск хоста WPAD на WINS-сервере и посредством широковещательных протоколов LLMNR (Link-Local Multicast Name Resolution) и NBNS (NetBIOS Name Service).

После того, как расположение PAC-файла установлено, система делает попытку получить его из корневой директории веб-сервера по полученному через WPAD адресу, предопределенное имя PAC-файла — wpad.dat. Здесь таится еще одна тонкость. Разные браузеры по-разному формируют запрос к веб-серверу. Например, Firefox обращается по доменному имени — http://wpad.example.com/wpad.dat, а Internet Explorer использует для этого IP-адрес — http://192.168.0.100/wpad.dat.

Поэтому, если данный веб-сервер использует виртуальные хосты, хост wpad должен являться хостом по умолчанию (или корневым хостом), т.е. его содержимое должно отдаваться при обращении к данному серверу без указания имени хоста, просто по IP-адресу.

Также, в целях безопасности, PAC-файл не должен быть доступен за пределами локальной сети.

PAC-файл

Как мы уже упоминали, PAC-файл является JavaScript-скриптом, однако количество инструкций в нем жестко ограничено. Разберем некоторые из них.

isPlainHostName(host) — истина если host — «плоское» имя хоста, т.е. обычное NetBIOS-имя и т.п. Позволяет определять обращения к хостам локальной сети по простому имени.

dnsDomainIs(host, domain) — истина, если домен в запросе (host) совпадает с заданным в директиве domain.

isResolvable(host) — истина, если доменное имя удается разрешить. Данную инструкцию следует использовать осторожно, так как она делает дополнительный DNS-запрос, что может увеличить нагрузку на сервера и ухудшить время отклика.

isInNet(host, pattern, mask) — истина, если IP-адрес хоста совпадает с шаблоном, где pattern — шаблон сети, mask — маска. Например, 192.168.0.0, 255.255.255.0.

shExpMatch(str, shexp) — истина, если строка совпадает с шаблоном, в качестве строки можно использовать host или url, при этом следует помнить, что шаблон не является регулярным выражением.

Этих инструкций вполне достаточно, чтобы составить достаточно подробные и разветвленные правила для работы с прокси-сервером. Попробуем составить реальный сценарий.

Прежде всего укажем функцию:

function FindProxyForURL(url, host)
{
...
}

Данная функция получает от браузера URL и host из запроса и в ответ должна вернуть адрес прокси-сервера. Внутри фигурных скобок следует располагать инструкции и условия, в зависимости от выполнения которых браузеру будет возвращен тот или иной результат.

Начнем с того, что не следует направлять на прокси. Прежде всего это «плоские» имена, когда к какому-либо ресурсу пытаются обратиться по короткому имени, например, http://server, так как это однозначно ресурс локальной сети.

if (isPlainHostName(host)) {return "DIRECT";}

Согласно данной записи, если в поле host запроса содержится «плоское» имя, то возвращаем браузеру директиву DIRECT, что означает, что прокси-сервер для этого соединения использовать не следует.

Таким же образом предписываем обращаться напрямую по запросам с IP-адресами локальной сети:

if (isInNet(host, "192.168.31.0", "255.255.255.0")) {return "DIRECT";}

И локальным адресам:

if (shExpMatch(host, "127.0.0.1" )) {return "DIRECT";}
if (shExpMatch(host, "*/localhost*" )) {return "DIRECT";}

Кстати, первое правило можно переписать по-другому:

if (isInNet(host, "127.0.0.1", "255.255.255.255")) {return "DIRECT";}

В доменной сети также следует настроить прямое соединение для внутренних ресурсов:

if (dnsDomainIs(host, ".interface31.lab")) {return "DIRECT";}

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

Если ваш прокси не обрабатывает https запросы, то их тоже следует направить мимо, обратите внимание, что вместо host в данном правиле мы используем url:

if (shExpMatch(url, "https:*")) {return "DIRECT";}

Тоже самое следует сделать и для ftp запросов:

if (shExpMatch(url, "ftp:*")) {return "DIRECT";}

И наконец все, что не попало ни под одно правило отправляем на прокси:

return "PROXY srv-gw01.interface31.lab:3128";

Разобравшись с тем, как устроен PAC-файл перейдем к сценариям практической реализации служб WPAD в сети.

Сети Active Directory

Так как все наши статьи преемственны, то далее будет подразумеваться что WPAD настраивается для работы с роутером в сети Active Directory, описанного нами в цикле Настраиваем Squid для работы с Active Directory, таким образом данный материал может служить его логическим завершением.

Начнем с настройки DHCP, откроем соответствующую оснастку и перейдем к списку серверов, щелкните правой кнопкой мыши на пункт IPv4 и выберите Предопределенные параметры.

wpad-pac-002.pngВ открывшемся окне нажмите Добавить

wpad-pac-003.pngИ заполните поля следующим образом:

  • Имя — WPAD
  • Тип данных — строка
  • Код — 252

Затем нажмите ОК и в поле Значение — Строковое введите адрес расположения PAC-файла, в нашем случае это http://wpad.interface31.lab

wpad-pac-004.png

После чего перейдите в Область — Параметры области — Настроить параметры и добавьте созданную нами опцию WPAD.

wpad-pac-005.pngЕсли в вашей сети более одного DHCP-сервера, то аналогичные настройки нужно выполнить на каждом их них.

Следующим шагом будет настройка DNS, прежде всего откорректируем черный список, для этого на DNS-сервере откроем редактор реестра и перейдем в раздел:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDNSParameters

Откроем опцию GlobalQueryBlockList и удалим оттуда значение wpad, после чего службу DNS нужно перезапустить.

wpad-pac-006.pngДанную операцию следует выполнить на каждом DNS-сервере в вашей сети.

Затем добавьте запись типа A для хоста wpad, которая должна указывать на веб-сервер с PAC-файлом.

wpad-pac-007.png

Закончив настройки DHCP и DNS следует наконец установить на выбранный хост веб-сервер и разместить на нем wpad.dat. Никаких ограничений здесь нет, вы можете настроить любой веб-сервер на любом узле сети. В нашем случае напрашиваются два варианта: веб-сервер непосредственно на роутере, мы рекомендуем для этих целей простой и легкий lighttpd или веб-сервер на одном из контроллеров домена, в этом случае предпочтение следует отдать IIS.

В данной части статьи мы рассмотрим вариант с IIS, а к lighttpd вернемся чуть позже, когда будем говорить об одноранговых сетях. Мы не будем подробно останавливаться на установке роли Веб-сервер (IIS), достаточно просто пройти все шаги мастера со значениями по умолчанию.

wpad-pac-008.png

После установки роли перейдите в Диспетчер служб IIS — Сайты — Default Web Site в настройках которого выберите Типы MIME.

wpad-pac-009.pngДля правильной работы с PAC-файлом добавьте новый тип MIME, указав расширение .dat и тип MIME application/x-ns-proxy-autoconfig.

wpad-pac-010.pngВыполнив данную настройку не забудьте перезапустить веб-сервер и разместите в его корневой директории C:inetpubwwwroot файл wpad.dat.

Как правило, дальнейших действий не требуется. Internet Explorer и Edge по умолчанию имеют настройку автоматического определения настройки параметров прокси-сервера. Но можно подстраховаться и создать отдельную политику в GPO, для этого используйте Конфигурация пользователя — Настройка — Параметры панели управления — Параметры обозревателя.

wpad-pac-011.pngБраузеры на основе Google Chrome (в т.ч. Opera, Яндекс) используют настройки, заданные для IE. Проблемы, как всегда, возникают с Firefox, который с настройкой по умолчанию Использовать системные настройки прокси игнорирует их и ходит напрямую, поэтому данную опцию следует изменить на Автоматически определять настройки прокси для этой сети.

wpad-pac-012.pngОдноранговая сеть

В одноранговых сетях обычно применяются прозрачные прокси, не требующие настройки параметров браузера, однако в ряде случаев, например, для аутентификации, от прозрачности приходится отказываться, следовательно, возникает потребность в WPAD. Далее мы будем рассматривать настройку на примере роутера, настроенного по нашей статье: Ubuntu Server. Настраиваем роутер NAT + DHCP + Squid3.

Так как в большинстве случаев лишних серверов в небольших сетях нет, то все службы будем располагать в пределах роутера. DHCP и кэширующий DNS у нас уже есть, в виде пакета dnsmasq, а в качестве веб-сервера можно установить легковесный lighttpd. На первый взгляд все необходимое имеется и особых проблем возникнуть не должно.

А теперь вспомним, как происходит поиск PAC-файла. Если браузер не получил нужной опции по DHCP или не умеет ее получать, он делает DNS-запрос для хоста wpad в текущем домене. Мы специально выделили ключевой момент — в текущем домене. А какой текущий домен в одноранговой сети? Правильно, никакого…

Чтобы убедиться в этом, следует проверить DNS-суффикс текущего подключения. Для этого в консоли PowerShell выполните команду:

Get-DnsClient

Ниже показан вывод команды для одноранговой и доменной сетей, разница в отсутствии DNS-суффикса отлично видна «невооруженным глазом».

wpad-pac-013.pngЕсли все оставить как есть, то тот же Firefox не сможет получить настройки прокси и будет требовать ручного ввода параметров. Что делать? К счастью в протоколе DHCP есть опция 015, позволяющая передавать клиенту DNS-суффикс подключения.

Откроем /etc/dnsmasq.conf и последовательно изменим в нем следующие опции:

local=/interface31.local/

Данная опция указывает, что домен interface31.local — локальный и разрешать его имена на вышестоящих DNS-серверах не следует.

address=/wpad.interface31.local/192.168.31.1

Данная запись в формате dnsmasq является аналогом A-записи для хоста wpad, где 192.168.31.1 — адрес хоста, на котором будет расположен веб-сервер (в нашем случае это роутер).

domain=interface31.local

DNS-имя домена, передаваемое клиенту в опции 015 DHCP.

dhcp-option=252,http://wpad.interface31.local/wpad.dat

Задает расположение PAC-файла.

Перезапустим службу:

service dnsmasq restart

Теперь заново получим IP-адрес и снова проверим DNS-суффикс, также можно попробовать разрешить любое плоское имя (существующего хоста) командой nslookup.

wpad-pac-014.pngЕсли все сделано правильно — у подключения появится указанный нами суффикс, а плоские имена будут дополняться до FQDN. Теперь можно переходить к настройке веб-сервера.

Установим lighttpd:

apt-get install lighttpd

Затем откроем его конфигурационный файл /etc/lighttpd/lighttpd.conf и добавим туда опцию:

server.bind = "192.168.31.1"

Это ограничит работу веб-сервера только локальной сетью.

После чего следует убедиться, что в файле /etc/mime.types присутствует запись:

application/x-ns-proxy-autoconfig    pac dat

Если такой записи нет, то ее следует добавить.

Перезапустим веб-сервер:

service lighttpd restart

На этом настройка сервера закончена, осталось разместить PAC-файл в директории /var/www и проверить работу браузеров.

Поскольку одноранговая сеть не предоставляет таких возможностей по управлению клиентскими ПК как ActiveDirectory, то следует предпринять меры по предотвращению обхода прокси. Это можно сделать через iptables, запретив форвардинг пакетов с назначением на 80-й порт. Но лучше поступить иначе.

В /etc/nat добавим следующее правило:

# Запрещаем обход прокси
iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.31.0/24 -p tcp -m multiport --dport 80,8080,3128 -j REDIRECT --to-port 80

Данная конструкция перенаправит все запросы к веб-серверам или сторонним прокси на порт 80 нашего роутера, где работает собственный веб-сервер.

В конфигурацию lighttpd добавим опцию (не забудьте перезапустить веб-сервер):

server.error-handler-404 = "/index.html"

Теперь в /var/www создадим файл index.html со следующим содержимым:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h3>Ваш браузер настроен неправильно. Доступ запрещен!</h3>
<p>Обратитесь к системному администратору</p>
</body>
</html>

После чего при попытке обхода прокси пользователь увидит сообщение:

wpad-pac-015.pngВ качестве примера мы привели самый простой вариант странички запрета, вам же ничего не мешает сделать ее более информативной, например, разместив на ней краткие инструкции по самостоятельной настройке браузера.

Если вам нужно разрешить работу с некоторыми сайтами напрямую, минуя прокси, то перед запрещающим правилом добавьте:

iptables -t nat -A PREROUTING -i eth1 -d xxx.xxx.xxx.xxx -j ACCEPT

где xxx.xxx.xxx.xxx — IP-адрес требуемого ресурса.

Как видим, настроить автоматическое получение параметров прокси совсем несложно и можно эффективно применять данную технологию как в крупных, так и в небольших сетях.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

imageЕсли вы настраиваете параметры прокси сервера в веб-браузере Internet Explorer (IE) с помощью групповых политик, и тем более делаете это с запретом изменений настроек для пользователя, то рано или поздно может возникнуть ситуация, когда пользователь выехавший в командировку не сможет воспользоваться на служебном ноутбуке браузером для доступа в интернет где-нибудь в гостинице или аэропорте из-за невозможности отключения этих самых жёстко заданных настроек прокси.

Чтобы избежать подобной проблемы можно воспользоваться механизмом авто-настройки параметров прокси в браузере — Web Proxy Automatic Discovery (WPAD). С точки зрения клиентского браузера суть механизма WPAD в том, что при попытке доступа в интернет, браузер будет находить (через DNS/DHCP) сервер, на котором размещён настроечный файл http://wpad.holding.com/wpad.dat 

Файл Wpad.dat это файл Java-script в котором задаются настройки параметров расположения имени и порта прокси сервера, а также список исключений для обхода прокси. В случае недоступности данного файла браузер будет выполнять попытку прямого подключения к Интернет-ресурсам через настроенный в свойствах сетевого адаптера шлюз по умолчанию. При этом в настройках самого браузера в явном виде параметры прокси не указываются, а включается соответствующая опция авто-обнаружения. Механизм WPAD поддерживают браузеры Internet Explorer, Mozilla Firefox, с некоторыми ограничениями Opera и др.

Для того чтобы клиентский браузер узнал о том, где в локальной сети расположен сервер с опубликованным файлом wpad.dat, может использоваться механизм обращения в DNS или получения настроек с сервера DHCP. Эти оба метода можно применять как раздельно, так и совместно и каждый из этих методов имеет свои достоинства и недостатки.


WPAD и DHCP

Метод настройки сервера DHCP для использования WPAD можно найти здесь: TechNet Library — Creating a WPAD entry in DHCP

Его основа сводится к добавлению на сервер DHCP дополнительной опции 252, в которой указывается URL файла авто-настройки. Эта опция назначается на сервер или отдельную область и передается клиентам DHCP вместе с основными настройками IP.

Итак, для настройки сервера DHCP на Windows Server 2008 R2 откроем консоль управления этой ролью (Start -> Programs -> Administrator Tools -> DHCP) и в свойствах сервера выберем пункт управления опциями — Set Predefined Options.

В окне опций, чтобы добавить новую опцию нажмём Add и затем укажем параметры опции:

Name – WPAD
Code – 252
Data Type – String
Description — 
Web Proxy Automatic Discovery
image

После этого зададим в поле String значение URL по умолчанию и сохраним параметр.

image

В документации встречается отдельное замечание о том, что имя файла wpad.dat должно быть написано в данном случае в нижнем регистре.

После того как опция создана мы можем сконфигурировать её как для отдельной области так и глобально для всего сервера DHCP:

image Как видно, при задании URL размещения файла авто-настройки можно указывать нестандартный порт вместо 80, что является преимуществом в сравнении с методом настройки через DNS где при публикации файла может использоваться только 80 порт. С другой стороны метод настройки через DHCP не поможет нам на системах где используется статическая IP адресация (DHCP клиент не запущен) и при этом требуется настройка браузера, например на терминальных серверах. Более того, по имеющейся информации обрабатывать опцию с DHCP способен только Internet Explorer, то есть говорить об альтернативных браузерах в данном случае не приходится вообще.

WPAD и DNS

В нашем практическом примере мы будем использовать метод с использованием DNS, так как, на мой взгляд, он является наиболее универсальным, хотя и не лишён некоторых недостатков (некритичных в нашей ситуации).

Суть метода настройки клиентов WPAD с использованием DNS заключается в том, что в основной зоне DNS (DNS Suffix) создается запись формата wpad.domain.com которая ссылается на сервер где опубликован файл wpad.dat. Тип этой записи может быть как A так и CNAME.

В нашем примере все клиенты находятся в DNS домене holding.com. В зоне прямого просмотра holding.com мы создаём запись CNAME — tmgcluster.holding.com. Эта запись ссылается на имя массива из двух серверов Forefront TMG находящихся в NLB кластере.

Прежде чем начать использовать наш DNS сервер для WPAD, мы должны убедиться в том, что он не настроен на блокировку обновления/разрешения имён wpad. Такая блокировка по умолчанию защищает сервер от атак по регистрации фальшивых узлов wpad. Во времена Windows Server 2003 такая защита обеспечивалась тем, что в зонах DNS создавалась специальная запись-заглушка с типом TXT. Подробней об этом можно почитать в статье KB934864 — How to configure Microsoft DNS and WINS to reserve WPAD registration. С приходом Windows Server 2008 в роли DNS Server появился встроенный механизм глобальных листов блокировки. В нашем примере используется сервер DNS на базе Windows Server 2008 R2, и для того, чтобы посмотреть задействован ли в данный момент механизм глобальных блокировок выполним команду:

dnscmd /info /enableglobalqueryblocklist

Чтобы получить содержимое блок-листа выполним:

dnscmd /info /globalqueryblocklist

В конфигурации по умолчанию в блок-лист как раз таки включены записи wpad и isatap. Чтобы переписать содержимое блок-листа, исключив оттуда интересующий нас wpad, выполним команду:

dnscmd /config /globalqueryblocklist isatap

image

По сути в данном случае утилита dnscmd оперирует с параметрами реестра описанными в статье TechNet Library — Remove ISATAP from the DNS Global Query Block List

В ветке реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDNSParameters

блок-лист хранится в параметре GlobalQueryBlockList

Если есть желание отключить использование блок-листа совсем, можно выполнить:

dnscmd /config /enableglobalqueryblocklist 0

или же в изменить соответствующий параметр реестра EnableGlobalQueryBlockList

После сделанных изменений нужно перезапустить службу DNS

net stop dns & net start dns


WPAD сервер

Используя TechNet Library — Configuring a WPAD server рассмотрим настройки на стороне сервера Forefront TMG, который будет у нас выполнять роль сервера WPAD с опубликованным файлом авто-конфигурации wpad.dat

В консоли Forefront TMG Management в дереве навигации перейдём в ветку Networking на закладку Networks и выберем сеть, для которой нам нужно создать прослушиватель WPAD (обычно это внутренняя сеть – Internal). Откроем свойства этой сети

image

На закладке Auto Discovery включим опцию публикации файла wpad.dat —  Publish automatic discovery information for this network

В поле где указан номер порта устанавливаем 80 порт. Как уже отмечалось ранее, в силу того, что мы используем связку WPAD/DNS, мы должны использовать именно этот порт.

image

Переключаемся на закладку Web Browser и настраиваем список исключений для узлов и доменов к которым клиенты должны ходить напрямую минуя прокси.

image

Сохраняем настройки конфигурации TMG и после этого через веб браузер TMG должен отдавать нам скрипт авто-настройки по адресу http://tmgcluster.holding.com/wpad.dat

Открыв этот файл, мы сможем проверить попали ли в него данные списка обхода прокси. Изучив содержимое этого файла можно заметить то, что по умолчанию в этот файл адреса прокси-серверов попадают в виде IP адресов

DirectNames=new MakeNames();

cDirectNames = 10;

HttpPort = «8080»;

cNodes = 2;

function MakeProxies(){

this[0] = new Node(«192.168.0.11»,2531460408,1.000000);

this[1] = new Node(«192.168.0.12»,3457248957,1.000000);

}

Proxies = new MakeProxies();

В некоторых случаях, например если требуется авторизация Kerberos, это может вызвать некоторые сложности. Есть хороший пост на эту тему Forefront TMG (ISA Server) Product Team Blog > Understanding By-Design Behavior of ISA Server 2006: Using Kerberos Authentication for Web Proxy Requests on ISA Server 2006 with NLB.

Для того чтобы изменить адреса прокси попадающие в wpad с IP на FQDN можно воспользоваться подключением к COM-объекту TMG через Powershell и свойством CarpNameSystem. Чтобы получить текущее значение этого свойства, выполним скрипт:

$ServerName = «TMGCLUSTER»

$FPCRoot = New-Object -comObject «FPC.Root»

$TMGObj = $FPCRoot.Arrays.Connect($ServerName)

$TMGObj.ArrayPolicy.WebProxy.CarpNameSystem

Установленное по умолчанию значение «2» нам нужно будет заменить на значение «0» следующим образом:

$ServerName = «TMGCLUSTER»

$FPCRoot = New-Object -comObject «FPC.Root»

$TMGObj = $FPCRoot.Arrays.Connect($ServerName)

$TMGObj.ArrayPolicy.WebProxy.CarpNameSystem = 0

$TMGObj.ApplyChanges()

Для вступления параметров в силу нужно перезапустить сервера TMG.

После перезагрузки снова проверяем содержимое файла wpad.dat и убеждаемся в том, что адреса прокси указаны в виде FQDN серверов.

function MakeProxies(){

this[0] = new Node(«TMG01.holding.com»,2531460408,1.000000);

this[1] = new Node(«TMG02.holding.com»,3457248957,1.000000);

}

WPAD клиенты

Дело осталось за малым – включить настройку WPAD в свойствах клиентских веб-браузеров. В Internet Explorer эта опция включена по умолчанию, и если ранее вы использовали групповые политики для явного задания настроек прокси, то возможно имеет смысл их же использовать для стирания старых настроек и включения авто-определения. image

В браузере Mozilla Firefox активация механизма WPAD делается аналогичным образом и работает без нареканий (проверено на текущей версии 12.0)

image

Дополнительная информация:

TechNet Library — Automatic Discovery for Firewall and Web Proxy Clients

В этой статье мы рассмотрим, как централизованно настроить параметры прокси на компьютерах с Windows 10 в домене Active Directory с помощью групповой политики. Наиболее распространенные браузеры (такие как Microsoft Edge, Google Chrome, Internet Explorer, Opera) и большинство приложений автоматически используют настройки прокси-сервера, установленные в Windows, для доступа в Интернет. Мы также увидим, как настроить системные параметры WinHTTP-прокси.

В этой статье мы рассмотрим особенности настройки прокси-сервера с политикой в ​​поддерживаемых версиях Windows (Windows 10, 8.1 и Windows Server 2012/2016/2019). Обратите внимание, что в снятых с производства Windows 7 / Server 2008R2, Windows XP / Windows Server 2003 настройки прокси-сервера устанавливаются по-другому.

Как задать параметры прокси сервера в Windows через GPO?

До выпуска Windows Server 2012 / Windows 8 для настройки параметров Internet Explorer (включая настройки прокси). Этот раздел отсутствует в современных версиях Windows 10 / Windows Server 2016/2019.

Обслуживание Internet Explorer: настройка IE с помощью групповой политики

В более новых версиях Windows необходимо использовать настройки групповой политики (GPP) для настройки параметров Internet Explorer и прокси-сервера в редакторе GPO. Также есть возможность использовать специальное расширение Internet Explorer Administration Kit 11 (IEAK 11), но оно используется редко.

Откройте редактор GPO домена консоли управления групповой политикой (

GPMC.msc

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

создать групповую политику с настройками прокси-сервера для Windows 10

Перейдите в Конфигурация пользователя -> Настройки -> Настройки панели управления -> Настройки Интернета. В контекстном меню выберите New -> и выберите Internet Explorer 10.

создать политику домена с настройками Internet Explorer 10

Для настройки параметров прокси в Windows 10 / Windows Server 2016 необходимо использовать пункт Internet Explorer 10.

Совет. Хотя для Internet Explorer 11 нет отдельной настройки, политика Internet Explorer 10 будет применяться ко всем версиям IE> = 10 (в файле политики InternetSettings.xml можно увидеть, что этот параметр действителен для всех версий IE, начиная с 10.0).0.0 и заканчивая 99.0.0.0). Все версии Internet Explorer до 11 больше не поддерживаются Microsoft и больше не обновляются.

<FilterFile lte="0" max="99.0.0.0" min="10.0.0.0" gte="1" type="VERSION" path="%ProgramFilesDir%Internet Exploreriexplore.exe" bool="AND" not="0" hidden="1"/>

файл InternetSettings.xml

Перед вами появится специальный модуль, практически полностью идентичный настройкам опции Интернет в Панели управления Windows. Например, вы можете указать домашнюю страницу (вкладка «Общие», поле «Домашняя страница).

установить домашнюю страницу в IE в соответствии с групповой политикой

Важный. Недостаточно просто сохранить изменения в редакторе политик. Обратите внимание на красные и зеленые подчеркивания для настраиваемых параметров Internet Explorer 10. Красное подчеркивание означает, что этот параметр политики не будет применяться. Чтобы применить определенный параметр, нажмите F5. Зеленое подчеркивание рядом с параметром означает, что параметр IE будет применяться через GPP.

Доступны функциональные клавиши

  • F5 – включить все настройки в текущей вкладке
  • F6 – включить выбранную опцию
  • F7 – отключить выбранную опцию
  • F8 – отключить все настройки в текущей вкладке

Чтобы указать параметры прокси, перейдите на вкладку «Подключения» и нажмите кнопку «Параметры локальной сети»). Прокси-сервер можно настроить одним из следующих способов:

  • Автоопределение настроек – автоматическое определение настроек с помощью файла wpad.dat;
  • Использовать скрипт автоматической настройки – скрипт автоматической настройки (proxy.pac);
  • Прокси-сервер: вы можете вручную указать IP-адрес или DNS-имя прокси-сервера и порт подключения. Это самый простой способ настроить прокси в Windows, и мы будем его использовать.

Установите флажок Использовать прокси-сервер для вашей локальной сети и в полях Адрес и Порт, соответственно, укажите IP / FQDN прокси-сервера и порт подключения.

установить параметры прокси-сервера в Windows 10 через домен gpo

Включив параметр Обход прокси-сервера для локальных адресов, вы можете запретить приложениям (включая браузер) использовать прокси-сервер при доступе к локальным ресурсам (в формате

http://intranet

). Если вы используете адреса ресурсов, такие как

https://winitpro.ru

или

http://192.168.20.5

, эти адреса не распознаются Windows как локальные. Эти адреса и адреса других ресурсов, для доступа к которым прокси не требуется, необходимо указать вручную. Нажмите кнопку «Дополнительно» и в поле «Исключения» введите адреса в формате:

10.*;192.168.*;*.loc;*.contoso.com

не используйте прокси для следующих адресов

Совет. Настройки прокси-сервера в Google Chrome можно настроить централизованно через GPO с помощью специальных административных шаблонов. Для Mozilla Firefox вы можете использовать это решение.

После сохранения политики вы можете просмотреть XML-файл с указанными настройками браузера в каталоге политики на контроллере домена \ DC1 ​​ SYSVOL winitpro.ru Policies (PolicyGuiID) User Preferences InternetSettings InternetSettings xml

Файл InternetSettings.xml с настройками IE в групповой политике

GPP имеет возможность более тонко нацеливать политику на клиентов. Для этого используется таргетинг на уровне элемента GPP. Перейдите на вкладку Общие, включите параметр Таргетинг на уровень элемента -> Таргетинг.

В открывшейся форме укажите условия применения политики. Например, я указал, что политика конфигурации прокси будет применяться только к пользователям, которые являются членами доменной группы ruspb_proxy_users. Вы можете использовать собственную логику для назначения параметров прокси (в зависимости от IP-подсети, сайта AD и т.д.).

применять настройки прокси только к определенной группе AD

Осталось назначить политику IE контейнеру с пользователями и обновить политики для них. После обновления политик на компьютерах пользователей следует применить новые настройки прокси в IE. В Windows 10 текущие настройки прокси-сервера можно посмотреть в разделе «Настройки» -> «Сеть и Интернет» -> «Прокси-сервер». Как видите, теперь компьютер настроен с параметрами прокси, указанными в политике домена.

принудительные настройки прокси-сервера Windows 10 из групповой политики

Используйте эту статью, чтобы запретить пользователям изменять настройки прокси-сервера.

Настройка параметров прокси через реестр и GPO

Кроме того, вы можете настроить параметры IE через реестр, используя политики GPP. Например, чтобы включить прокси для пользователя, вам необходимо настроить следующие параметры реестра в ветке HKEY_CURRENT_USER Software Microsoft Windows CurrentVersion Internet Settings.

Перейдите в редактор GPO в разделе User Configuration -> Preferences -> Windows Settings -> Registry и создайте три значения реестра в указанной ветке:

  • ProxyEnable

    (REG_DWORD) =

    00000001

  • ProxyServer

    (REG_SZ) =

    192.168.0.50:3128

  • ProxyOverride

    (REG_SZ) =

    *winitpro.ru;https://*.contoso.com;192.168.*;<local>

Здесь вы также можете использовать таргетинг на уровне элементов, чтобы точно настроить таргетинг по критериям.

установить настройки прокси-сервера в домене через реестр

Если вам нужно создать политики не для каждого пользователя (для каждого пользователя), а для всех пользователей компьютера (для каждого компьютера), используйте настройки GPP из GPO Computer Configuration -> Preferences -> Windows Settings -> Registry section. Используйте те же параметры реестра в ветке HKEY_LOCAL_MACHINE Software Policies Microsoft Windows CurrentVersion Internet Settings.

Настройка параметров WinHTTP прокси групповыми политиками

Некоторые системные службы или приложения (например, служба обновлений Wususerv или PowerShell) по умолчанию не используют настраиваемые параметры прокси-сервера из параметров Internet Explorer. Чтобы эти приложения работали должным образом и имели доступ к Интернету, параметры прокси-сервера системы WinHTTP должны быть настроены в Windows.

Чтобы проверить, настроен ли на вашем компьютере прокси WinHTTP, выполните команду:

netsh winhttp show proxy

Ответ «

Direct access (no proxy server)

» означает, что прокси не установлен, система использует прямой доступ в Интернет.

netsh winhttp show proxy Прямой доступ (без прокси-сервера)

Вы можете вручную настроить прокси для WinHTTP на своем компьютере с помощью команды:

netsh winhttp set proxy 192.168.0.50:3128 "localhost;192.168.*;*.winitpro.com"

Или импортируйте настройки прокси из настроек Internet Explorer текущего пользователя:

netsh winhttp import proxy source=ie

netsh winhttp import proxy source = ie

Однако вы не сможете настроить WinHTTP через GPO – в редакторе GPO нет соответствующего параметра, а параметры хранятся в реестре в двоичном формате и не подходят для прямого редактирования.

параметры реестра WinHttpSettings

Единственный способ установить параметры прокси WinHTTP – это настроить их на эталонном компьютере, загрузить значение параметра WinHttpSettings в ветку реестра HKLM SOFTWARE Microsoft Windows CurrentVersion Internet Settings Connections в reg-файле и передать его параметр на компьютер в домене через реестр GPP.

конфигурация прокси winhttp в Windows через GPO

Источник изображения: winitpro.ru

  • Remove From My Forums
  • Вопрос

  • Здравствуйте.

    На контроллере домена Windows Server 2012 R2 создана групповая политика по принудительной настройки прокси сервера в Свойства браузера Подключения.

    Политика «нацелена» на пользователей.

    На локальных ПК, на Internet Explorer 11, и более «низких» версиях — политика срабатывает должным образом.

    На терминальном сервере Windows Server 2012 R2 — политика не срабатывает.

    Терминальный сервер и локальные ПК находятся в одной OU AD.

    GPResult показывает, что политика применена.

    Моделирование в консоли Управление групповой политикой —  отчёт показывает, что политика применена.

    Однако, результат групповой политики в консоли Управление групповой политикой — в отчёте данной политики нет, в отклонённых так же её нет. 

Ответы

  • Спасибо.

    Решение данной проблемы, видимо, требует не то количество временных ресурсов, которое можно было бы потратить.

    Поступил проще.

    В ручную настроил параметры прокси на терминальном сервере.

    С помощью GPO, нацеленных на компьютер, запретил изменять настройки всем пользователям.

    С помощью GPO, нацеленных на компьютер, указал, что эти настройки действуют на всех пользователей.

    Будет время посмотрю Userenv.log с мощью Policy Reporter.

    • Помечено в качестве ответа

      13 октября 2016 г. 7:28

  • Политика «нацелена» на пользователя.

    Функция «замыкания» групповой политики не используется.

    Тем не менее, размещение её в OU, в которой размещены пользователи — результат не даёт.

    Если политику разместить в OU, в которой размещены компьютеры — даёт нужный результат.

    То есть, политику пользователя приходится размещать в OU с компьютерами.

    Где логика — не понятно?

    • Изменено
      Vladislav Savchenko
      17 октября 2016 г. 19:26
      ошибка
    • Помечено в качестве ответа
      Vladislav Savchenko
      17 октября 2016 г. 19:27

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

Для этого была использована технология Web Proxy Autodiscovery Protocol (сокращенно WPAD).

Сначала настраиваем (если ранее не был настроен) DHCP сервер. И настраиваем Proxy сервер (SQUID)
После этого в файле /etc/dhcp/dhcpd.conf дополним конфигурацию DHCP сервера и зоны.

Для начала в основную часть конфигурации (основная часть идет до строчки начинающейся на subnet) добавим описание параметра wpad

option wpad code 252 = text;

И в описании области добавим параметр

option wpad "http://192.168.xxx.xxx/wpad.dat";

который отвечает за то, откуда будет браться файл конфигурации.
(http://192.168.xxx.xxx/wpad.dat -это адрес файла конфигурации прокси)

В итоге описание зоны будет выглядеть примерно так:

subnet 192.168.xxx.0 netmask 255.255.255.0 {
range 192.168.xxx.xxx 192.168.xxx.xxx;
option routers 192.168.xxx.xxx;
option broadcast-address 192.168.xxx.255;
option wpad "http://192.168.xxx.xxx/wpad.dat";
}

Теперь остается только создать файл конфигурации и опубликовать его по протоколу HTTP.

для этого создадим простейший файл wpad.dat и запишем в него параметры Proxy сервера

function FindProxyForURL(url, host)
{
return "PROXY 192.168.xxx.xxx:3128;";
}

где 192.168.xxx.xxx:3128 это адрес и порт Proxy сервера.

Далее разместим wpad.dat на веб-сервере и перезапустим DHCP командой

sudo /etc/init.d/isc-dhcp-server restart

С этого момента все свежеподключившиеся клиенты будут получать конфигурацию прокси через DHCP.

В дальнейшем можно провести более тонкую настройку проксирования в файле wpad.dat.

Немного опишу базовый синтаксис:
//Функция использования прокси
function FindProxyForURL(url, host)
{
// если текстовое имя хоста без точек, то соединяемся с ним напрямую (полезно для локальных адресов)
if (isPlainHostName(host)) {return "DIRECT";}
//если в URL содержится blackdiver.net то соединяемся напрямую
if (shExpMatch (url, "*blackdiver.net*")) {return "DIRECT";}
//если хост в сети 192.168.xxx.0 или в сети 127.0.0.0 то тоже подключаемся напрямую
if (isInNet (host, "192.168.xxx.0", "255.255.255.0") || isInNet (host, "127.0.0.0", "255.255.255.0")) {return "DIRECT";}
//если ни одно условие не выполнилось - возвращаем имя прокси
return "PROXY 192.168.xxx.xxx:3128; DIRECT";
}

Так же можно построить обратную конфигурацию. Если адрес такой-то, то используем такой прокси, а в остальных случаях соединяемся напрямую.

Вот пример, когда yandex и mail.ru работают через прокси, а остальные – напрямую:
function FindProxyForURL(url, host)
{
if (shExpMatch (url, "*yandex.ru*") || shExpMatch (url, "*mail.ru*")) {return "PROXY 192.168.xxx.xxx:3128; DIRECT";}
return "DIRECT";
}

Или использовать несколько прокси. Тут уже все зависит от фантазии и потребностей, ведь этот файл это всего-лишь javascript.

Доступные функции:

isResolvable(host) – запрос имени хоста (прверка существования) на DNS-сервере
пример:
if (isResolvable(host))

dnsResolve(host) – запрос DNS-сервера для перевода имени в IP
пример:
if (dnsResolve(host) == "xxx.xxx.xxx.xxx")

myIpAddress() – возвращает IP-адрес (состоящий из целых чисел и точек) узла, на котором запущен браузер
пример:
if (myIpAddress() == "xxx.xxx.xxx.xxx")

isPlainHostName(host) – проверяет, содержатся ли точки в имени узла. Если точка найдена, то возвращается значение false; если нет, возвращается значение true
пример:
if (isPlainHostName(host))

dnsDomainLevels(host) – возвращает целое число, равное количеству точек в имени узла
пример:
if (dnsDomainLevels(host) > 0)

dnsDomainIs(host,”.company.com”) – возвращает значение true, если домен из имени узла совпадает с заданным доменом
пример:
if (isPlainHostName(host) || dnsDomainIs(host, ".company.com"))

localHostOrDomainIs(host, “www.company.com”) – возвращает значение true, если домен из имени узла совпадает с заданным доменом. Выполняется только для URL-адресов, относящихся к локальному домену.
пример:
if (!localHostOrDomainIs(host, "www.company.com"))

shExpMatch(str, shexp) – возвращает значение true, если str соответствует шаблону оболочки shexp
пример:
if (shExpMatch(host, "*.com"))

isInNet(host, pattern, mask) – возвращает значение true, если IP-адрес узла соответствует указанному шаблону (например, 127.0.0.0). mask указывает, какую часть IP-адреса следует сопоставлять (255=сопоставлять, 0=игнорировать)
пример:
if (isInNet(host, "999.99.9.9", "255.0.255.0"))

url.substring(0, ) извлекает указанное количество знаков с начала строки
пример:
url.substring(0, 4)

weekdayRange( day1 [, day2] [,”GMT”] ) – возвращает значение true, если текущее время системы попадает в диапазон, заданный с использованием параметров и (необязательный). Необязательный параметр GMT указывает, что задано не местное время, а время по Гринвичу.
пример:
if(weekdayRange("WED", "SAT", "GMT"))

dateRange(day1 [,month1] [,year1] [,day2] [,month2] [,year2] [,gmt] )
day – число дня месяца между 1 и 31
month – строка: JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
year – полный (четырёхзначный) год
gmt – зона “GMT” (по Гринвичу)
примеры:
dateRange(1) //true если сегодня первое число, используется локальное время.
dateRange(1, "GMT") //true сегодня первое число, используется время по гринвичу.
dateRange(1, 15) //true если сегодня число в диапазоне с 1 по 15-е.
dateRange(24, "DEC") //true каждое 24-е декабря.
dateRange(24, "DEC", 1995) //true если сегодня 24е-е декабря 1995 года.
dateRange("JAN", "MAR") //true с января по март
dateRange(1, "JUN", 15, "AUG") //true с 1 июня по 15-е августа (включительно).
dateRange(1, "JUN", 15, 1995, "AUG", 1995) //true с 1-го июня 1995-го года по 15-е июня 1995 года.
dateRange("OCT", 1995, "MAR", 1996) //true с октября 1995 по март 1996 (включительно).
dateRange(1995) //true в течении 1995 года.
dateRange(1995, 1997) //true с 1995 до 1997.

timeRange(hour1 [,min1] [,sec1] [,hour2] [,min2] [,sec2] [,gmt] )
hour – число часа от 0 до 23
min – число минут от 0 до 59
sec – число секунд от 0 до 59
gmt – зона “GMT” (по Гринвичу)
примеры:
timerange(12) //true до 13:00.
timerange(12, 13) //true с 12:00 до 13:00.
timerange(12, "GMT") //true с начала для до 13:00 по Гринвичу.
timerange(9, 17) //true from 9am to 5pm.
timerange(8, 30, 17, 00) //true с 8:30 to 17:00.
timerange(0, 0, 0, 0, 0, 30) //true с полночи и до 00:00:30 секунд.

Так же еще поддерживаются переменные:
примеры:
ip_host = dnsResolve(host);
ip_localnet = "192.168.0.0";
ip_localhost = "127.0.0.1";
proxy_general = "PROXY gwhost.my:3128";
proxy_local = "PROXY localhost:3128";

Заказать создание и поддержку безопасной IT-инфраструктуры любой сложности

Быть уверенным в своей IT-инфраструктуре – это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Понравилась статья? Поделить с друзьями:
  • Как передать контакты с windows phone на android
  • Как передать файлы с ноутбука на ноутбук через wifi windows 10
  • Как передать интернет с телефона на ноутбук через wifi windows
  • Как передать интернет с телефона на компьютер windows 10
  • Как передать интернет по локальной сети windows 10