Так нужно ли менять SID и делать sysprep?

Думаю, многие администраторы слышали от коллег, что при переносе или клонировании системы на другие компьютеры необходимо изменять SID машины. Так ли это? Давайте разберемся.

Достаточно давно уже вышла статья Марка Руссиновича, в которой он сорвал покровы с этой темы, но, к сожалению, все еще встречаются администраторы, которые с ней не ознакомились. Если вкратце описывать ее содержание, то выходит примерно следующее: каждому объекту безопасности Windows присваивает идентификатор безопасности (SID), который сопоставляет с именем, видимым конечному пользователю. Общее правило — эти идентификаторы должны быть уникальными в пределах определенного домена (а именно, такого домена, в пределах которого возможна ситуация, когда две машины с одинаковыми SID могут передать их друг другу).

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

Если же говорить о AD домене, то такое уже не прокатит — AD для аутентификации использует SID машин и юзеров. Казалось бы уж в этом случае сброс SID’а необходим, но здесь-то у нас и появляется второй момент: дело в том, что при аутентификациях в пределах AD домена, используются не SID локальных машин, а SID учетных записей этих машин и пользователей в домене. Эти SID генерируются на основе SID-а AD домена, к которому прибавляется так называемый RID (relative ID), а уникальность этого RID, в свою очередь, гарантируется правильно работающим домен-контроллером с FSMO ролью RID мастера. Таким образом машина, которая пытается получить доступ к доменным ресурсам, будет использовать доменный SID (SID домена + RID), уникальность которого в пределах домена гарантирована. В холодном остатке мы имеем то, что SID на безопасность никак не влияет.

Если хотите убедиться в этом самостоятельно, то воспользуйтесь утилитой PsGetSID из набора SysInternals. Для примера я сравнил локальный SID компьютера, SID учетки этого компьютера в домене и SID самого домена.

SIDs

Как видите, SID учетки (GATE$) состоит из SID домена (SAND) + RID 1105, и именно этот SID используется для аутентификации этого компьютера на домен контроллере.

Кроме всего этого, необходимо упомянуть о двух исключениях, когда SID все же имеет значение: первое — это сам домен. Дело в том, что SID домена равен SID машины, которая стала первым домен контроллером в лесу. Если посмотреть на SID машин, являющихся домен контроллерами (если их несколько), то можно увидеть, что эти SID одинаковы (при этом SID их учеток в домене — разные). Таким образом любое обращение к домену, на самом деле использует этот SID и обращается к одному из контроллеров. При попытке ввода в домен компьютера, имеющего SID домена, вылезет ошибка, т. к. этот компьютер не является домен контроллером.

Ну и второе исключение — это если какой-то софт использует SID машин для своей аутентификации. В компании Microsoft по заявлениям Марка Руссиновича такого софта нет, а вот как делал свой софт Вася Пупкин — мало кому известно.

И последний вопрос который осталось рассмотреть: значит sysprep делать не нужно?

Ответ: нужно. Дело в том, что sysprep сбрасывает не только SID, но и некоторые другие параметры. Например WSUS ID. Совсем недавно я столкнулся с проблемой, когда два компьютера не могли одновременно быть добавлены на WSUS. После некоторой доли траблшутинга я обнаружил, что на этих машинах не выполнялся sysprep и они имели одинаковый WSUS ID, который не позволял им добавиться на сервер вместе. А вот и злополучный ID:

WSUSIDСобственно, после удаления этой записи в реестре, второй компьютер получил новый SusclientId, после чего обе машины благополучно добавились на WSUS.

Надеюсь, эта статья была полезна.

 

  1. Евгений

    Если склонировать систему без sysprep, поднять на одному клоне
    AD, то при попытке ввести в домен такой же клон выдаст ошибку совпадения sid и попросит сделать sysprep.

Оставить комментарий