Vadims's profileVadims Podans's former b...PhotosBlogListsMore ![]() | Help |
|
|
9/5/2008 Windows Vista и Software Restriction PoliciesОчень часто люди задают вопросы по поводу безопасности своих локальных машин, терминальных серверов и постоянно ищут средство защиты систем от поражения вирусами, троянами и просто контроля запуска узкого числа инсталлированных приложени. И каждый раз снова и снова приходится отвечать тремя словами на этот вопрос, а именно - Software Restriction Policies. Данная политика совмещает себе как простоту реализации, так и эффективность её работы. В критических случаях пользователю разрешено запускать только те приложения, которые явно разрешил запускать администратор. Данная технология не нова, поэтому подробно расписывать её здесь не буду, а лишь обозначу ключевые отличия реализации данной политики в Windows Vista/Windows Server 2008 от реализации в WindowsXP/Windows Server 2003. Политика включается как обычно:
Итак, какие изменения у нас появились по сравнению с предыдущими версиями:
Казалось бы, пустяк, но я считаю, что тут есть о чём поговорить. Итак, сначала поговорим о новом действии политики как Basic User. Данное действие политики было специально заделано под User Account Control (UAC) и которое совместно с UAC филтрует права пользователя на запуск. Если политики UAC распространяются на все приложения без исключения, то комбинирование действия по умолчанию UAC и при использовании Software Restriction Policies позволяет запретить повышение привелегий для некоторых приложений. Иными словами, даже если запустить приложение с повышенными привилегиями, они всё равно будут отфильтрованы. Пример 1. Рассмотрим поведение политики Basic User для установки действия Basic User для программы CMD.EXE: Сперва при отключенной политике выполню команду, которая включает режим Hibernate для компьютера. Для этого нажимаю на ярлыке CMD правой кнопкой и выбираю Run As Administrator и получаю предупреждение UAC:
соглашаюсь и получаю консоль командной строки, в которой набираю следующую команду и исполняю:
данная команда включает режим Hibernate (возможно не самый удачный пример) и ошибок не вернула. Действие общей политики здесь неважно, поэтому перейдём сразу к Additional Rules. Для этого я создал Hash Rule для CMD.EXE как показано на картинке:
Теперь снова запускаю консоль CMD с повышенными привилегиями и повторяю процедуру:
хоть я и просил повышенные привилегия для исполнения команды, но действие Basic User не дало этой возможности и отфильтровало мои права до обычного пользователя. Т.е. мы видим, что Basic User ни за что не позволяет выполнить приложение в привилигированном режиме! Пример 2. В предыдущем примере я добровольно пытался запустить приложение с повышенными привилегиями. В результате никакого повышения не получилось и приложение запустилось в обычном режиме. А теперь рассмотрим запуск приложения, которое требует повышенния привилегий через UAC. Для этого я буду использовать запуск консоли Computer Management с возможностью изменения настроек консоли. Я удалил правило для CMD.EXE и создал такое же правило для консоли compmgmt.msc:
И при нажатии правой кнопкой на Computer -> Manage получил запрос на повышение прав от UAC с чем я и согласился:
и снова действие Basic User отфильтровало мои повышенные права и выдало такое окошко. Как видно из скриншота политика блокировала запуск консоли. Ещё раз повторюсь, запуск данной консоли с возможностью изменения настроек без повышения прав через UAC невозможно, что мы и видим на рисунке. Резюме: Действие политики SRP Basic User не позволяет ни в коем случае выполнить приложение с повышенными привилегиями. Если это доступно, то приложение запускается в обычном режиме, как показано на примере 1 или вообще запрещает запуск, если приложение для запуска требует повышенных прав, как это видно на примере 2. Примечение: Когда первый раз я стал изучать политику SRP на своём нотебуке с Windows Vista был неприятно удивлён, когда при активации политики Disallowed у меня сохранялась возможность запуска .EXE файлов напрямую из проводника и .LNK из меню Start -> Run... . Я помню по XP/2003, что политика активировалась в момент при выборе действия политики. Здесь же я обнаружил что политика применилась лишь частично, игнорировав .EXE и .LNK файлы. Этим вопросом я озадачил Александра Станкевича, который позднее подсказал, что наблюдал такое же поведение на 2008 сервере до тех пор, пока не перезагрузил компьютер. Поэтому при инициализации политики для её полной активации нужно перезагрузить компьютер! Когда политика проинициализирована перезагрузка больше не требуется до полной отмены политики и все изменения применяются на лету. О чём, кстати сообщается в правом окне политики SRP, когда политика удалена или не создана (эхх, невнимательный какой). Ну и ещё добавлю небольшую заметку по интеграции политик SRP с UAC. В Enforcement есть опция применения политики SRP For All Users except Administrators, т.е. применение политики ко всем пользователям, кроме администраторов. Данная опция работает только для приложений, которые запущены с повышенными привилегиями. Это вполне логично, т.к. даже локальный администратор работает в системе с правами обычного пользователя (ситуацию, когда UAC отключён совсем я не рассматриваю, ибо это не есть хорошо), поэтому в обычной работе политика в любом случае будет воздействовать на него. Это важно понимать, т.к. не совсем явная вещь и её легко упустить из виду. Что касается Enforce/Ignore Certificate Rule, то тут наверное нету смысла объяснять, что это. По умолчанию правила сертификатов проверяются в первую очередь и если у вас они не используются, то включение обработки правил сертификатов может значительно снизить скорость запуска приложений. Порядок (приоритет) применения правил политики SRP:
поэтому отключение правил сертификатов, когда они не используются будет весьма кстати. Напомню, что Certificate Rule может использоваться не только для фильтрации подписанных приложений, но и для разрешения запуска подписанных доверенными сертификатами скриптов. И на последок дам 3 .REG файла, которыми я пользуюсь в работе для управления политикой: SRP_Enable - включает действие политики в Disallowed:
SRP_Disable - включает действие политики в Unrestricted:
SRP_Basic - включает действие политики в Basic User:
Я обычно кладу эти 3 файла (теперь 3, до этого использовались только SRP_Enable и SRP_Disable) в папку Windows и на рабочий стол администраторской учётной записи создаю ярлыки для них:
эти ярлыки включены в исключения политики и указывают на соответствующие .REG файлы, которые так же находятся в исключениях. Однако хочу заметить, что действие этих ярлыков в среде рабочей группы может быть изменено после перезагрузки системы (после перезагрузки вернётся действие, которое указано в политике), а в доменной среде - либо после перезагрузки либо при последующем обновлении политик (по умолчанию - 1 раз в 90 минут). Поэтому данные ярылки дают лишь временный эффект, но как правило они и нужны на очень короткий срок. Ну и хочу поделиться маленькой приятной особенностью, которая появилась сейчас. Администраторы, которые работали с политикой SRP в системах XP/2003 испытывали головную боль при обновлении серверов и рабочих станций. Проблема была в самом механизме работы инсталляторов апдейтов, которые в корне произвольного тома создавали папки с произвольными именами, в которые распаковывались апдейты и затем устанавливались. Такая схема не представляла возможным создание правил для SRP, чтобы без отключения политики установить апдейты. Поэтому во время апдейтов приходилось отключать политику и после включать её обратно. В Windows Vista и Windows Server 2008 это уже не так! Я сегодня же проверил возможность установки обновлений с Windows Update при включенной политике SRP Disallowed. И все 16 обновлений спокойно установились и политику отключать не пришлось. Это хороший плюс для Windows Vista! Вроде осветил основные изменения политик Software Restriction Policies и ничего не забыл. Если забыл что-то, то пните ;) упс, чуть не забыл, официальную ссылку на TechNet: Using Software Restriction Policies to Protect Against Unauthorized Software 5/9/2008 Сертификаты для недоменных компьютеровВ продолжении темы создания защищённого соединения посредством IPSec с аутентификацией сертификатами хочется продолжить разговор о реализации сего в условиях рабочей группы. Когда все машины находятся в домене, тогда реализация сильно упрощается. Но если у нас нету домена, либо часть машин находится в домене, а другая часть вне домена. Тем более сейчас современные мобильные телефоны, КПК всё чаще оснащаются L2TP клиентами и которые ну никак не могут быть членами домена. Для выдачи сертификатов таким клиентам стандартное решение не подходит. Для выдачи сертификатов недоменным клиентам (под управлением любых ОС поддерживающих цифровые сертификаты, как Windows, Linux, Windows Mobile, Symbian, и т.д.) понадобится Enterprise CA или Standalone CA, который установлен на Windows Server 2003 Enterprise Edition или Datacenter Edition. На Windows Server 2003 Standard/Web Edition данная функция не поддерживается. Начнём с настройки и запроса сертификатов на сервере, где размещён Certification Authority. Помимо службы Certificate Services должен быть установлен веб-сервер IIS с поддержкой Active Script Pages. Дело в том, что запрос сертификатов для недоменных клиентов через оснастку Certificates не поддерживается, а только через веб-интерфейс CA. Но сначала нужно подготовить темплейт для выдачи сертификатов. Для этого нужно запустить оснастку Certification Authority. В оснастке выделить Certificate Templates, потом в меню Action выбрать Manage. Откроется консоль с доступными шаблонами. Для IPSec нам потребуется шаблон IPSec (Offline Request), который необходимо скопировать (нажать правой кнопкой и Duplicate Template). В открывшемся окне редактирования шаблона нужно сделать следующее:
после чего сохранить шаблон. Эту оснастку уже можно закрывать, она больше не понадобится. Теперь можно вернуться обратно в оснастку Certification Authority на позицию Certificate Templates и в Action выбрать New -> Certificate Template to Issue, где в списке выбрать только что созданный шаблон. Теперь нужно выждать время или перезапустить службу Certification Authority (в этой же оснастке), после чего можно приступать к запросу сертификатов. Для доменных компьютеров сертификаты по прежнему запрашиваются как обычно, через оснастку Certificates. Для всех остальных - только через веб-интерфейс. Сконфигурированный по умолчанию веб-интерфейс CA находится по адресу: и должна открыться стартовая страница веб-страницы Certification Authority:
В этом окне нужно нажать на Request Certificate, после чего в следующем окне нажать на Advanced certificate request. На следующей странице нажать на верхнюю ссылку Create and submit a request to this CA. Откроется страница формирования запроса сертификата.
В списке Certificate Template выбрать нами созданный шаблон (в нашем случае, это IPSec non-domain) и в поле Name ввести FQDN имя компьютера (это имя обязательно должно соответствовать полному имени компьютера), для которого предназначается сертификат и выставить галочку напротив Store certificate in the local computer certificate store, после чего нажать Submit. Далее нужно согласиться с предупреждениями и нажать Intstall this certificate и снова согласиться на предупреждение. Данную процедуру нужно повторить для каждого компьютера, который будет использовать IPSec и цифровые сертификаты. Когда все сертификаты будут запрошены веб-страницу CA можно закрыть. Если используется Standalone CA, то нужно вернуться в оснастку Certification Authority и в разделе Pending Requests одобрить все запросы на сертификаты. Enterprise CA по умолчанию сам обрабатывает запросы и выдаёт сертификаты. Теперь нужно экспортировать сертификаты на внешний носитель (включая корневой сертификат данного CA). Для этого нужно запустить оснастку Certificates для Computer Account. Все запрошенные и установленные сертификаты хранятся в контейнере Personal. Зайдя в этот контейнер нужно выбрать каждый сертификат и в меню Action выбрать Export. В мастере экспортирования нужно будет только переключить переключатель, что нужно экспортировать и закрытый ключ для сертификата и задать пароль который потребуется при импорте сертификата. Данную процедуру нужно провести для всех сертификатов, которые нужно перенести на другие компьютеры. Когда все сертификаты экспортированы в файлы с расширением *.pfx на носитель или файловый ресурс (это может быть и FTP) нужно так же скопировать корневой сертификат данного CA. Для CA корневой сертификат располагается как правило в корне системного тома. Данный сертификат потребуется всем машинам для установки доверия этому CA и личный сертификат для конкретного компьютера. На этом работа на сервере CA закончена. Можно приступать к импорту сертификатов на клиентские компьютеры. Например, это будет компьютер в рабочей группе под управлением Windows XP Professional (процедура импорта в Windows Server 2003 и Windows Vista будет аналогичной). Для импорта на сторонний компьютер потребуется 2 сертификата - корневой CA и персональный сертификат для данного компьютера. Для этого нужно запустить оснастку Certificates с указанием Computer Account. После чего выделить контейнер Trusted Root Certification Authorities, и в меню Action нажать Import. В ходе работы мастера импорта корневого сертификата нужно будет указать на сертификат с расширением *.crt и согласиться со всеми предупреждениями. После импорта сертификата список доверенных корневых CA обновится автоматически и там должен появиться CA, который издал компьютерные сертификаты для работы с IPSec. Если всё в порядке, то можно импортировать компьютерный сертификат для данного компьютера. Для этого нужно выделить контейнер Personal и в меню Action нажать Import. В процессе импортирования нужно будет указать *.pfx файл и ввести пароль, который был указан при экспорте сертификата с сервера CA. Следует убедиться, что сертификат импортирован успешно. При двойном клике можно ещё раз проверить параметры сертификата и убедиться, что с ним всё в порядке. После этого при создании политики IPSec в разделе Authentication Metods следует выбрать Certificates и в списке выбрать CA, чей сертификат был импортирован нами для установки доверия. Дальше уже реализация IPSec и управление сертификатами (в том числе и отзыв) ничем не отличается от порядка, описанного в предыдущей статье. з.ы.при написании статьи был использован материал How to create offline L2TP/IPSec Certificates, который я немного переработал и упростил (плюс перевод на русский язык :)) 5/7/2008 IPSec и сертификатыЖизнь - штука коварная и достаточно сложная. Постоянно озадачивает чем-нибудь. На сей раз она озадачила вопросом безопасных коммуникаций через интернет и внутри предприятия. Задача звучит донельзя просто - обеспечить безопасную коммуникацию двух некоторых узлов для одного сервиса. В условиях задачи помимо шифрования так же требуется обеспечить взаимную проверку участников обмена данными. Тут за решением далеко ходить не надо - это IPSec. На первый взгляд всё просто, но в процессе реализации пришлось столкнуться с некоторыми не всегда очевидными и интересными моментами. Итак, имеется домен Active Directory и два узла внутри домена. На узле А размещёна некоторая служба (будь то терминальные службы, будь то незащищённый FTP). Узел Б должен быть единственным узлом, который имеет право доступа к службе на условном сервере. При этом весь трафик данной службы подлежит обязательному шифрованию и проверке целостности/неизменности пакетов во время передачи данных. В первую очередь предстояло подумать на предмет надёжной аутентификации обоих узлов. Если говорить про IPSec, то он предлагает 3 варианта аутентификации:
Kerberos в данном случае не поможет, т.к. он позволит аутентифицировать любой компьютер в сети, для которого есть разрешённая учётная запись в Active Directory. Shared Key - просто и гламурно, но не сильно безопасно. Вариант с цифровыми сертификатами в данном случае выглядит более предпочтительным, но и наиболее сложным в плане реализации и поддержке. Для этих целей потребуется развернуть (если его ещё нету) или использовать существующий Enterprise Certification Authority (Enterprise CA). Посредством этого CA необходимо издать для обоих компьютеров сертификат, у которого в поле Purposes указано Server/Client Authentication. Для этого достаточно с каждого компьютера запустить оснастку Certificates для локального компьютера, в меню View выбрать Options и там выставить переключатель в Certificate Purpose. После чего нажать правой кнопкой на Server или Client Authentication (в зависимости от роли компьютера) и выбрать Request New Certificate. В списке доступных шаблонов можно выбрать шаблон IPSec, который идеально подходит для наших целей. Если данный шаблон не предлагается в мастере, то необходимо зайти в оснастку Certification Authority выделить Certificate Templates. Далее Action -> New -> Certificate Template to Issue. Для проверки можно убедиться, что сертификаты выданы можно просмотреть секцию Issued Certificates в оснастке Certification Authority. Напомню, если кто-то не знает, то IPSec может работать только с сертификатами компьютеров, т.к. он работает на сетевом уровне модели OSI, который находится ниже уровня пользователя и приложений. Поэтому работа IPSec для пользователя полностью прозрачна. Теперь можно приступать к реализации политики IPSec. Для данной статьи для защиты был выбран протокол RDP (вместо него можно использовать любой другой). Для запуска консоли IPSec можно запустить консоль secpol.msc и в самом низу будет IP Security Policies. В правой секции нажимаем правой кнопкой и выбираем создание новой политики. Копками Next-Next проходим создание политики, по ходу заполняя нужные поля. Назовём эту политику Custom. Создавать Default Response Rule не обязательно. После создания новой политики мы получим примерно такое окно:
Как известно, по умлочанию дефолтное правило IPSec - запрещено всё, что не разрешено. Поэтому для начала нужно разрешить протекание всего трафика для компьютера, иначе ничего работать не будет. Поэтому в основном окне политики нажимаем кнопку Add и кнопками Next двигаемся вперёд. В окне Tunnel Endpoint указываем, что данное правило не использует туннель IPSec, далее в списке IP Filter List выбираем уже готовое правило All ICMP Traffic и выбираем для него действие Permit. Ту же самую процедуру проделываем и для правила All IP Traffic (в списке IP Filter List). В результате мы должны получить вот такую картину:
если оставить всё как есть, то после применения политики ничего не изменится, т.к. весь трафик разрешён, как IP, так и ICMP. Эту операцию необходимо выполнить на обоих компьютерах-участников защищённого соединения. Теперь нужно создать правило прохождения трафика RDP. Сначала возьмём условный сервер. Возвращаемся к окну редактирования основной политики. Для этого снова нажимаем Add и доходим до окна IP Filter List без изменений. В окне IP Filter List нажимаем кнопку Add. В окне редактора правил вводим созвучное название правилу, например, RDP Server и сбоку ещё раз нажимаем Add. В окне IP Filter Description and Mirrored property убеждаемся, что выставлен чек-бокс напротив Mirrored. Суть этой галочки в том, что она позволяет как получать запрос, так и отправлять ответ используя одно и то же правило. В нашем примере RDP трафик для сервера характеризуется следующими характеристиками:
применяем все изменения и возвращаемся снова в окно IP Filter List, где выбираем новое правило - RDP Server. Переходим кнопкой Next на окно действия фильтра. Можно выбрать Require Security, но для практики мы создадим самое жёсткое действие - HardSecurity, поэтому нажимаем кнопку Add, вводим название, далее шаблон действия - Negotiate Security, следующее окно пропускаем без изменений и доходим до окна IP Traffic Seccurity. Здесь мы можем выбрать режим защиты. Можно выбрать следующее:
В условиях статьи использовался Integrity and Encryption. Когда создание действия фильтра сделано, в окне Filter Action (куда мы вернёмся после создания нового действия фильтра) и нажимем Next. Т.к. мы выбрали Negotiate Security (согласование безопасности), то в окне Authentication Metod нужно выбрать метод аутентификации участников соединения. Т.к. мы находимся в домене, где есть Enterprise CA и для компьютеров уже изданы сертификаты, то выбираем метод аутентификации сертификатами. При нажатии кнопки Browse откроется список всех доступных CA, для которых на локальном компьютере есть корневые сертификаты и которым данный компьютер доверяет. Поэтому сертификаты компьютерам может выдавать не только доменный Enterprise CA, но и любой доверенный. Т.к. сертификаты для компьютеров выдал доменный CA, то в списке нужно указать именно его. Если всё сделано правильно, то основное окно политики должно выглядеть примерно так:
Ту же самую процедуру проделываем и на клиенте за одной лишь разницей: при создании нового фильтра в отличии от сервера меняются местами Source Address и Destination Address. Всё остальное делается точно так же. Когда всё будет завершено кнопкой Ok закрываем основное окно редактора политики. Применить политику легко - правой кнопкой на политику и нажать Assign. Следует отметить, что политика применяется мгновенно. Если применить политику только на одном компьютере, то коммуникации по протоколу RDP не произойдёт, поскольку второй участник соединения не будет знать как согласовывать безопасность и его подлинность не удастся проверить. Если теперь применить созданную политику на всех компьютерах-участниках защищённого соединения, то RDP трафик станет шифрованный с проверкой подлинности каждого пакета. Пользователь не будет знать, что RDP трафик защищён, всё будет предельно прозрачно для пользователя. Теперь можно перейти к насущным вопросам реализации IPSec Необходимо понимать, что на пути между двумя узлами не должно быть NAT-маршрутизаторов. Дело в том, что NAT изменяет заголовки пакетов, после чего пакеты по мнению IPSec будут считаться повреждёнными и будут дропаться. Для Windows XP SP2, Windows Server 2003, а для Windows 2000 в виде отдельного обновления есть возможность использования NAT-Traversal (NAT-T), который обеспечивает прохождение IPSec трафика через NAT-маршрутизаторы. Подробнее об этом и ограничениях можно почитать тут: http://support.microsoft.com/kb/818043 И немного о сертификатах Если сертификат компьютера в CA будет по каким-то причинам отозван, то в теории коммуникация посредством этого сертификата будет невозможно. Но на практике всё не совсем так. Дело в том, что даже если зайти в CA домена и отозвать один из сертификатов, которые были изданы для IPSec (или оба сертификата), то защищённое соединение будет установлено с использованием отозванного сертификата! Как так? Здесь нужно учитывать два момента:
Как работают различные системы со списками CRL при проверке сертификата (адреса, по которым доступны списки CRL публикуются в самом сертификате):
Для того, чтобы включить принудительную проверку списков CRL и блокировать использование сертификата при недоступности списка CRL можно пойти двумя путями: netsh ipsec dynamic set config strongcrlcheck value=2 данная команда включит принудительную проверку списков CRL только на момент текущей сесси. После перезагрузки компьютера вновь будет использоваться дефолтное значение. Чтобы использовать строгую проверку постоянно нужно отредактировать (или создать, если не существует) следующее значение реестра: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\PolicyAgent\Oakley необходимо изменить (или создать, если отсутствует) параметр типа DWORD с именем StrongCRLCheck. Значение этого параметра может принимать 3 значения:
Вот, в принципе, и всё, о чём я хотел сегодня рассказать. Может, несколько сумбурно, просто старался акцентировать внимание на наименее очевидные моменты реализации развёртывания IPSec с использованием цифровых сертификатов. 1/14/2008 Сетевое окружениеОбозреватель компьютеров – Computer Browsing Достаточно часто в интернете возникают вопросы и проблемы с отображением компьютеров в сетевом окружении. Как показывает практика, проблема на самом деле возникает не в сетевом окружении, а в том, что многие пользователи не знают или не понимают принцип работы службы обозревателя компьютеров. Хотя в интернете размещено достаточно много хорошего материала по теме обозревателя, но зачастую он непонятен не то, чтобы рядовому пользователю, но и нередко системным администраторам. Так же значительная часть материала написана на английском языке, что для рядовых пользователей может составлять трудность. Служба обозревателя компьютеров используется уже более 10 лет, но вопросы по ней задаются до сих пор. Хочется оговориться, что служба обозревателя и сетевое окружение сейчас является устаревшей моделью доступа в доменной среде Active Directory и Microsoft постепенно отказывается от неё в сторону распределённой файловой системы DFS (Distributed File System). Это оправданное решение, т.к. служба обозревателя генерирует достаточно много широковещательного трафика (в следствии чего падает пропускная способность сети и снижается безопасность сети), имеет множество ограничений и имеет негарантированные (неконтролируемые) моменты в своей работе. В данной статье я постараюсь достаточно доступно и понятно рассмотреть работу службы обозревателя, особенности различных организаций (имплементаций) и связанные с ней проблемы. ![]() Здесь показано и выделено место в свойствах сетевого адаптера, где выставляется параметр Client for Microsoft Networks. В следующем окне показано, как включить NetBIOS over TCP/IP (или как его называют NetBT или совсем просто NBT. Здесь и далее буду использовать сокращения). Как уже сказано выше, в качестве транспорта для трафика сетевого окружения будет использоваться транспорт NetBIOS поверх TCP/IP. ![]()
А так же необходимо позволить системе отправлять данные на эти же порты удаленных компьютеров.
Выборы главного обозревателя (мастер-браузера) и роли обозревателей Теперь необходимо выбрать несколько компьютеров на роль кандидата главного обозревателя сети или мастер-браузера. Не вдаваясь в глубокие рассуждения, скажу, что для этих целей не стоит(!) использовать компьютеры у которых активированы несколько сетевых карт, т.е. multihomed компьютер. Тут введу ещё одно понятие: Сочетание 3-х вещей:
http://support.microsoft.com/kb/191611/ru http://support.microsoft.com/kb/188305/ru# (см.вторую часть) http://support.microsoft.com/kb/181774 http://support.microsoft.com/kb/166159 Поэтому службу Computer Browser по необходимости следует запускать только на компьютерах имеющие активную только одну сетевую карту. Браузеры между собой могут разделять 5 ролей: 1)мастер-браузер (master browse server) - Как уже говорилось выше, в сети (в логической группе) должен быть один главный обозреватель, который будет собирать списки компьютеров и их расшаренных ресурсов в единый список, который называется список обозревателя (browse list) для всей рабочей группы или домена, если он является так же и доменным обозревателем (о нём написано ниже). Мастер-браузер практически никогда не обслуживает клиентов, за него это делают резервные браузеры. Поэтому мастер-браузер лишь собирает сведения от клиентов и пересылает копию списка обозревателя резервным браузерам, с которыми уже непосредственно контактируют клиенты. Мастер-браузер выбирается в сети посредством выборов. О самом процессе выборов будет написано ниже. 2)доменный мастер-браузер (domain master browse server) – это тот же главный обозреватель сети, но его область действия не ограничивается одной рабочей группой, а всем доменном. Исходя из названия можно предположить, что данный браузер будет доступен только в условиях домена Active Directory. Доменный мастер-браузер имеет право собирать списки компьютеров и расшаренных ресурсов со всех удалённых подсетей (которые находятся за маршрутизатором) в пределах всего домена. Эта роль всегда назначается первому контроллеру домена или контроллеру домена, который держит FSMO роль – эмулятор PDC (PDC Emulator), т.к. только эмулятор PDC имеет некоторые особенные возможности, которыми не обладают другие браузеры. Доменный мастер-браузер выбирается посредством условных выборов и эта роль всегда закрепляется за эмулятором PDC. Почему условно – лишь для соблюдения формальности и избежания ситуации, когда может быть одновременно два доменных мастер-браузера. Как правило доменный обозреватель совмещает и роль мастер-браузера в своей подсети. Так же добавлю, что во всём домене может быть только один контроллер, который держит FSMO роль эмулятора PDC. В случае выключения контроллера домена, который является эмулятором PDC, то в домене не назначаются новые выборы и домен остаётся без доменного мастер-браузера, а только резервные браузеры, которыми как правило становятся дополнительные контроллеры домена. 3)резервный браузер (backup browse server) – это браузер, который проигрывает выборы на роль мастер-браузера. Резервные браузеры периодически (с интервалом от 1 до 12 минут) получают копии списка обозревателя от мастер-браузера и по требованию клиента отправляют ему этот список. Резервные браузеры не составляют сами этот список, а только получают его от главного обозревателя. В случае, если из сети выйдет мастер-браузер или тот перестанет отвечать копиями списка обозревателя резервные браузеры форсируют новые выборы мастер-браузера. 4)потенциальный браузер (potential browser) – это то тот же самый кандидат в мастер-браузеры, за исключением того, что при полном комплекте резервных браузеров (о комплектации сети браузерами будет сказано ниже) он прекращает быть браузером и становится клиентом до первого требования главного обозревателя, когда необходимо повысить свою роль до резервного обозревателя. Роль потенциального браузера можно определять в реестре: HKLM\System\CurrentControlSet\Services\Browser\Paramters И там есть ключ MaintainServerList, который может принимать 3 значения:
5)предпочтительный браузер (preferred master browser) – это специально настроенный кандидат в мастер-браузеры, который всегда выигрывает выборы. Ввиду этого факта, настройку данного типа браузера стоит выполнять только при чётком понимании процесса выборов и когда в этом есть необходимость. Настроить предпочтительного обозревателя можно в реестре: HKLM\System\CurrentControlSet\Services\Browser\Parameters В котором надо изменить параметр REG_SZ (а если его нету, то создать) IsDomainMaster и его значение выставить в True. Если же значение отсутствует или выставлено в False, или No, то компьютер такой ролью обладать не будет. К слову, первый контроллер домена в сети или держатель роли эмулятора PDC носит статус предпочтительного браузера. И при наличии в домене нескольких контроллеров, держатель роли эмулятора PDC при любом раскладе выиграет выборы, т.к. только он может быть доменным мастер-браузером. На заметку: Казалось бы, зачем объявлять новые выборы, если предпочтительный браузер всё равно выиграет их? Дело в том, что в любой момент времени в одной логической сети не может быть больше одного мастер-браузера, поэтому при любых объявлениях выборов текущий мастер-браузер обязан понизить себя до резервного барузера и в этот момент до окончания выборов в сети главного обозревателя не будет. Когда в сети появится предпочтительный обозреватель, то он объявляет себя мастер-браузером и сигналом объявления выборов делает себя единственным мастер-браузером, т.к. по правилам, при получении сигнала о начале выборов текущий мастер-браузер должен понизить свою роль. Внимание!!! вышеупомянутые параметры реестра не следует изменять без острой необходимости в этом. Изменение данных значений может вызвать конфликты обозревателей в сети и необходимо отслеживать, чтобы в сети было бы не более одного предпочтительного обозревателя. Следовательно, службу Computer Browser следует включить в режим Automatic только на тех компьютерах, которые должны быть либо главными обозревателями, либо резервными. Выше мы говорили о 5, а не 2-х ролях, но остальные 3 роли являются лишь расширениями основных двух ролей – главного и резервых браузеров. На остальных же компьютерах выставить Manual или Disabled. При запуске компьютеров в сети все компьютеры с запущенной службой Computer Browser приступают к выборам главного обозревателя сети (остальные мирно слушают эфир и ждут окончания выборов). В общем случае выборы назначаются в 3-х случаях:
В качестве критериев определения лучшего используются следующие основные параметры:
Браузер, получивший данный пакет сравнивает все эти показатели со своими и выясняет, является ли он более лучшим, чем тот компьютер, который отправил этот пакет. Своё мнение компьютер выражает в ответном пакете отправителю. ![]() Здесь в виде больших компьютеров я показал те компьютеры, на которых была запущена служба Computer Browser, а в виде маленьких – где эта служба не запущена. При включении компьютеров в сеть, компьютер PC1 посылает в сеть сигнал о начале выборов (Election datagram) со своими показателями критериев выборов как это показано на следующем рисунке: ![]() Компьютеры PC2 и PC5 срванивают показатели компьютера PC1 со своими и генерируют ответное сообщение с указанием своего статуса (хуже, или лучше). Если PC1 будет настроен как предпочтительный браузер, то он станет мастер-браузером в любом случае, т.к. этот статус имеет наивысокий приоритет. На картинке изображено, что PC1 выиграл выборы и стал мастер-браузером для сети Workgroup (сбоку пририсована папочка), т.к. он работает под управлением Windows 2000 Server, который имеет приоритет перед Windows XP. И PC1 отправляет в сеть широковещательный пакет с указанием своего имени и имени своей логической группы (логическую группу ещё называют LAN-группой), который называется Workgroup Announcement или Domain Announcement и которым мастер-браузер объявляет себя в сети. После выборов компьютер PC1 отправит в сеть другой запрос на объявления компьютеров специальным широковещательным пакетом RequestAnnouncement. Клиенты (и резервные браузеры) начинают объявлять себя мастер-браузеру (т.е. компьютеру PC1). После того как все компьютеры объявят себя мастер-браузер составит список для сетевого окружения именнуемого списком обозревателя (browse list) и отправит его копию каждому резервному браузеру, т.е. компьютерам PC2 и PC5 в нашем примере. На следующем рисунке эта процедура отмечена стрелочками с цифрой 1. ![]() Теперь клиент захочет посмотреть список компьютеров в сети. Для этого он отправляет в сеть широковещательный запрос GetBackupList [цифра 2 на рисунке] на поиск мастер-браузера и получения списка резервных браузеров, на который мастер-браузер отвечает [3] списком, который будет состоять из PC2 и PC5. Клиент произвольно выбирает себе понравившегося бэкап-браузера и уже у него запрашивает список компьютеров в сети [4]. Резервный браузер отвечает списком [5] и клиент публикует его в окне My Network Places в котором будут отражены компьютеры PC1, PC2, PC3, PC4 и PC5. Если в этом окне зайти на любой компьютер, то клиент уже не будет обращаться к браузеру а будет контактировать напрямую со своим собеседником, которого он хочет посмотреть. Точно так же будет работать и доменная сеть, когда все компьютеры домена находятся в одном сегменте. Можно сразу сказать, что в качестве компьютера PC1 на рисунке будет выступать первый контроллер домена, или другой контроллер, который держит роль эмулятора PDC. Работа нескольких обозревателей в одном сегменте Бывают ситуации, когда мы хотим разделить один физический сегмент на несколько логических рабочих групп, например Workgroup и Workgroup1. Как уже сказано выше, при объявлении самого себя мастер-бразуер отправляет в сеть специальный пакет Workgroup Announcement или Domain Announcement (только если компьютер находится в домене), который слушают не только клиенты своей логической группы, но и мастер-браузеры других логических сетей. Когда мастер-браузер другой сети получает такой пакет, то он добавляет в список новую логическую группу и имя главного обозревателя той сети. И если клиент захочет обратиться к компьютеру из другой LAN группы, то он от своего мастер-браузера получает список доступных логических групп в данном сегменте и связанных с ними мастер-браузеров. И клиент просто отправляет в сеть широковещательный пакет GetBrowserList, но с указанием имени конкретной LAN-группы. Тогда мастер-браузер указанной в запросе LAN-группы возвращает клиенту список бэкап-браузеров и вся остальная работа сводится к работе, которая описана в предыдущей главе. Разница лишь в том, что для каждой логической группы избирается свой собственный мастер-браузер. И только мастер-браузер собирает названия других логических групп и имена связанных с ними мастер-браузерами (списки компьютеров других LAN-групп они не собирают, только для своих). Эта информация будет доступна и клиенту. Выглядеть это будет примерно следующим образом: ![]()
Работа двух логических групп в двух физических сегментах Предположим, у нас есть два физических сегмента сети, которые соединены между собой посредством маршрутизатора (роутера), как это показано на рисунке: ![]() У нас есть две логические группы (LAN-группы) которые называются Workgroup и MyGroup. Каждая группа находится в своём физическом сегменте и эти сегменты соединены между собой маршрутизатором. Каждая LAN-группа сама по себе будет работать как описано в разделе "Работа обозревателя в одном физическом сегменте" данной статьи. Но как быть, если мы захотим просмотреть список компьютеров группы MyGroup из LAN-группы Workgroup? Как известно, каждый мастер-браузер объявляет себя другим мастер-браузерам в сегменте путём широковещательного сообщения Workgroup Announcement. Но маршрутизатор не пропустит через себя этот пакет в другую сеть (маршрутизаторы не перенаправляют широковещательные сообщения), а значит, мастер-браузер сети Workgroup не узнает, что в сети существует LAN-группа MyGroup и кто в ней является мастер-браузером. К сожалению (а может и к счастью) в условиях рабочей группы нету никакого механизма, чтобы реализовать просмотр списка компьютеров из другого физического сегмента сети. Работа одной логической группы в двух физических сегментах Допустим, у нас есть два сегмента сети, которые соединены маршрутизатором, но все компьютеры в этих сегментах состоят в одной LAN-группе под названием Workgroup как это изображено на рисунке: ![]()
Работа сетевого окружения в домене, поделённого на сегменты маршрутизатором Итак, мы узнали, что в среде рабочей группы с маршрутизатором LAN-группы не могут общаться между собой через сетевое окружение, находясь в разных сегментах сети. Если в сети реализован домен, то здесь у нас есть возможность воспользоваться особыми возможностями доменного мастер-браузера, которыми не обладают остальные мастер-браузеры. Но и в домене не всё так просто, как, наверное, хотелось бы. Рассмотрим следующую картинку: ![]()
Более подробно о функциях и настройки WINS можно прочитать тут: http://technet.microsoft.com/en-us/library/bb727015.aspx Работа сетевого окружения при отключении компьютеров от сети В предыдущих главах мы рассмотрели процесс работы сетевого окружения при подключении и постоянной работе компьюетров в сети. Теперь осталось рассмотреть поведение сети и сетевого окружения, когда компьютеры выходят из сети как в штатном режиме (т.е. корректно выключаются), так и в аварийном (например, отключилось питание или компьютер просто отключён от сети (не от питающей)).
|
|
|