• Медленная работа Internet Explorer 11 через прокси-сервер Squid с использованием Proxy Auto Configuration (WPAD)

    imageПосле перехода с Forefront TMG на Squid мне не давала покоя одна проблема, разобраться с которой “с наскоку” никак не получалось. При использовании браузера Internet Explorer 11 в связке с прокси-сервером Squid наблюдались задержки при открытии веб-страниц Интернет-ресурсов, и особенно это было ощутимо на https-ресурсах. При этом те же самые веб-страницы открывались в других браузерах без подобных проблем. Так уж получилось, что изначально изучение этой проблемы пошло в неверном направлении и было ориентировано на связку IE11/HTTPS/Squid. Попытка разобрать трафик между клиентом IE11 и прокси-сервером Squid не дала ничего интересного. В ходе поиска возможной причины использовались всевозможные варианты начиная с таких, как например изменение client_persistent_connections в конфигурационном файле Squid и заканчивая такими глупостями, как например, отключение SPDY/3 и HTTP 1.1 в IE11 или даже использование режима предприятия. По пути наткнулся на довольно занятную статью об IE на “Хабре”. В общем перебор возможных вариантов решения дошёл до экспериментов с авто-конфигурацией прокси, где тоже появились интересные подробности. В частности выяснилось, что IE может давать ощутимые задержки в открытии страниц, если в файле автоконфигурации прокси (WPAD) присутствует вызов функций вида isInNet(host,,), как описано, например, здесь - MSDN Blog - AsiaTech: Microsoft APGC Internet Developer Support Team - IE hang when access some web sites with Proxy.pac.

    Читать далее...

  • Настройка прокси сервера Squid 3.3 на Ubuntu Server 14.04 LTS. Часть 5. Конфигурация Squid 3

    imageВ этой части мы рассмотрим ряд подготовительных манипуляций по созданию доменных групп безопасности, которые будут использоваться для ограничения доступа к Интернет, а также созданию вспомогательных файлов, ссылки на которые будут включены в основной конфигурационный файл Squid 3.3.8. Затем отредактируем основной конфигурационный файл Squid и проверим работу нашего прокси-сервера с новыми настройками.

    Читать далее...

  • Настройка прокси сервера Squid 3.3 на Ubuntu Server 14.04 LTS. Часть 1. Установка ОС на ВМ Hyper-V Gen2

    imageВ силу того, что некоторое время назад Forefront Threat Management Gateway (TMG) был изъят Microsoft из прайсов, его использование для организаций не имеющих приобретённых ранее экземпляров коробочной версии этого продукта стало невозможно. В такую ситуацию в частности попали компании, которые используют ПО Microsoft в режиме аренды по корпоративным соглашениям EA. В Сети можно найти много обсуждений и споров на тему выбора альтернативы TMG как продукта в целом, так и отдельных его функциональных компонент. Если говорить о функционале прямого прокси (forward proxy), то из вариантов не требующих финансовых затрат на лицензирование можно выбрать один из самых популярных в среде ОС Linux/BSD – кэширующий прокси сервер Squid. С этой заметки я хочу начать серию заметок о том, как установить и настроить прокси сервер Squid 3.3 на ОС Ubuntu Server 14.04 LTS. На базе этой связки ключевым условием задачи будет получение функционала прокси сервера способного проводить аутентификацию пользователей в домене Active Directory с использованием протоколов Kerberos (как приоритетного) и NTLM а также авторизацию аутентифицированных пользователей через разные доменные группы безопасности (с учетом их транзитивности).

    Выбор в качестве ОС Linux именно дистрибутива Ubuntu Server 14.04 LTS в моём случае обусловлен требованием установки ОС в виртуальной среде Hyper-V на базе Windows Server 2012 R2, и если проанализировать информацию о поддержке Linux в Hyper-V, то можно убедиться в том, что именно Ubuntu Server 14.04 на текущий момент имеет самые развитые (и развивающиеся) возможности интеграции с гипервизором Hyper-V последнего поколения.

    Читать далее...

  • System Center 2012 R2 Operations Manager Console - Operations Manager cannot connect to the Web service - The Microsoft Management Pack Catalog Web Service cannot be contacted at this time

    imageПри попытке выполнить импорт пакетов управления Management Pack (MP) в консоли System Center 2012 R2 Operations Manager (SCOM) Console из онлайн-каталога Microsoft мы можем нарваться на ошибку, говорящую о недоступности веб-службы этого самого каталога. Такая ситуация возможна в случае, если доступ в интернет организован через прокси-сервер, как в нашем случае например через Forefront TMG 2010.

    image

    На самом деле эта проблема "с бородой" и подобная ситуация наблюдалась мной ещё со времён работы с Operations Manager 2007 R2. Однако в силу того, что практически всегда MP загружались из предварительно загруженных на локальный диск файлов с таким же предварительным изучением сопроводительной документации к MP, этой ошибке я всегда как-то не уделял внимания. Но вот настал тот момент, когда очень захотелось посмотреть доступное содержимое этого каталога через консоль SCOM.

    Читать далее...

  • Forefront TMG 2010 SP2 Rollup 3

    imageНесмотря на недавние новости - Forefront FPE/FPSP/TMG 2010 – Закат жизненного цикла… команда разработчиков Forefront Threat Management Gateway (TMG) 2010 продолжает бодрствовать. На прошлой неделе стало доступно для загрузки обновление KB2735208 - Rollup 3 for Forefront TMG 2010 Service Pack 2. Обновление имеет очень скромный размер (около 12MB) и состоит исключительно их хотфиксов: 

    2700248 FIX: A server that is running Forefront Threat Management Gateway 2010 may stop accepting all new connections and may become unresponsive
    2761736 FIX: All servers in a load-balanced web farm may become unavailable in Forefront Threat Management Gateway 2010
    2761895 FIX: The Firewall service (WSPSRV.EXE) may crash when the firewall policy rules are reevaluated in Forefront Threat Management Gateway 2010
    2780562 FIX: PPTP connections through Forefront Threat Management Gateway (TMG) 2010 may be unsuccessful when internal clients try to access a VPN server on the external network
    2780594 FIX: A non-web-proxy client in a Forefront Threat Management Gateway (TMG) 2010 environment cannot open certain load-balanced websites when TMG HTTPS inspection is enabled
    2783332 FIX: You cannot log on when FQDN is used and Authentication delegation is set to "Kerberos constrained delegation" in a Forefront Threat Management Gateway 2010 environment
    2783339 FIX: A closed connection to a domain controller is never reestablished when Authentication delegation is set to "Kerberos constrained delegation" in a Forefront Threat Management Gateway 2010 environment
    2783345 FIX: Unexpected authentication prompts while you use an OWA website that is published by using Forefront Threat Management Gateway (TMG) 2010 when RSA authentication and FBA are used
    2785800 FIX: A "DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)" Stop Error may occur on a server that is running Forefront Threat Management Gateway (TMG) 2010
    2790765 FIX: A "Host Not Found (11001)" error message occurs when an SSL site is accessed by using a downstream Forefront Threat Management Gateway 2010 server that has HTTPS Inspection enabled

    После установки номер билда Forefront TMG 2010 повышается до 7.0.9193.575. Несмотря на то, что в описании к обновлению сказано, что в процессе установки перезагрузка серверов TMG не требуется, один из серверов имеющегося у нас массива всё-таки потребовал перезагрузки.

  • Forefront FPE/FPSP/TMG 2010 - Закат жизненного цикла…

    imageПару дней назад наткнулся на не очень радостную новость - Important Changes to Forefront Product Roadmaps. Microsoft анонсировали об окончании развития основной массы продуктов линейки Forefront:

    • Forefront Protection 2010 for Exchange Server (FPE)
    • Forefront Protection 2010 for SharePoint (FPSP)
    • Forefront Security for Office Communications Server (FSOCS)
    • Forefront Threat Management Gateway 2010 (TMG)
    • Forefront Threat Management Gateway Web Protection Services (TMG WPS)


    При этом, как я понял, уже начиная с 01.12.2012 будут прекращены продажи этих продуктов. Для продукта Forefront TMG 2010, в частности, основная фаза поддержки (mainstream support) будет прекращена 14.04.2015, а расширенная фаза поддержки (extended support) будет прекращена 14.04.2020. В любом случае появление такого анонса свидетельствует о том, что ждать дальнейшего развития функционала для этого продукта смысла нет.
    Тот же источник сообщает о том, что продукты Forefront UAG 2010 и Forefront Identity Manager 2010 R2 продолжат своё развитие. Возможно в некоторых сценариях и получится заменить функционал TMG на UAG, но в некоторых, как например с организацией proxy, как мне думается, это может стать проблемой, так как UAG по сути своей больше заточен под публикацию внутренних ресурсов для внешних пользователей. Возможно теперь некоторые товарищи вспомнят про SQUID :)

  • Антивирус для Windows Server - настраиваем список исключений. Обновлено 11.08.2016

    imageВ ходе настройки политик управления клиентами любого антивирусного ПО необходимо определять список каталогов, имён процессов или даже расширений фалов, которые должны исключаться из Real-Time сканирования. Постараюсь собрать в одном месте информацию о рекомендуемых параметрах исключений и по мере необходимости буду его корректировать.  Стоит отметить, что список составлен исходя из приложений, которые эксплуатируются в моём рабочем окружении. Список разделен по основным категориям сервисов и там где возможно есть ссылки на официальные рекомендации производителей ПО. Во всех случаях подразумевается что программное обеспечение установлено в каталоги «по умолчанию».

    Читать далее...

  • SCCM 2012 - Client Push Install для серверов Forefront TMG

    imageВ процессе автоматического развёртывания клиентов System Center 2012 Configuration Manager (SCCM) методом Push-installation мы можем обнаружить, что на сервера Forefront TMG клиент SCCM не устанавливается. Официальный список используемых для этой процедуры портов можно найти в документах Windows Firewall and Port Settings for Client Computers in Configuration Manager и Ports Used by Configuration Manager

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

    Читать далее...

  • Forefront TMG и кастомизированный wpad.dat

    imageПосле того как мы начали использовать для авто-настройки параметров прокси WPAD файл который генерируется Forefront TMG, заметили то, что попытка использовать в настройках сети Internal в списке исключений для обхода прокси комбинацию имён и IP диапазонов приводит к проблеме открытия некоторых локальных узлов. Похожая проблема была описана в статье KB920715, но не смотря на то, что речь там идёт про ISA 2004, схожие симптомы мы наблюдали и на TMG. Когда из списка исключений для обхода прокси убирались IP диапазоны – проблема устранялась. Ещё к большему желанию отказаться от использования генерируемого TMG файла wpad.dat привела статья Richard Hicks' Forefront TMG Blog - WPAD Considerations for Kerberos Authentication with NLB VIP on Forefront TMG 2010. По одной из ссылок в этой статье было найдено описание метода “скармливания” TMG самостоятельно сформированного кастомизированного файла wpad.dat -

    Дело осталось за малым, корректно создать собственный файл параметров авто-настройки WPAD. В изучении вопроса оказались полезными ресурсы Wikipedia - Proxy auto-config и Penguins Joys - Wpad.dat

    В итоге у меня получился такой вот файл wpad.dat:

    function FindProxyForURL(url, host) {

     

    if (shExpMatch(host, "127.0.0.1" ) ||

    shExpMatch(host, "localhost" ) ||

    isInNet(host, "10.0.0.0",  "255.0.0.0") ||

    dnsDomainIs(host, ".holding.com" )||

    dnsDomainIs(host, ".localdomain.ru" )||

    dnsDomainIs(host, ".my.domain.local" )||

    shExpMatch(url,"*.holding.com/*") ||

    shExpMatch(url, "*.holding.com:*/*") ||

    shExpMatch(url, "www.samedom1.ru") ||

    shExpMatch(url, "app.samedom2.com") ||

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

     

    return "PROXY KOM-AD01-TMGCL.holding.com:8080; DIRECT";

     

    }

    Для того чтобы заставить TMG использовать созданный нами wpad.dat воспользуемся набором скриптов, которые можно загрузить по ссылке указанной в статье Forefront TMG (ISA Server) Product Team Blog > Use ISA/TMG to distribute your custom WPAD configuration file

    Распаковываем на TMG сервере архив KB953293.zip в отдельный каталог, например C:ToolsCustomWPADKB953293 и создаём два командных файла для установки кастомизированного файла wpad.dat и для удаления (возврату к генерируемому файлу TMG). В нашем случае соответственно файлы получились такие:

    wpad-file-install.cmd:

    cd /d C:ToolsCustomWPADKB953293

    cscript kb953293.wsf /array:. /net:internal /script:C:ToolsCustomWPADwpad.dat

    wpad-file-uninstall.cmd:

    cd /d C:ToolsCustomWPADKB953293

    cscript kb953293.wsf /array:. /net:internal /del

    Обратите внимание на то что в переменной array в качестве значения имени массива TMG можно указать точку, чтобы использовать текущий массив.

    Сама процедура установки первым командным файлом выглядит примерно так: 

    image

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

    После того, как наш файл авто-настройки успешно установлен в TMG, - очищаем кэш браузера с проверяем то, что по ссылке http://wpad.holding.com/wpad.dat нам возвращается именно наш файл. Проверяем работу браузеров с заданными нами настройками и убеждаемся в том, что комбинирование правил исключений для имён и IP работает успешно. Дополнительно собственным файлом авто-настройки мы решаем ещё одну проблему описанную Ричардом Хиксом - теперь клиенты будут обращаются на виртуальный IP нашего NLB кластера, а не на какую-то конкретную ноду, как это происходит в случае с использованием генерируемого TMG файла wpad.dat.

    Установив кастомизированный файл авто-настройки следует помнить о том, что все последующие изменения, которые необходимо вносить в конфигурацию (например расширения списка обхода прокси) нужно производить путём корректировки созданного нами файла и повторной его установки командным файлом wpad-file-install.cmd. При этом изменения выполняемые на соответствующих закладках свойств сети Internal в консоли TMG будут игнорироваться, по крайней мере это показывают практические тесты.

  • Настраиваем Web Proxy Automatic Discovery (WPAD)

    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