Как наладить управление процессом регистрации пользователей.

Уровни безопасности Windows NT можно сравнить с кожурой луковицы: верхний слой — это многочисленные проверки, которые выполняет NT, прежде чем пустить пользователя в систему. Если не допускать неавторизованной регистрации пользователей, можно защитить сеть от многих потенциальных опасностей. Политики регистрации NT применяются в трех областях.

  • Глобальные политики в базе данных SAM. Эти политики охватывают всех пользователей базы данных SAM на каком-либо компьютере или в домене.
  • Индивидуальные политики пользовательских учетных записей. Можно установить свои политики для каждого пользователя.
  • Значение в реестре. Можно повлиять на процесс регистрации пользователя за счет незначительных изменений в реестре.

Глобальные политики

Глобальные политики позволяют задействовать парольные политики и блокировать учетные записи, когда NT выявляет попытку угадать пароль. Эти политики называются глобальными, поскольку они затрагивают все пользовательские учетные записи в SAM, к которой администратор подключается через User Manager for Domains. В зависимости от того, какая база данных SAM редактируется, политики могут задаваться либо для всех пользователей домена, либо для локальных учетных записей отдельного компьютера. Каждая рабочая станция NT и каждый автономной сервер NT имеют локальную базу SAM, в которой определяются локальные пользовательские учетные записи, действительные только на данном компьютере.

Чтобы выполнить глобальные настройки в пользовательских учетных записях, следует открыть User Manager for Domains и выбрать в меню Policy, Account. На Экране 1 изображено диалоговое окно Account Policy, которое при этом появляется.

Экран 1. Изменение глобальных настроек в пользовательских учетных записях.

В верхней части окна должно стоять слово Computer — это означает, что работа ведется с локальной SAM определенного компьютера. Если наверху стоит Domain, значит, администратор работает с доменной SAM.

Настройка параметров Password Restrictions в диалоговом окне Account Policy позволит приучить пользователей к наиболее эффективным методам управления паролями. Настройка парольных ограничений важна потому, что пользователи, как правило, относятся к паролям легкомысленно. Защита паролей осуществляется тремя способами: необходимо требовать от пользователей создания трудно угадываемых паролей, регулярной смены паролей и настраивать политики блокировки учетных записей.

Создание трудно угадываемых паролей. Добиться того, чтобы пользователи придумывали трудно угадываемые пароли, не так сложно. Для этого нужно установить параметр Minimum Password Length (минимальная длина пароля).

В большинстве случаев я рекомендую устанавливать минимальную длину — семь символов. Больше семи не рекомендуется, вследствие невыявленной ошибки NT в хэшировании паролей, если только не устанавливаются все 14 символов. Если удастся научить пользователей применять случайные наборы из семи букв, цифр и специальных символов, то разгадывать пароли будет нелегко. Однако установка минимальной длины пароля не гарантирует, что придуманные пароли будут трудно угадываемы, поскольку пользователи могут просто повторить одну и ту же букву или цифру семь раз. Чтобы пароли были действительно надежными, нужно использовать парольный фильтр, например утилиты Passfilt или Passprop из пакета Microsoft Windows NT Server 4.0 Resource Kit. Обе программы требуют, чтобы пользователи создавали пароли, которые включают комбинации букв верхнего и нижнего регистра, цифр и специальных символов.

Не следует ограничиваться только требованием создания трудно угадываемых паролей. Необходимо также сопровождать его написанием политик, которые демонстрируют обеспечение требования на уровне управления, проведением сеансов обучения, во время которых пользователи узнают, как выбирать и запоминать сложные пароли, и, наконец, выполнением ежемесячного или ежеквартального аудита паролей с помощью какой-нибудь утилиты, например L0phtCrack 4.0 (LC4) компании @stake. Чтобы у пользователей не было соблазна записывать пароли, можно даже прибегнуть к установке правил пользования техникой. В этих правилах должны быть задокументированы внутрикорпоративные требования к использованию компьютеров. Такие правила также обеспечивают законодательно обоснованный выход из положения (увольнение, возмещение убытков), если кто-то их нарушает.

Регулярная смена паролей. Ввод трудно угадываемых паролей — только один из способов их защиты. Можно обязать пользователей менять пароли регулярно, эта мера безопасности важна, поскольку с течением времени пароли могут быть разгаданы, совпасть или оказаться записанными на бумаге. Бывает также, что сотрудники, пользующиеся одной и той же учетной записью, меняют работу внутри компании или увольняются. Я рекомендую, чтобы пользователи меняли свои пароли каждые 90 дней. Когда установлен параметр Maximum Password Age в диалоговом окне Account Policy, система NT проверяет длительность использования каждого пароля при каждом входе в систему. По мере приближения к установленной дате NT начинает предупреждать пользователей о необходимости менять пароли. По умолчанию NT выводит на экран сообщение о времени действия пароля за 14 дней до окончания срока его действия, а также в дальнейшем при каждой регистрации, и так до тех пор, пока пользователь не сменит пароль. Можно с помощью реестра поменять промежуток времени до окончания срока действия пароля, когда NT начинает выдавать предупреждения, но об этом позже. Однако, даже если установлен максимальный срок действия пароля, пользователи могут брать в качестве нового пароля старый, игнорируя, таким образом, политику администратора. Избежать подобной проблемы можно, установив параметр Password Uniqueness в диалоговом окне Account Policy. Когда такая политика установлена, NT помнит предыдущие пароли пользователей и не допускает повторного ввода. Я рекомендую устанавливать максимальное значение данного параметра — помнить 24 пароля. Бывает, что пользователи делают быструю смену 24 паролей, чтобы NT «забыла» их любимые пароли, и можно было бы использовать эти пароли вновь. Чтобы оградить систему от такого поведения, следует установить параметр Minimum Password Age, после чего пользователи не смогут менять свои пароли в течение указанного числа дней. Например, если установить параметр Password Uniqueness в значение «помнить 24 пароля», а Minimum Password Age в значение «разрешить изменение через два дня», то пользователям потребуется 48 дней, чтобы вернуться к своим любимым паролям.

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

Если необходимо изменить регламент использования паролей в домене, который уже содержит много пользователей, нужно помнить одно предостережение: NT принимает во внимание параметры «максимальный срок действия пароля» и «минимальная длина пароля», только когда администратор меняет пароль. Так что эти две политики не имеют обратного действия на пароли, которые в настоящее время задействованы пользователями домена. Например, предположим, что в данный момент в сети имеется 100 пользователей, и администратор меняет параметр «максимальный срок действия пароля» с Password Never Expires («Срок действия не ограничен») на Expires In 90 Days («Срок действия 90 дней») и ждет один год. Ни один пароль этих пользователей не исчерпает срока действия в течение указанного времени, за исключением тех пользователей, которые поменяют пароль по собственной инициативе или чей пароль будет переустановлен администратором. После того как администратор установит политики Maximum Password Age и Minimum Password Length или воспользуется утилитами Passprop и Passfilt, пользователи также должны поменять свои пароли, чтобы эти политики и утилиты вступили в действие. В разделе «Индивидуальные политики» я объясню, как ввести в действие парольные изменения.

Установка политик блокировки учетных записей. Третий способ защитить пароли во время процедуры регистрации — установить параметр Account lockout в диалоговом окне Account Policy. NT блокирует пользовательскую учетную запись, если в течение 24 ч происходят три подряд попытки регистрации в системе с неправильным паролем. Именно три подряд, поскольку, если после двух неудачных попыток проникновения постороннего в системе успешно регистрируется настоящий владелец учетной записи, NT сбрасывает счетчик неудачных попыток. Можно настроить систему так, что учетная запись останется заблокированной до тех пор, пока член группы Administrators или Account Operators не разблокирует ее вручную. Или же можно сделать так, чтобы NT автоматически разблокировала учетную запись после большого промежутка времени.

Обращаю внимание читателей на два флажка в нижней части Экрана 1. Флажок Forcibly disconnect remote users from server when logon hours expire («Принудительно прекращать сеанс удаленных пользователей сервера по окончании рабочего времени») определяет, как поступать с теми пользователями, которые остаются в системе, после того как истекло отведенное им для работы время в течение дня. Этот параметр на Экране 1 отключен, потому что User Manager for Domains обращается к базе данных SAM автономного сервера вместо доменной SAM. Базы данных SAM рабочих станций и автономных серверов не поддерживают почасовых ограничений, так что в данном случае приведенная функция неприменима.

Параметр Users must log on in order to change password («Пользователи должны зарегистрироваться в системе, для того чтобы поменять пароль») — несколько необычный тип политики регистрации: он определяет, как NT обращается с паролями, у которых окончился срок действия. По умолчанию данный параметр отключен; это означает, что, когда пользователь выполняет регистрацию с просроченным паролем, NT требует сменить пароль, а затем продолжает процедуру регистрации. Оценка степени риска такой установки по умолчанию зависит от того, насколько безопасными администратор считает просроченные пароли, поскольку пользователи могут получать доступ к системе еще долго после того, как окончился срок действия пароля. Если установить флажок Users must log on in order to change password, NT не позволит пользователям входить в систему после того, как истек срок действия пароля. Тем не менее не следует сразу делать вывод, что нужно обязательно включать этот параметр. Использование данного параметра может конфликтовать с другой популярной политикой регистрации: параметром User Must Change Password at Next Logon («Пользователь обязан сменить пароль при следующей регистрации») в свойствах пользовательской учетной записи. Предположим, что администратор установил параметр Users must log on in order to change password в диалоговом окне Account Policy. Затем пользователь просит переустановить пароль, поскольку он забыл его. Когда администратор меняет пароль, он включает параметр User Must Change Password at Next Logon в свойствах пользовательской учетной записи, чтобы пользователь мог выбрать новый пароль. Но когда пользователь пытается зарегистрироваться в системе, чтобы поменять свой пароль, NT блокирует доступ, заявляя, что пароль просрочен. Таким образом, оба параметра устанавливать нельзя.

Нужно помнить, что парольные ограничения и политики блокировки на Экране 1 — глобальные, т. е. все пользователи в домене являются субъектами одних и тех же политик. Нельзя, например, ввести более сложные пароли только для администраторов, не создавая нового домена. Чтобы решать такие задачи, можно применять индивидуальные политики.

Индивидуальные политики

Индивидуальные политики «пересиливают» глобальные политики для данной пользовательской учетной записи. Каждая пользовательская учетная запись имеет несколько параметров, которые влияют на способность пользователя регистрироваться в системе. Администраторы и операторы учетных записей могут редактировать эти параметры, выполнив двойной щелчок по учетной записи пользователя в User Manager for Domains. На Экране 2 показано диалоговое окно New User, которое при этом появляется.

Экран 2. Настройка индивидуальных политик в окне New User.

В диалоговом окне New User можно изменить пользовательский пароль, вводя новый пароль в полях Password и Confirm Password. Можно указать, что пользователь должен сменить свой пароль при следующей регистрации, выбрав флажок User Must Change Password at Next Logon. Как я уже сказал, администраторы часто устанавливают эту политику, когда переустанавливают пароли в случае, если пользователь забыл пароль. Такой подход гарантирует, что администраторы не имеют доступа к пользовательским учетным записям в течение достаточно продолжительного времени. Однако любой желающий, имея права администратора, с помощью программы LC4 может вскрывать пользовательские пароли. Поэтому лучше не устанавливать параметр User Must Change Password at Next Logon, а доверять администраторам и попытаться ограничить число сотрудников с таким уровнем полномочий.

Если нужно сохранить контроль над некоторыми учетными записями: например, учетными записями для совместного использования или учетными записями тех пользователей, которые отказались выбрать трудно угадываемый пароль, требуется установить параметр User Cannot Change Password («Пользователь не может менять пароль»). Для тех пользовательских учетных записей, которые нежелательно ограничивать максимальным сроком действия пароля на уровне домена, можно установить параметр Password Never Expires («Срок действия пароля не ограничен»). Этот параметр можно также установить для учетных записей серверных приложений (таких, как Microsoft SQL Server) — это позволит избежать довольно распространенной ситуации, когда однажды при перезагрузке сервера выясняется, что ни одна из важных служб не запускается, поскольку срок действия пароля учетных записей серверных приложений истек. К сожалению, некоторые администраторы устанавливают параметр Password Never Expires, чтобы сделать исключение для отдельных влиятельных пользователей, не желающих регулярно менять свои пароли.

Параметр Account Disabled («Учетная запись заблокирована») может применяться для временной защиты учетных записей сотрудников, находящихся в отпуске или отсутствующих по другим причинам. Если администратор блокирует учетную запись, NT не позволяет пользователю войти в систему, даже если тот знает пароль. Когда пользователь покидает компанию, можно не удалять его учетную запись немедленно, а просто заблокировать ее. Сохранение учетной записи примерно на 30 дней позволяет воспроизвести объекты, к которым имел доступ данный сотрудник. Заблокированную учетную запись в случае возвращения сотрудника легко восстановить.

Можно установить ограничение по дням недели и часам в течение дня, когда пользователю разрешается регистрироваться в системе. Однако подобную политику нельзя назвать очень практичной. Тем не менее, если в компании есть пользователи, которые работают строго определенные часы (например, кассир в банке), можно щелкнуть Hours и открыть диалоговое окно Logon Hours. В нем нужно просто выбрать временной промежуток, затем щелкнуть Allow («Разрешить») или Disallow («Не разрешать»). Если пользователи пытаются войти в систему в неустановленное время, NT не дает доступа. Если пользователи регистрируются во время разрешенного промежутка и остаются в системе в те часы, когда работать им явно не разрешено, по умолчанию NT позволяет продолжить сеанс. Для изменения этой установки по умолчанию можно воспользоваться глобальной политикой. В диалоговом окне Account Policy следует установить флажок Forcibly disconnect remote users from server when logon hours expire. Необходимо учесть, что выбор этого параметра завершает сеанс работы пользователей с сервером, но не сеанс на их рабочих станциях. Пусть, например, администратор разрешил пользователю А входить в систему с 8.00 утра до 18.00 вечера и установил параметр Forcibly disconnect remote users from server when logon hours expire. В 9.00 утра пользователь А регистрируется на своей рабочей станции и соединяется с несколькими серверами для выполнения работ с файлами и принтерами. Он остается в системе после 18.00. В 18.00 серверы завершают сеанс данного пользователя, но он остается зарегистрированным на своей рабочей станции. Заметим, что по окончании отведенного промежутка времени серверы отключают только неактивных пользователей. Если пользователи взаимодействуют с серверами (например, имеют открытые файлы, обращаются к папкам каждые несколько минут), то серверы не будут завершать сеансы пользователей, несмотря на временные ограничения.

По умолчанию NT разрешает регистрацию с любой рабочей станции. При желании можно ограничить число компьютеров, с которых пользователи могут подключаться. Следует щелкнуть Logon To в диалоговом окне New User, чтобы вывести окно Logon Workstations, приведенное на Экране 3. Можно указать до восьми рабочих станций.

Экран 3. Выбор рабочих станций, с которых пользователю разрешена регистрация.

Последняя политика, касающаяся регистрации и применяемая в отношении отдельных пользователей, связана с датой окончания срока действия учетной записи. По умолчанию срок действия пользовательских учетных записей не ограничен. Можно установить дату окончания срока действия учетной записи, щелкнув Account в диалоговом окне New User и указав дату в окне Account Information (см. Экран 4). Установление срока действия учетной записи оправдано для сотрудников, работающих по временному контракту, или когда заранее известно, что пользователь покинет компанию. Администратор просто заранее устанавливает определенную дату, после чего NT берет заботу об этой учетной записи на себя. Я знаю администраторов, которые использовали данную функцию, имея хронические проблемы, связанные с тем, что их не предупреждали о времени ухода сотрудников из компании. Ответственные администраторы устанавливали предел в 30 дней для каждого пользователя и требовали от отдела кадров ежемесячного отчета со списком действительно работающих сотрудников. На основе поданных списков администраторы продлевали срок действия учетных записей. В результате, если кто-то увольняется, а администратора не ставят об этом в известность, NT автоматически закрывает учетную запись через 30 дней.

Экран 4. Установка даты окончания срока действия учетной записи.

User Manager for Domains позволяет изменять политики регистрации отдельных пользователей для многих учетных записей за один шаг. Нужно удерживать клавишу Ctrl, щелкая по учетным записям пользователей, которые требуется изменить. Затем следует выбрать User, Properties и внести изменения. Эта возможность оказывается кстати, когда необходимо установить параметр User Must Change Password at Next Logon, чтобы ввести в действие новые доменные парольные ограничения.

Просматривая локальную базу данных автономного сервера или рабочей станции, вы не найдете политик для отдельных пользователей, которые я только что описал. Функции Logon To, Hours и Account Disabled отсутствуют. Эти настройки доступны только для доменных учетных записей.

«Подкрутки» реестра

Помимо глобальных и индивидуальных политик для управления процессом регистрации можно внести изменения в настройки реестра в подразделе HKEY_LOCAL_ MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon. В частности, с помощью настроек в реестре можно выводить уведомление в процессе регистрации, скрывать имена пользователей в диалоговом окне регистрации в системе, а также сокращать и продлевать срок действия пароля.

С юридической точки зрения отображение уведомления в процессе регистрации очень важно. Это уведомление означает, что пользователи входят в данную систему, и закрепляет за администратором право следить за их действиями. Следует отображать данное предупреждение до того, как пользователи вводят свои учетные данные. Оно создается добавлением двух значений типа REG_SZ в подразделе Winlogon. В записи LegalNoticeCaption необходимо добавить короткую строку, которую NT будет отображать в заголовке окна предупреждения. В записи LegalNoticeText нужно добавить полный текст, который следует получить в юридическом отделе. Когда эти значения заданы, NT отображает уведомление при каждом нажатии пользователем Ctrl+Alt+Del во время входа. Пользователь должен выполнить щелчок мышью, прежде чем NT разрешит ввести имя и пароль.

Во время регистрации NT автоматически заполняет поле Username в диалоговом окне именем последнего зарегистрировавшегося пользователя. Если эта настройка по умолчанию рискованна в конкретной среде, можно сделать так, чтобы поле было пустым, меняя значение параметра DontDisplayLastUserName типа REG_SZ на 1.

Как уже отмечалось выше, NT начинает выводить сообщение об окончании срока действия пароля за 14 дней до этой даты. Если нужно сократить или увеличить время перед окончанием срока действия пароля, когда NT начинает предупреждать пользователей, можно изменить значение параметра PasswordExpiryWarning типа REG_DWORD с 14 на желаемое число дней.

Необходимо выполнить описанные настройки реестра на компьютере каждого пользователя. Если машин много, для этой цели можно воспользоваться редактором системных политик System Policy Editor (SPE). SPE позволяет распространить изменения в реестре на каждый компьютер домена из центральной базы данных. SPE также можно использовать для применения ограничений, которые защищают рабочие станции после того, как пользователь зарегистрировался в системе. Например, администратор может развернуть на настольных компьютерах пользователей хранитель экрана с паролем и запретить его отключение.

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

Рэнди Франклин Смит — редактор Windows & .NET Magazine и президент компании Monterey Technology Group, которая занимается обучением и консалтингом в области защиты Windows NT. Связаться с ним можно по адресу: rsmith@montereytechgroup.com.