четверг, 30 апреля 2015 г.

Настройка NTP-сервера времени на ОС Windows

За работу сервера и клиента NTP отвечает "Служба времени Windows" ("W32Time").
Для настройки сервера на ОС Windows проделайте следующие шаги:

1. Устанавливаем автоматический запуск сервиса "W32Time". Для этого в ветке реестра
"HKLM\System\CurrentControlSet\Services\W32Time" задаём для параметра "Start" значение 2.

2. Затем открываем "HKLM\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer" и устанавливаем "Enabled" в единицу.

3. Правим следующие параметры:
- ветка: "HKLM\System\CurrentControlSet\Services\W32Time\Parameters", параметр "Type" может принимать следующие значения:
NoSync - NTP-сервер не синхронизируется с каким-либо внешним источником времени. Используются часы, встроенные в микросхему CMOS самого сервера;
NTP - NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра "NtpServer";
NT5DS - NTP-сервер производит синхронизацию согласно доменной иерархии;
AllSync - NTP-сервер использует для синхронизации все доступные источники;

- параметр "NtpServer", где указывается хост, с которым будет синхронизировать время данный сервер. При необходимости можно добавить несколько хостов, введя их DNS имена или IP адреса через пробел. В конце каждого имени через запятую можно добавлять флаг, который определяет режим для синхронизации с сервером времени.
Допускаются следующие значения:
0x1 - SpecialInterval, использование специального интервала опроса;
0x2 - режим UseAsFallbackOnly;
0x4 - SymmetricActive, симметричный активный режим;
0x8 - Client, отправка запроса в клиентском режиме.
При использовании флага "SpecialInterval", необходимо установленное значение интервала в ключе "SpecialPollInterval". При значении флага "UseAsFallbackOnly" службе времени сообщается, что данный сервер будет использоваться как резервный, и перед синхронизацией с ним будут выполняться обращения к другим серверам списка. Симметричный активный режим используется NTP-серверами по умолчанию, а клиентский режим можно задействовать в случае проблем с синхронизацией;

- ветка "HKLM\System\CurrentControlSet\Services\W32Time\Config", параметр "AnnounceFlags" отвечает за то, как о себе заявляет NTP-сервер и может принимать следующие значения:
0x0 (Not a time server) - сервер не объявляет себя через NetLogon, как источник времени. Он может отвечать на NTP запросы, но соседи не смогут распознать его;
0x1 (Always time server) - сервер будет всегда объявлять о себе вне зависимости от статуса;
0x2 (Automatic time server) - сервер будет объявлять о себе только, если он получает надежное время от другого соседа (NTP или NT5DS);
0x4 (Always reliable time server) - сервер будет всегда заявлять себя, как надежный источник времени;
0x8 (Automatic reliable time server) - контроллер домена автоматически объявляется надежным если он - PDC-эмулятор корневого домена леса. Этот флаг позволяет главному PDC леса заявить о себе как об авторизованном источнике времени даже при отсутствии связи с вышестоящими NTP-серверами. Ни один контроллер или рядовой сервер (имеющие по умолчанию флаг 0x2) не может заявить о себе, как о надежном источнике времени, если он не может найти источник для себя.
Значение "AnnounceFlags" может составлять сумму его флагов, например:
10=2+8 - NTP-сервер заявляет о себе как о надежном источнике времени при условии, что сам получает время из надежного источника либо является PDC корневого домена. Флаг 10 задается по умолчанию как для членов домена, так и для отдельно стоящих серверов.
5=1+4 - NTP-сервер всегда заявляет о себе как о надежном источнике времени. Например, чтобы заявить рядовой сервер (не контроллер домена) как надежный источник времени, нужен флаг 5;

- ветка "HKLM\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient", параметр "SpecialPollInterval" задается в секундах и по умолчанию его значение равно 604800, что составляет одну неделю. Это довольно много, поэтому стоит уменьшить значение, скажем, до часа (3600).

4. После сделанных настроек можно запускать службу времени: "net start w32time". Если сервис уже работал, примените конфигурацию командой "w32tm /config /update" и перезапустите: "net stop w32time && net start w32time".

5. После перезапуска службы NTP-сервер уже активен и может обслуживать клиентов. Убедиться в этом можно с помощью команды "w32tm /query /configuration". Эта команда выводит полный список параметров службы. Если раздел "NtpServer" содержит строку "Enabled:1", то все в порядке.


6. При запущенном фаерволе не забудьте открыть UDP порт 123 для входящего и исходящего трафика.

вторник, 28 апреля 2015 г.

Настройка точного времени в Windows по протоколу NTP

Для того чтобы настроить автоматическую синхронизацию ОС Windows со сторонним источником времени по протоколу NTP, понадобится правильно сконфигурировать сервис "w32time".
Сначала убедитесь в том, что служба работает или запустите её командой "net start w32time". Затем выполните команду "w32tm /query /status", чтобы получить информацию о статусе службы времени.


Если ранее источник времени не настраивался, то по умолчанию это будет "Local CMOS Clock".
Для настройки службы на определённый сервер NTP используйте следующую команду:

"w32tm /config /manualpeerlist:PEERS /syncfromflags:manual /reliable:yes /update"

где PEERS - DNS имя или IP адрес сервера NTP (можно указать несколько хостов сразу через пробел и в кавычках).


Перезагрузите службу командой "net stop w32time && net start w32time" и сделайте принудительную синхронизацию времени: "w32tm /resync".


В завершении ещё раз проверьте статус службы командой "w32tm /query /status", чтобы убедиться в корректности сделанных настроек. Также не забудьте про то, что NTP сервис доступен по порту 123 UDP, который должен быть открыт в сетевом оборудовании и фаерволах на входящий и исходящий трафик.


Следует помнить, что в доменной среде на внешний источник времени настраивается только контроллер с ролью эмулятора PDC. Остальные члены домена синхронизируются с ним и другими контроллерами. Если этого вдруг не происходит, попробуйте на проблемном хосте выполнить следующую настройку:

"w32tm /config /syncfromflags:domhier /reliable:no /update"

В том случае, если вам нужно сбросить все настройки службы времени, выполните команды:

"net stop w32time"
"w32tm /unregister"
"w32tm /register"
"net start w32time"


Все параметры сервиса вернутся в начальные значения.

суббота, 25 апреля 2015 г.

Смена статического IP адреса контроллера домена Active Directory

Обычно контроллеры домена используют статический IP. Менять его крайне не рекомендуется, но если это критично для IT-структуры, проделайте следующие шаги:

1. Запустите консоль с повышенными привилегиями и выполните команду "dcdiag". Убедитесь, что все тесты завершились корректно. Если имеются какие-то проблемы - их обязательно необходимо разрешить перед продолжением.
2. В случае успешного прохождения теста устанавливаем новый адрес в свойствах сетевого подключения, очищаем локальный кэш DNS ("ipconfig /flushdns") и перерегистрируем сервер ("ipconfig /registerdns").
3. Далее выполняем "dcdiag /fix" для обновления атрибутов SPN и проверяем насколько корректно прошли тесты.
4. На остальных контроллерах и других членах домена также понадобится изменить настройки DNS серверов и сбросить локальных кэш командой "ipconfig /flushdns", кроме того, отредактировать настройки DHCP серверов, если таковые имеются в инфраструктуре.
5. Проверьте, правильно ли созданы новые записи нашего сервера в прямых и обратных зонах DNS. При необходимости откорректируйте. Записи для старого IP можно удалить.
6. Проверьте в свойствах серверов DNS закладку "Сервер пересылки", а в свойствах зон закладку "Серверы имен" и внесите туда коррективы в том случае, если в списке фигурирует старый адрес контроллера.
7. Обязательно дождитесь полной репликации новой конфигурации по всем контроллерам леса или ускорьте этот процесс в оснастке "dssite.msc", перезагрузите сервер и проверьте логи, чтобы окончательно убедиться в правильности работы домена.

четверг, 23 апреля 2015 г.

Переименование контроллера домена Active Directory

Данная процедура гораздо сложнее, чем переименование рядового сервера, являющегося обычным членом домена. Для этой задачи нам понадобится утилита "NETDOM", которая начиная с Windows 2008 входит в состав ОС, а для Windows 2003 понадобится установить "Support Tools".

Для переименования контроллера домена действуем следующим образом:
1. Сначала убеждаемся в том, что функциональный уровень домена не ниже Windows 2003 и проверяем наличие прав "Domain Admins" ("Администраторы домена").
2. Открываем командную строку с повышенными привилегиями и добавляем для контроллера дополнительное имя, в которое мы собираемся переименовать (в нашем примере SRV-DC1-OLD.TEST.LOCAL переименовываем в SRV-DC1.TEST.LOCAL):

NETDOM computername SRV-DC1-OLD.TEST.LOCAL /add:SRV-DC1.TEST.LOCAL


3. С помощью редактора "ADSIEDIT.msc" убеждаемся, что имя добавлено корректно. В редакторе находим объект контроллера домена и проверяем значение свойства "msDS-AdditionalDnsHostName", которое должно быть равно "SRV-DC1.TEST.LOCAL".


4. Теперь необходимо убедиться, что обновленные SPN атрибуты успели полностью реплицироваться на остальные контроллеры домена в лесу. В этом нам поможет утилита "REPADMIN" или "REPLMON" для Windows 2003.


Для ускорения процесса репликацию можно форсировать в оснастке "DSSITE.msc". Просто кликните правой кнопкой мыши на подключении и выберите "Реплицировать сейчас".


5. Теперь делаем первичным новое имя контроллера домена:

NETDOM computername SRV-DC1-OLD.TEST.LOCAL /makeprimary:SRV-DC1.TEST.LOCAL


6. Перегружаем сервер.
7. Снова проверяем, что обновлённые SPN атрибуты и записи в DNS успели полностью реплицироваться на остальные контроллеры домена и сервера DNS в лесу, а значение свойства "msDS-AdditionalDnsHostName" теперь равно старому имени сервера.


При острой нехватке времени можно снова форсировать репликацию и перегрузить зоны DNS на других контроллерах, если они отображают предыдущее имя нашего сервера.
8. Теперь удаляем старое имя контроллера, которое сейчас является дополнительным:

NETDOM computername SRV-DC1.TEST.LOCAL /remove:SRV-DC1-OLD.TEST.LOCAL


 9. Форсируем или дожидаемся полной репликации, и в завершении перегружаем и проверяем прямые и обратные доменные зоны DNS на наличие записей со старым именем. Если находим таковые - удаляем или исправляем при необходимости на новое имя. Также стоит ещё раз проверить значение атрибута "msDS-AdditionalDnsHostName", которое должно быть пустым.

В конце процедуры, когда вышеописанные шаги пройдены, внимательно проверяем логи Active Directory на всех контроллерах домена на наличие ошибок и с помощью утилиты "DCDIAG" убеждаемся в корректности работы леса.

четверг, 16 апреля 2015 г.

Включение корзины для Active Directory в домене Windows 2008 R2 и выше

Начиная с функционального уровня домена Windows 2008 R2 появилась возможность включить корзину для объектов Active Directory. Работает она по аналогии с обыкновенной корзиной для файлов. Теперь аккаунты пользователей, компьютеров и групп могут быть возвращены после случайного удаления без применения принудительного восстановления Active Directory или манипуляций с атрибутами tombstone объектов. По умолчанию данный функционал выключен,

Для включения корзины проделайте следующее:

1. Запускаем консоль PowerShell с повышенными привилегиями и подключаем модуль "ActiveDirectory":

Import-Module ActiveDirectory

2. Затем проверяем, что функциональный уровень леса не ниже чем Windows2008R2 командой:

Get-ADForest


3. Если проблем нет, включаем корзину следующей командой (пример для домена "test.local"):

Enable-ADOptionalFeature –Identity ‘CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, DC=test,DC=local’ –Scope ForestOrConfigurationSet –Target ‘test.local’


Подтверждаем свой выбор клавишей "Y" или "A" с последующим нажатием "Enter". Кроме того следует помнить, что опять выключить функционал корзины после включения уже будет невозможно.

Для восстановления объектов можно воспользоваться утилитой "ldp.exe" или PowerShell. Например, чтобы восстановить пользователя "user1" выполните:

Get-ADObject -Filter {displayName -eq "user1"} -IncludeDeletedObjects | Restore-ADObject


При этом будет также восстановлено членство объекта в других группах.

Начиная с Windows Server 2012 в оснастку "Центр администрирования Active Directory" был добавлен удобный функционал по просмотру и восстановлению удалённых объектов. Все они будут находиться в контейнере "Deleted Objects".

Объекты в корзине Active Directory по умолчанию хранятся 180 дней. Но если это число вас не устраивает, поменяйте срок хранения например на 1 год:

Set-ADObject -Identity “CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=test,DC=local” –Partition “CN=Configuration,DC=test,DC=local” –Replace:@{“tombstoneLifetime” = 365}


Эту операцию также можно сделать в ручном режиме с помощью редактора ADSI.