Иван Квасников
Такие разные пароли
Одно из многочисленных нововведений, появившихся в операционной системе Microsoft Windows Server 2008, позволяет более гибко конфигурировать требования к доменным паролям предприятия. Имя ему – Password Settings Objects.
Как известно, доменные среды Windows Server 2000 и 2003 позволяли иметь одну политику паролей на домен, которая устанавливает требования к его минимальной длине, сложности и прочим атрибутам. В случае необходимости использования нескольких политик зачастую приходилось создавать дочерний домен и перемещать в него учетные записи, которым необходима более сложная или, напротив, упрощенная политика. В Windows Server 2008 появилась возможность создания неограниченного количества политик для разных групп и пользователей домена, позволяющих обеспечить необходимые требования безопасности к паролям.
Например, для соответствия политикам безопасности, рекомендуемым компанией Microsoft, мы можем создать три разных политики паролей для различных групп пользователей – для администраторов домена установить требования использования пароля, имеющего минимальную длину в 10 символов и обязательно содержащего символы нижнего, верхнего регистра, цифры и спецсимволы, для группы интернет-пользователей, не имеющим доступа к внутренним ресурсам компании – 4 символа и возможность использовать «простой» пароль. Для всех остальных пользователей будем применять политику домена по умолчанию – минимальная длина в 6 символов и необходимость использования «сложного» пароля.
Каждая политика пароля (Fine-Grained Password) представляет собой объект службы каталогов (Password Settings objects, PSO) и может применяться только к глобальным группам безопасности либо пользователям, причем, если политик несколько, применяется та, которая имеет высший приоритет.
Помимо этого, всегда имеет более высокий приоритет политика, назначенная напрямую пользователю, чем политика, назначенная группе. В случае если группе назначены несколько PSO с одинаковым приоритетом, ни одна из них применена не будет, а применится политика домена по умолчанию. Для работоспособности PSO требуется уровень домена не ниже Windows Server 2008 и уровень леса не ниже Windows Server 2000.
При создании политики используются следующие атрибуты:
- Enforce password history (msDS-PasswordHistoryLength) – количество запоминаемых паролей, то есть какое количество ранее введенных паролей не может повторяться;
- Maximum password age (msDS-MaximumPasswordAge) – максимальное время жизни пароля, после которого необходимо его сменить;
- Minimum password age (msDS-MinimumPasswordAge) – минимальное время жизни пароля, то есть время, в течение которого невозможно его повторное изменение;
- Minimum password length (msDS-MinimumPasswordLength) – минимальное количество символов в пароле;
- Passwords must meet complexity requirements (msDS-Password-ComplexityEnabled) – требование сложности, обязывает использовать в пароле символы верхнего и нижнего регистров, числа, а также специальные символы;
- Store passwords using reversible encryption (msDS-PasswordReversibleEncryptionEnabled) – хранение паролей в AD в открытом виде, рекомендуется отключать в целях безопасности;
- Account lockout duration (msDS-LockoutDuration) – время до разблокирования учетной записи в случае ввода неправильного пароля;
- Account lockout threshold (msDS-LockoutThreshold) – количество попыток ввода пароля, после которых учетная запись блокируется;
- Reset account lockout counter after (msDS-LockoutObservationWindow) – время, за которое подсчитывается количество неправильных попыток ввода пароля;
- PSO link (msDS-PSOAppliesTo) – список групп или пользователей, к которым должна применяться данная политика;
- Precedence (msDS-PasswordSettingsPrecedence) – приоритет политики, чем значение меньше, тем приоритет выше.
Политику паролей можно создать различными способами:
- c помощью ADSI Edit;
- c использованием файла ответов и команды ldifde;
- c помощью программ сторонних производителей, например, PSOMgr или Specops Password Policy.
Создание политики паролей с помощью ADSI-Edit
На компьютере под управлением Windows Server 2008 либо Windows Vista запустите оснастку «Редактирование ADSI» (ADSI-Edit) и подключитесь к домену в контексте именования по умолчанию. Раскройте контекст домена, затем CN=System и выберите CN=Password Settings Container. В меню консоли «Действия» выберите «Создать», а затем «Объект». C помощью запущенного мастера введите все необходимые атрибуты, при этом обращаю ваше внимание, что пункты Passwords must meet complexity requirements и Store passwords using reversible encryption могут иметь значения только TRUE (верно) или FALSE (неверно). Значения пунктов Maximum password age, Minimum password age, Account lockout duration и Reset account lockout counter after должны вводиться в формате [дни]:[часы]:[минуты]:[секунды], например 0:0:40:0 – 40 минут. При использовании мастера необходим ввод всех используемых атрибутов, однако после создания политики вы можете вручную очистить ненужные значения в свойствах PSO на закладке «Редактор атрибутов». После окончания работы мастера вам необходимо вручную изменить атрибут PSO link для добавления учетных записей, к которым будет применяться политика. Для этого выберите «Свойства» созданной политики и на закладке «Редактор атрибутов» найдите атрибут msDS-PSOAppliesTo. Нажмите «Изменить» и в открывшемся окне добавьте необходимые учетные записи.
Создание политики с помощью ldifde
Для создание политики в первую очередь необходимо подготовить файл ответов, содержащий все необходимые атрибуты:
dn: "CN=Domain Admins PSO, CN=Password Settings Container, CN=System,DC=dc01,DC=domain,DC=corp"
changetype: add
objectClass: msDS-PasswordSettings
msDS-MaximumPasswordAge:-1728000000000
msDS-MinimumPasswordAge:-864000000000
msDS-MinimumPasswordLength:8
msDS-PasswordHistoryLength:24
msDS-PasswordComplexityEnabled:TRUE
msDS-PasswordReversibleEncryptionEnabled:FALSE
msDS-LockoutObservationWindow:-18000000000
msDS-LockoutDuration:-18000000000
msDS-LockoutThreshold:0
msDS-PasswordSettingsPrecedence:20
msDS-PSOAppliesTo:"CN=Domain Admins,CN=Users,DC=dc01,DC=domain,DC=corp"
Откройте блокнот и введите вышеприведенные строки, отредактируйте в соответствии со своими потребностями и сохраните с именем pso.ldf. Необходимо иметь в виду, что временные значения вводятся в формате наносекунд, то есть для значения, равному одному часу нужно ввести по формуле 60*60* (10^7) = 36000000000.
Далее, для создания политики, в командной строке введите:
ldifde –i –f pso.ldf
Политика создана в соответствии с заданными значениями атрибутов.
Просмотр результатов применения политик
После создания нескольких политик возникает необходимость удостовериться, что к тому или иному пользователю применяется необходимая политика. Сделать это можно с помощью команды:
dsget user "CN=Administrator,CN=Users,DC=domain,DC=corp" –effectivepso
Заключение
Помимо приведенных в статье способов, можно также использовать для создания политик программы сторонних разработчиков. Так, например, программа Specops Password Policy [1], использует оснастку MMC и позволяет выполнить базовое создание политики паролей с помощью графического интерфейса.
Возможность использования нескольких политик паролей в среде Windows Server 2008 позволяет более гибко конфигурировать настройки безопасности в зависимости от назначения учетных записей. Я рекомендую в обязательном порядке назначать служебным учетным записям домена более строгие политики паролей, этим вы значительно усложните задачу потенциальным взломщикам, а себе обеспечите спокойствие за сохранность данных.
Получить дополнительную информацию об использовании политик паролей в Windows Server 2008 вы можете на сайтах Microsoft и TechNet по ссылкам [2, 3].
- Specops Password Policy – http://www.specopssoft.com/products/specopspasswordpolicy.
- AD DS Fine-Grained Password and Account Lockout Policy Step-by-Step Guide – http://technet.microsoft.com/en-us/library/cc770842.aspx.
- Вебкаст «Active Directory: политика паролей» – http://www.techdays.ru/videos/1080.html.