Главная > Windows, Linux > Миграция с Linux (samba+LDAP) на Windows Server 2003 Active Directory
Миграция с Linux (samba+LDAP) на Windows Server 2003 Active Directory31 мая 2009. Разместил: dimon |
Хочу обратить внимание, что данная последовательность операций была заточена под нашу сеть.
Мы имели контроллер домена на CentOS Samba+LDAP, причем на этом же сервере хранятся расшаренные ресурсы доступ к которым с windows-клиентов осуществляется при помощи самбы. Планируется перенести PDC с линукса на винду, понизив роль старого контроллера домена до простого файлового сервера на самбе. Так же у нас имеется файл, в котором перечислены доменные пароль юзверей в нешифрованном виде. Этап 1 – “Подготовительный” За неделю до времени “Ч” через netlogon.bat на рабочих станциях домена отключили бэндмауэр и перевели энергосбережение в режим «всегда включен». В течение недели несколько раз циркулярно разослали по корпоративной почте письмо с требованием вечером в пятницу оставить компьютеры включенными. Остальные этапы выполняются в субботу – официальный выходной день. Этап 2 Ставим на боевом железе Windows Server 2003 (далее везде W2k3) на машину которую впоследствии будем использовать в качестве PDC (соответственно назвав сервер именем PDC). AD пока не поднимаем. Этап 3 Ставим на VMware ОС W2k3, имя BDC Ставим на виртуальную машину, а не боевое железо в связи с тем, что впоследствии будет необходимо несколько раз откатываться к предыдущему состоянию, что на много проще сделать на виртуалке (надеюсь, все знакомы с понятием snapshot). Этап 4 Гасим самбу на старом контроллере домена. Настраиваем BDC: - с помощью утилиты NewSID из пакета Sysinternals меняем SID на SID старого домена - поднимаем Active Directory на BDC - настраиваем Параметры безопасности - Политику паролей – нам пришлось временно уменьшить «минимальную длину пароля» Делаем snapshot системы. Этап 5 – Перенос пользователей и компьютеров со старого сервера домена на новый (BDC) Подключаемся к LDAP серверу старого домена с помощью утилиты LDAP Admin и выгружаем ветки в xml-файлы: ou=Users -> users.xml ou=Computers -> computers.xml ou=Groups -> groups.xml Из файлов users.xml, computers.xml и файла в котором перечислены не зашифрованные пароли пользователей с помощью Microsoft Excel формируем текстовый файл со строками вида: для пользователей домена строка выглядела так = RID, login, ФИО, password, e-mail для компьютеров домена строка выглядела так = RID, computename т.к. в домен объекты добавляются с последовательным заполнением RID-ов, то вместо строк с пропущенными RID-ами были добавлены строки: RID, computenameRID Для того чтобы заполнить базу AD начальник написал программку на VB.NET. Там есть специальный класс для работы с AD. В принципе эта программа выполняет функции утилиты от Microsoft Addusers.exe. Отличие только в том, что самопальная программа помещает строки с пользователями в ou=Users, а с компьютерами в ou=Computers. Впоследствии мы пришли к выводу, что компьютеры можно было не создавать в новом домене, т.к. они автоматически создадутся при заведении рабочих станций в новый домен. А, следовательно, не нужно было «городить огород» - нужно было просто воспользоваться утилитой от Microsoft-а. Для этого нужно было создать файл вида: [Users] login, ФИО, password, описание, диск, путь, профиль, сценарий … Который и импортировать с помощью Addusers в AD Т.к. не известно, какой RID «текучий свободный» в домене, пришлось сначала загнать одного пользователя в домен с помощью addusers.exe, потом посмотреть его SID (точнее RID) c помощью утилиты PsGetSid и удалить из файла лишних пользователей – нужно чтобы в файле первым был пользователь как раз с RID-ом, который был присвоен этому созданному пользователю. После этого мы откатили систему до предыдущего snapshot-a, заполнили базу Active Directory пользователями и компьютерами, удалили «фиктивные» компьютеры с именами computenameRID Этап 6 – Перенос групп со старого сервера домена на новый (BDC) Из файла groups.xml с помощью Microsoft Excel формируем текстовый файл со строками вида: [Global] groupname, Камент, user1, user2,… … Каждая строка это перечень пользователей, которых необходимо включить в группу, с названия которой и начинается строка (во загнул ) Выполняем эту операцию с помощью addusers: addusers.exe \\BDC /c groups.txt Этап 7 – Создаем DHCP сервер На сервере PDC (на боевом железе) поднимаем DHCP сервер. Со старого сервера берем файл dhcpd.conf и гасим службу dhcpd. C помощью Microsoft Excel и блокнота формируем строки для добавления резервирования для компьютеров домена. Вид строки: Dhcp Server 192.168.0.1 Scope 192.0.0.0 Add reservedip 192.168.0.22 f0123456789f "computer" "Комп бухгалтера" "BOTH" где: 192.168.0.1 – ip адрес сервера 192.0.0.0 – область ip адресов 192.168.0.22 – резервируемый ip адрес компьютера f0123456789f – MAC адрес сетевого интерфейса компьютера computer – имя компьютера "Комп бухгалтера" – описание коспьютера Сформированные строки сохраняем в текстовый файл c:\dhcp.txt Теперь добавляем резервирование на наш сервер с помощью команды: netsh exec c:\dhcp.txt > log.txt В файл log.txt будут записаны результаты выполнения этой команды. Этап 8 – Понижение роли samba до простого файлового сервера Бэкапим конфиги самбы, ставим kerberos, настраиваем kerberos, настраиваем samba как файловый сервер с авторизацией в AD. Инструкции не привожу т.к. все умеют пользоваться поиском. При настройке считаем контроллером домена BDC, установленный на виртуальной машине. Однако стоит обратить внимание на то, что нам пришлось сменить владельцев и группы расшаренных ресурсов на новые, чтобы пользователи, прошедшие авторизацию на в AD, могли получить доступ к своим папкам. Если раньше у нас было, например, так [root@server share]# ll drwx------ 6 vasia smb_users 4096 Feb 3 12:06 vasia то должно стать вот так: [root@server share]# ll drwx------ 6 DOMAIN+vasia DOMAIN+smb_users 4096 Feb 3 12:06 vasia Возможно, что это делать придется не всем – все зависит от настройки Kerberos и Samba. Этап 9 – Загоняем рабочие станции в новый домен Была написана программка на VB которая с помощью утилиты PsExec выполняла следующий bat-файл на каждой рабочей станции: net use N: \\PDC\netdom run /USER:PDC\run @rem echo "Defining variables" @SET HOST=%computername% @SET DUSER=Domain\dmn @SET DPASS=******** @SET LOCUSER=%computername%\Администратор @SET LOCPASS=******** @CALL N:\netdom.exe REMOVE %HOST% /DOMAIN:Domain /UserD:%DUSER% /PasswordD:%DPASS% /UserO:%LOCUSER% /PasswordO:%LOCPASS% @CALL N:\netdom.exe JOIN %HOST% /DOMAIN:Domain /UserD:%DUSER% /PasswordD:%DPASS% /UserO:%LOCUSER% /PasswordO:%LOCPASS% /REBoot net use N: /DELETE Переменные: DUSER – пользователь домена, имеющий право подключать рабочие станции к домену DPASS – его пароль LOCUSER – локальный администратор LOCPASS – его пароль Netdom.exe – утилита из пакета Windows support tools, который лежит на диске в папке SUPPORT\TOOLS\ SUPTOOLS.MSI Выполнение этого батника приводило к тому, что сначала рабочая станция отключается от домена и сразу же после этого подключается к новому домену. Этап 12 На сервере PDC устанавливаем DNC. Ставим на PDC Active Directory, установив роль Backup Domain Controller Да – да – именно резервный несмотря на имя. После репликации AD с сервером, установленным на виртуальной машине, передаем ему (PDC поднятому на боевом железе) все роли, таким образом делаем его первичным контроллером домена (PDC как и называется сервер ). Перенастраиваем самбу – теперь нужно ей указать, что контроллером домена является PDC, а не BDC, как было ранее. Этап 13 Самая неприятная операция – необходимо ручками загнать в новый домен рабочие станции, на которых не выполнился батник из этапа 9. Этап 14 Идем пить пиво и надеяться, что в понедельник не всплывут какие-нибудь не учтенные моменты. Вернуться назад |