Минимум административных сессий с помощью LimitLogin

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

Ограничение числа сессий для одного пользователя поддерживается собственными средствами многих операционных систем — например, Novell NetWare, но в Windows до сих пор таких средств не было. Теперь Microsoft предлагает дополнительный инструмент для Windows, который можно использовать для ограничения числа одновременных сессий в Windows. Рассмотрим, как работает инструмент LimitLogin, как его установить и настроить так, чтобы число сессий от лица Administrator, открытых в данный момент, было ограничено.

Требования и компоненты

Инструмент LimitLogin представляет собой усовершенствованную версию инструмента Cconnect, которая входит в комплект ресурсов Microsoft Windows 2000 Server Resource Kit. Cconnect предоставляет основную функциональность для ограничения числа одновременных сессий в средах Windows 2000 и Windows NT 4.0, а LimitLogin обеспечивает более эффективное управление регистрацией при работе с Active Directory (AD) и административными средствами AD. Инструмент LimitLogin добавляет в AD данные по количеству подключений; для Cconnect необходима база данных SQL Server. Так же как Cconnect, LimitLogin может ограничивать только интерактивные сессии и сессии служб Windows Terminal Services. Интерактивные сессии — это сессии, которые пользователи и администраторы инициируют с консоли (нажатием Ctrl+Alt+Del или в окне регистрации Windows XP Welcome).

Для инструмента LimitLogin нужна среда Windows Server 2003 AD и Web-сервер Microsoft IIS 6.0, который имеет разблокированную поддержку ASP.NET. Оба сервера также должны иметь уже загруженную инфраструктуру .NET Framework 1.1 или более поздней версии.

LimitLogin работает на следующих клиентских платформах Windows: Windows 2003, XP Professional Service Pack 1 (SP1), Windows 2000 Professional SP4 и Windows 2000 Server SP4, а также более новых версиях. Как в случае с другими утилитами из набора ресурсов и дополнениями Windows, служба поддержки Microsoft Product Support Services (PSS) не оказывает официальной поддержки LimitLogin. Используя LimitLogin, нельзя проследить процесс регистрации на тех рабочих станциях, которые управляются операционными системами, не поддерживающими LimitLogin.

Инструмент LimitLogin требует наличия конфигурационных изменений и специальных компонентов клиентов Windows, Web-сервера IIS 6.0 и контроллеров доменов AD (DC). Большая часть этих изменений и компонентов создается автоматически, когда устанавливается программа Limit-Login. Сценарии регистрации и завершения сеанса, которые использует LimitLogin (llogin.vbs и llogoff.vbs), поставляются с программным обеспечением, но они должны копироваться вручную на общий ресурс, к которому могут иметь доступ указанные клиенты Windows. Кроме того, пользовательские настройки объекта групповой политики Group Policy Object (GPO) сценариев регистрации и завершения сеанса (находятся в контейнере User Configuration/Windows Settings/Scripts (Logon/Logoff) GPO) должны меняться вручную для указания на конкретные сценарии. Эти сценарии дают дополнительную нагрузку к обычному сценарию регистрации.

Компоненты клиентской стороны LimitLogin состоят из среды исполнения Simple Object Access Protocol (SOAP), специального набора DLL для LimitLogin и исполняемых файлов. На Web-сервере LimitLogin устанавливает Web-службу LimitLogin в виртуальном каталоге WSLimitLogin. По умолчанию WSLimitLogin создается на Web-узле Default Web, а доступ к Web-службе выполняется через порт 80.

Экран 1. Раздел приложения LimitLogin в AD

Хотя клиент LimitLogin не передает пользовательские учетные данные Web-службе, Microsoft рекомендует организациям с более строгими требованиями системы безопасности вручную настраивать протокол защищенных сокетов Secure Sockets Layer (SSL) для виртуального каталога WSLimitLogin. Автоматически LimitLogin не предоставляет эту защиту SSL.

LimitLogin расширяет схему AD и создает раздел приложения для размещения данных настройки LimitLogin — вот почему для LimitLogin нужна служба Windows 2003 AD. На экране 1 показан вид раздела приложения LimitLogin AD в окне Microsoft Management Console (MMC) оснастки ADSI Edit (который приходит с набором Windows Server 2003 Support Tools).

Раздел приложения AD называется DC=limitlogin,dc=domainname,dc=domainname. Новый тип объекта LimitLogin, который использует для хранения квоту сессий, называется msLimitLoginUser. Он имеет следующие атрибуты LimitLogin:

  • msLimitLoginDenyLoginOnQuota Exceed — пользователь доступен для проверки LimitLogin, если значение этого параметра установлено в true;
  • msLimitLoginQuota — данный атрибут содержит квоту сессий LimitLogin;
  • msLimitLoginInfo — этот атрибут содержит текущие сессии, которые зарегистрированы в настоящее время в AD. Данные в этом атрибуте сравниваются с квотой в предыдущем атрибуте для принятия решения о возможности организации пользователем другой сессии;
  • MsLimitLoginUsername — этот атрибут содержит имя учетной записи пользователя.

Объект AD и его атрибуты можно настроить с помощью расширений LimitLogin оснастки MMC Active Directory Users and Computers и утилит командной строки LimitLogin, которые будут описаны ниже.

Функционирование

На рисунке показаны компоненты и функционирование LimitLogin в момент регистрации пользователя в интерактивном режиме в домене Windows с запущенной службой LimitLogin. Происходят следующие события:

  1. Пользователь инициирует последовательность интерактивной регистрации с клиента Windows. Сценарий регистрации LimitLogin (Llogin) запускается.
  2. Сценарий Llogin посылает данные о пользователе и компьютере в Web-службу LimitLogin. Данные посылаются в формате XML с помощью SOAP, они содержат имя пользователя, имя компьютера, IP-адрес, ID сессии и аутентифицирующий DC.
  3. Web-служба LimitLogin проверяет, отслеживается ли пользователь LimitLogin, и если да, то какова квота на количество сессий пользователя. Эти данные хранятся в разделе приложения LimitLogin в AD.
  4. AD дает ответ на запрос.
  5. Если пользователь не отслеживается LimitLogin, служба LimitLogin Web вызывает сценарий регистрации, который должен продолжить обычный процесс регистрации пользователя. Если пользователь отслеживается Limit-Login и имеет установленную квоту на сессии, служба LimitLogin Web определяет число сессий, которые в настоящее время открыты пользователем в разделе приложения LimitLogin. С этого момента возможны два варианта: если квота на сессии пользователя больше числа зарегистрированных сессий в AD, то Web-служба обновляет информацию о сессиях в разделе приложения LimitLogin и позволяет сценарию регистрации продолжать процесс регистрации в нормальном режиме.
Рисунок. Схема функционирования LimitLogin

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

Установка

LimitLogin можно загрузить по адресу http://download.microsoft.com/download/f/d/0/fd05def7-68a1-4f71-8546-25c359cc0842/limitlogin.exe. Установка LimitLogin относительно проста. Этот инструмент включает три установочных исполнимых файла: один для установки компонентов Web-сервера (limitloginiissetup.msi), второй для установки компонентов AD на DC (limitloginadsetup.msi) и третий для установки компонентов на клиентской стороне (limitloginclientsetup.msi). Необходимо запускать эти установочные программы в следующем порядке: сначала установка для Web-сервера, потом установка для AD и, наконец, установка на клиентской стороне.

Установка компонента LimitLogin для Web-сервера позволяет указать специальное имя виртуального каталога и порт Web-службы LimitLogin. Установка для Web-сервера требует наличия административных прав на Web-сервере.

Как указывалось ранее, установочные программы LimitLogin не позволяют настраивать SSL для LimitLogin. При настройке SSL для Web-службы LimitLogin необходимо внести изменения только на стороне сервера. Следует установить сертификат SSL на стороне сервера и связать его с Web-службой LimitLogin.

Таблица. Параметры LimitLogin Delete/Logoff в реестре

Также необходимо отредактировать файл limitlogin.wsdl, который помещается в общем ресурсе LimitLogin (см. ниже — этот общий ресурс содержит сценарии регистрации и завершения сеанса LimitLogin). В файле limitlogin.wsdl надо изменить все URL-адреса, которые имеют отношение к Web-службе LimitLogin, с HTTP на HTTPs. Все URL-адреса, которые требуется изменить, находятся в разделе файла limitlogin.wsdl.

Программа установки LimitLogin для AD состоит из трех частей, которые предназначены для подготовки леса AD, домена AD и установки расширений LimitLogin для оснастки Active Directory Users and Computers. Можно инициировать с командной строки часть установки для леса AD, запустив LimitLoginADSetup.exe с помощью ключа /ForestPrep. Инициировать с командной строки часть установки для домена можно, запустив LimitLoginADSetup с ключом /DomainPrep.

Для инициации первых двух частей запуск LimitLoginADSetup необходимо выполнять от имени учетной записи с привилегиями Schema Administrator в корневом домене леса. При этом требуется запускать инструмент на контроллере леса, который играет роль мастера именования домена Domain Naming Master. Чтобы определить, какой это DC, можно воспользоваться командой Ntdsutil.

Последнюю часть программы установки, установку расширений LimitLogin для Active Directory Users and Compu -ters, можно инициировать с привилегиями доменного администратора (Domain Administrator) на любом DC леса или с привилегиями Administrator на узле Windows — в случае использования административных средств Administrative Tools для управления AD с любого узла сети.

Подготовка леса расширяет схему AD и модифицирует контекст конфигурации AD. Подготовка домена создает раздел приложения LimitLogin в AD и сценарии регистрации и завершения сеанса LimitLogin (logon и logoff). В процессе подготовки домена можно указать DC, на котором предстоит создавать раздел приложения LimitLogin.

В целях высокой отказоустойчивости или восстановления в аварийных ситуациях можно было бы создать реплику раздела приложения LimitLogin на нескольких DC. В разделе Advanced Configuration Options файла подсказки LimitLogin Help описано, как это можно сделать.

Экран 2. Напоминание о необходимости скопировать сценарии регистрации и завершения сеанса

В конце установки для AD необходимо вручную скопировать сценарии регистрации и завершения сеанса LimitLogin на общий ресурс и указать на них в настройках GPO домена. Программа установки Limit-Login напомнит об этом в конце этапа установки LimitLogin для AD (как показано на экране 2).

На этапе установки LimitLogin для AD создаются подробные регистрационные файлы: %systemdrive%program fileslimitloginlimitloginadsetup .log и %systemdrive%windowssystem32 ldif.log.

Можно инициировать программу установки клиента LimitLogin вручную или в автоматическом режиме. Автоматические параметры для централизованной установки используются в Microsoft Systems Management Server (SMS), объектах GPO и сценариях регистрации. Для инициирования установки клиента с командной строки в фоновом режиме (без вмешательства пользователя) следует воспользоваться limitloginclientsetup .msi с ключом /qn. Поскольку в ходе этой процедуры устанавливается клиент SOAP, здесь требуются права администратора.

Если Web-служба LimitLogin не работает на DC, содержащем раздел приложения LimitLogin, необходимо убедиться, что вы делегировали доверие учетной записи Web-сервера с LimitLogin DC. В разделе LimitLogin Active Directory Setup файла подсказки LimitLogin Help поясняется, как это сделать.

Настройка и применение

Для настройки отслеживания одновременных сессий пользователей AD лучше всего задействовать оснастку Active Directory Users and Computers. Программа установки LimitLogin для AD добавляет в эту оснастку несколько параметров настройки LimitLogin. Доступ к меню LimitLogin Tasks возможен из контекстного меню объектов пользователя, компьютера и организационного подразделения (OU).

Экран 3. Диалоговое окно конфигурирования для пользовательского объекта LimitLogin

На экране 3 показано диалоговое окно настройки, которое появляется при выборе пункта LimitLogin Tasks для учетной записи пользователя — в приведенном примере учетной записи администратора. В этом диалоговом окне показаны системы, на которых выбранный объект зарегистрировался в настоящее время интерактивно. Это же окно можно применять и для завершения выбранной сессии, и для удаления из раздела приложений LimitLogin в AD, и для сохранения отчета в формате CSV (comma-separated value) или XML, и, что наиболее ценно, для настройки квот на одновременные сессии.

Для настройки квоты нужно нажать Configure, чтобы открыть окно Configure LimitLogin (см. экран 4), которое позволит задать число квот или указать, что квоты настраиваться не будут. В приведенном примере для учетной записи Administrator, как правило, разрешается только одна сессия, т. е. надо присвоить учетной записи Administrator значение квоты равное «1».

Экран 4. Настройки квоты на сессии в LimitLogin

LimitLogin поставляется с примером на VBScript, который автоматизирует настройку квот одновременных сессий для всех пользователей указанного OU или домена. Этот сценарий имеет имя bulk_limituserlogins.vbs; он находится в папке %systemdrive%program fileslimitlogin на DC, на котором установлен LimitLogin.

При выборе пункта контекстного меню LimitLogin Tasks на объекте компьютера появляется диалоговое окно, где перечислены все пользователи, которые в настоящее время зарегистрировались интерактивно. В диалоговом окне также можно удалить или завершить выбранные сессии — например, сессии для Administrator, переместить информацию на удаленную систему и сохранить в отчете со списком интерактивных сессий в формате CSV или XML. Если выбрать сессию и щелкнуть по Delete/Logoff Selected Sessions, LimitLogin по умолчанию удалит сессию из раздела приложения в AD и завершит удаленную сессию, не выводя администратору подсказки для подтверждения. Работу процессов удаления и завершения в LimitLogin можно настроить, щелкнув по ссылке Click Here to Set Logoff Options (щелкнуть здесь для настройки параметров завершения) в диалоговом окне (см. экран 5).

Экран 5. Настройка процессов удаления и завершения сеанса в LimitLogin

LimitLogin предлагает следующие параметры настройки работы для процессов удаления/завершения (delete/ logoff):

  • Attempt to Remotely Logoff the selected session(s). Попытка удаленного завершения выбранной сессии. Данный параметр выбран по умолчанию. Если убрать этот флаг, выбранные сессии будут просто удалены из раздела приложения LimitLogin в AD, при этом не будут инициироваться попытки завершения сеанса.
  • Prompt and confirm every selected session before attempting Remote Logoff. Подсказка и подтверждение закрытия всех сессий до попытки выполнить удаленное завершение. Этот режим по умолчанию отключен. Если выбрать данный режим, LimitLogin попросит администратора подтвердить завершение сессии.
  • Logoff all selected sessions without prompting (Yes to All). Завершить все выделенные сессии без подсказок (да, для всех). Этот режим выбран по умолчанию, он завершает выделенные сессии без подтверждения администратора.
  • Wait for Remote Logoff attempts to complete and report status. Подождать удаленного завершения и сообщить статус. Этот флаг установлен по умолчанию. При установке данного флага LimitLogin будет ждать возвращения сообщения о статусе от удаленного хоста после инициирования процедуры завершения сеанса.

Можно также установить настройки режима работы операций удаления/завершения в системном реестре компьютера, на котором используется оснастка Active Directory Users and Computers с установленными расширениями LimitLogin. В таблице показаны соответствующие параметры системного реестра и их значения. Все они находятся в разделе реестра HKEY_CURRENT_USER Software MicrosoftLimitLogin.

Пункт LimitLogin Tasks в контекстном меню объекта OU можно применять для установки квот на одновременные сессии сразу для всех пользовательских объектов в выбранном OU.

Экран 6. Сообщение с предупреждением о завершении

Если необходимо, чтобы служба LimitLogin информировала администратора о месте, где он зарегистрировался (как показано на экране 6) до завершения сессии администратора, придется изменить сценарий регистрации Llogin для LimitLogin. В нем нужно просто удалить знаки комментария в следующих строках:

? wshShell.run «lloginsessions « & loginok

? wscript.sleep 1OOOOO

Как показано выше, можно также использовать LimitLogin в качестве инструмента для сообщений о сессиях. Можно создать файлы в формате XML или CSV из оснастки Active Directory Users and Computers. Для генерации отчетов о сессиях, которые охватывают целые домены, можно запустить утилиту llogincmd.exe с командной строки с ключом /report.

Ту же утилиту можно ввести с командной строки с ключом /diag для инициирования диагностики LimitLogin (см. экран 7). Для удаления всей информации из раздела LimitLogin в AD нужно запустить Llogincmd с ключом /ClearLogins. Для синхронизации информации о пользовательских учетных записях и их именования в разделе LimitLogin в AD с соответствующими им записями в AD следует запустить Llogincmd с ключом /Update.

Экран 7. Диагностика LimitLogin

LimitLogin является необходимым инструментом при развертывании AD в рамках компании для управления числом сессий, открытых пользователями одновременно, и особенно пользователями с правами Administrator. Инструмент LimitLogin также предусматривает возможность ручного создания отчетов, однако не стоит развертывать LimitLogin там, где требуется только инструмент для создания отчетов о сессиях. Отчет о сессии можно легко подготовить с помощью более простых инструментальных средств например посредством копирования текстового файла с именем machinename.username в скрытую общую папку в момент регистрации.

Жан де Клерк - член Security Office компании HP. Специализируется на управлении идентификационными параметрами и безопасности в продуктах Microsoft. Автор книги Windows Server 2003 Security Infrastructures (издательство Digital Press). jan.declercq@hp.com


Краткая характеристика

Проблема: ограничение одновременных сессий в Windows с учетной записью Administrator.

Решение: инструмент Microsoft LimitLogin.

Что потребуется: LimitLogin.exe, Windows 2003 Server с AD и Web-сервер IIS 6.0 с ASP.NET. Оба сервера также должны иметь версию .NET Framework 1.1 или более позднюю. На клиентской стороне необходимы Windows 2003, XP Pro SP1, Windows 2000 Pro SP4, Windows 2000 Server SP4 или их более поздние версии.

Сложность: 3 из 5.

Последовательность действий:

  1. Загрузите LimitLogin.
  2. Установите компоненты LimitLogin Web server.
  3. Настройте SSL для Web-службы LimitLogin.
  4. Выполните установку LimitLogin для AD.
  5. Активируйте программу установки клиента LimitLogin.
  6. Используйте оснастку MMC Active Directory Users and Computers или сценарий для задания квоты одновременных сессий.