Перейти к содержимому. | Перейти к навигации

Персональные инструменты

Navigation

Вы здесь: Главная / Статьи / Переводные маны по настройке Самбы в AD / SAMBA4 присоединение к домену в роли контроллера домена

SAMBA4 присоединение к домену в роли контроллера домена

перевод оригинальной статьи

(Оригинал)

Содержание

 

1 Samba 4 присоединение к домену как DC

Samba4 имеет возможность присоединения к имеющемуся домену Active Directory в роли дополнительного контроллера домена. Процесс присоединения сервера Samba4 к домену немного отличается от развертывания нового домена. Этот процесс эквивалентен выполнению 'dcpromo' на сервере Windows.

Эта инструкция предполагает, что Вы установили и сконфигурировали Samba в директорию по умолчанию /usr/local/samba. Также предполагается что Вы присоединяете Samba к домену 'samdom.example.com'.

Пожалуйста заметьте что следующие действия не зависят от того присоединяете ли вы Samba к имеющемуся домену на Windows или к имеющемуся Samba-домену.

 

1.1 Подготовка к присоединению Samba к имеющемуся домену как DC

  • Вам нужно установить Samba как DC, как описано в Инструкции Samba AD DC, но без выполнения provision/classicupgrade. Если Вы выбрали BIND как DNS компонент сборки, вместо встроенного DNS, тогда, конечно, Вам нужно выполнить настройку BIND прежде чем продолжить. В зависимости от Ваших нужд, можете использовать разные компоненты среды на разных DC.
  • Вам нужно убрать smb.conf из /usr/local/samba/etc/.
  • Убедитесь, что Вы установили имеющийся домен корректно как домен по умолчанию в /etc/krb5.conf со следующими опциями:
[libdefaults]
 dns_lookup_realm = true
 dns_lookup_kdc = true
 default_realm = DOMAIN.LAN
  • Затем Вам нужно протестировать DNS и Kerberos чтобы убедиться, что они установлены корректно и указывают на существующий контроллер домена. Протестировать это можно вызовом kinit от администратора домена (administrator):
# kinit administrator
Password: XXXXXXXX
  • klist должен выдать Вам примерно следующее:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@domain.lan

Valid starting     Expires            Service principal
11/11/12 17:29:51  11/12/12 03:29:51  krbtgt/domain.lan@domain.lan
       renew until 11/12/12 17:29:49
  • Как только все это установлено Вы можете приступать к присоединению к домену.

 

1.2 Присоединение к имеющемуся домену как DC

  • Убедитесь что Ваш /etc/resolv.conf содержит как минимум одну запись “nameserver”, указывающую на DNS который может обрабатывать зону Вашего Samba AD. Например:
nameserver 192.168.0.1
  • Запустите следующую команду от рута:
# bin/samba-tool domain join domain.lan DC -Uadministrator --realm=domain.lan

Встроенный DNS используется по умолчанию начиная с samba4 rc2. Если Вы присоединяете эту или более новую версию используя BIND как DNS компонент, используйте следующую команду:

# bin/samba-tool domain join domain.lan DC -Uadministrator --realm=domain.lan --dns-backend=BIND9_DLZ
  • В процессе присоединения Вы должны наблюдать набор отладочных сообщений о репликации содержимого домена, примерно таких:
Partition[CN=Configuration,DC=domain,DC=lan] objects[1614/1614] linked_values[28/0]
  • В конце Вы увидите сообщение подобное такому:
Joined domain DOMAIN (SID S-1-5-21-3565189888-2228146013-2029845409) as a DC
  • Теперь Ваш Samba4 сервер присоединен к Вашему домену.

 

1.3 Проверка необходимых записей в DNS нового хоста

  • Прежде чем запустить samba необходимо проверить корректность новых DNS записей DC, созданных в процессе присоединения. Это действие пока не 100%-но отлажено и если записи не корректны (или их нет) – отредактируйте их вручную.
  • С нового хоста попытайтесь обработать такое имя:
# host -t A smbsrv01.domain.lan.

В случае сбоя, Вам придется добавить A-запись вручную. Выполните на вашем имеющемся DC:

# samba-tool dns add IP-of-your-DNS-server domain.lan SMBSRV01 A IP-of-the-DC-you-had-joined –Uadministrator
  • Проверьте также разрешается ли objectGUID в новое имя хоста. Для этого выполните
# ldbsearch -H /usr/local/samba/private/sam.ldb '(invocationid=*)' --cross-ncs objectguid

для поиска objectGUID нового сервера. Вывод команды должен быть примерно таким:

# record 1
dn: CN=NTDS Settings,CN=SMBSRV01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=lan
objectGUID: 737506d0-bfe6-40c8-815d-08c3dff7a67f
...

В этом случае, 737506d0-bfe6-40c8-815d-08c3dff7a67f это objectGUID нового DC, запрос будет следующим:

# host -t CNAME 737506d0-bfe6-40c8-815d-08c3dff7a67f._msdcs.domain.lan.

В ответ Вы должны получить псевдоним (CNAME) этой записи, указывающий на имя Вашего нового DC.

Если эта запись тоже отсутствует, Вам придется добавить и её:

# samba-tool dns add IP-of-your-DNS _msdcs.domain.lan 737506d0-bfe6-40c8-815d-08c3dff7a67f CNAME SMBSRV01.domain.lan -Uadministrator

Если Вы запускаете BIND как DNS компонент и не можете разрешить вновь добавленные записи DNS читайте BIND как DNS компонент: Вновь добавленные записи DNS не разрешимы.

  • Пришло время добавить запись “nameserver” Вашего нового DC в /etc/resolv.conf (если Ваш новый DC не присоединен с “-dns-backend=none”). Например:
nameserver  10.99.0.2

Заметьте, что при активной DNS репликации, дополнительные настройки DNS такие как forwarders не копируются. Детали смотрите в Настройке DNS.

 

1.4 Запуск Samba

Вы запускаете samba как DC таким же образом как запускаете обычный сервер, просто выполните команду “samba” из директории sbin вашей системы.

При первом запуске Samba как нового DC в имеющемся домене Windows Вы можете обнаружить запись об ошибке в лог-файле samba примерно такого вида:

UpdateRefs failed with WERR_DS_DRA_BAD_NC/NT code 0xc00020f8 for 5344d0a6-78a1-4758be69-66d933f1123._msdcs.domain.lan CN=RID Manager$,CN=System,DC=domain,DC=lan

Причина этого контроллер домена Windows который еще не запустил Knowledge Consistency Checker (KCC) (Средство проверки целостности данных) по причине того, что с новым Samba DC еще не создано соединение.

Чтобы исправить это Вам нужно выполнить  "repadmin /kcc" на Windows DC от администратора, или использовать команду samba-tool следующим образом:

# samba-tool drs kcc -Uadministrator dc.domain.lan

После этого необходимо проверить  корректность работы репликации между Windows DC и Samba DC используя:

# samba-tool drs showrepl

Default-First-Site-Name\DC2
DSA Options: 0x00000001
DSA object GUID: 737506d0-bfe6-40c8-815d-08c3dff7a67f
DSA invocationId: eb242434-ca7e-4da7-9b1d-b289ba1922e9

==== INBOUND NEIGHBORS ====

DC=domain,DC=lan
       Default-First-Site-Name\DC via RPC
               DSA object GUID: 25e33532-42f2-4082-b9f4-072f9108b565
               Last attempt @ Sun Nov 11 18:02:02 2012 CET was successful
               0 consecutive failure(s).
               Last success @ Sun Nov 11 18:02:02 2012 CET

CN=Configuration,DC=domain,DC=lan
       Default-First-Site-Name\DC via RPC
               DSA object GUID: 25e33532-42f2-4082-b9f4-072f9108b565
               Last attempt @ Sun Nov 11 18:02:02 2012 CET was successful
               0 consecutive failure(s).
               Last success @ Sun Nov 11 18:02:02 2012 CET
.....

 

1.5 Проверка репликации AD

Для проверки корректности выполнения репликации между двумя Вашими контроллерами домена попробуйте добавить пользователя на Samba DC используя утилиты  командной строки Samba, или утилиту администрирования Windows GUI. Через несколько секунд проверьте что пользователь появился на контроллере домена Windows.

Таким же образом, попробуйте изменить пользователя на контроллере домена Windows и проверьте появились ли корректные изменения на Samba сервере.

 

1.5.1 ldapcmp

Для проверки что некие данные сохранены на всех контроллерах домена Вы можете использовать ldapcmp.

 

1.6 Замечание о репликации SysVol

Репликация общего ресурса (шары) SysVol пока не реализована. Если Вы делаете некие изменения на общем ресурсе необходимо вручную синхронизировать шары на всех DC (например с rsync командой из cron). Пример как реализовать этот механизм можно найти в Инструкции по репликации SysVol.

 

1.7 Расскажите о Вашем успехе/неудаче

Samba как реплицируемый контроллер домена остаётся в активной разработке и мы хотим слышать от пользователей о их успехах и поражениях. Поддержка пользовательских отчетов осуществляется посредством списка рассылки на http://lists.samba.org

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

 

2 Передача роли FSMO

Вы можете передать роль FSMO от имеющегося DC к Samba AD DC захватив ее с Вашей Samba AD машины:

# samba-tool fsmo seize --role=....

Вы можете захватить все пять ролей: rid, schema, naming, pdc и infrastructure ( можно использовать “—role=all” для захвата всех ролей разом).

Примечание: Функция захвата роли была сломана (Bug report 9461). Она была исправлена в 4.0..10/4.1.0. Если Вы используете пораженную версию сначала подумайте об обновлении.

 

3 Замечание по обновлению DNS (записей)

Когда Samba4 становится контроллером домена она имеет возможность автоматического обновления Windows или bind9 DNS серверов с корректным набором DNS записей.

Чтобы этот механизм работал корректно между Samba и Windows Вам может понадобится найти и установить набор из 5 заплаток для bind9. Эти заплатки размещены в директории examples/bind9-patches дерева исходников Samba4.Заплатки были предложены к рассмотрению разработчикам bind9 и будут включены в будущих релизах bind, но тем временем Вы должны иметь возможность компилировать bind9 из исходников самостоятельно и применять заплатки.

Автоматическое обновление DNS реализовано путем регулярного (каждые 10 минут) вызова Самбой  скрипта samba_dnsupdate который устанавливается вместе с Самбой. Этот скрипт читает файл шаблона имен DNS для обновления в DNS зоне из /usr/local/samba/private/dns_update_list.

Содержимое этого файла примерно такое:

A                                                        ${DNSDOMAIN} $IP
A                                                        ${HOSTNAME} $IP
CNAME ${NTDSGUID}._msdcs.${DNSDOMAIN}                    ${HOSTNAME}
SRV _kerberos._tcp.${SITE}._sites.dc._msdcs.${DNSDOMAIN} ${HOSTNAME} 88
SRV _ldap._tcp.${SITE}._sites.dc._msdcs.${DNSDOMAIN}     ${HOSTNAME} 389
SRV _kerberos._tcp.dc._msdcs.${DNSDOMAIN}                ${HOSTNAME} 88
SRV _ldap._tcp.dc._msdcs.${DNSDOMAIN}                    ${HOSTNAME} 389
SRV _ldap._tcp.${DOMAINGUID}.domains._msdcs.${DNSDOMAIN} ${HOSTNAME} 389
SRV _ldap._tcp.${SITE}._sites.gc._msdcs.${DNSDOMAIN}     ${HOSTNAME} 3268
SRV _ldap._tcp.gc._msdcs.${DNSDOMAIN}                    ${HOSTNAME} 3268
SRV _ldap._tcp.pdc._msdcs.${DNSDOMAIN}                   ${HOSTNAME} 389
SRV _gc._tcp.${SITE}._sites.${DNSDOMAIN}                 ${HOSTNAME} 3268
SRV _kerberos._tcp.${SITE}._sites.${DNSDOMAIN}           ${HOSTNAME} 88
SRV _ldap._tcp.${SITE}._sites.${DNSDOMAIN}	         ${HOSTNAME} 389
SRV _gc._tcp.${DNSDOMAIN}                                ${HOSTNAME} 3268
SRV _kerberos._tcp.${DNSDOMAIN}                          ${HOSTNAME} 88
SRV _kpasswd._tcp.${DNSDOMAIN}                           ${HOSTNAME} 464
SRV _ldap._tcp.${DNSDOMAIN}                              ${HOSTNAME} 389
SRV _kerberos._udp.${DNSDOMAIN}                          ${HOSTNAME} 88
SRV _kpasswd._udp.${DNSDOMAIN}                           ${HOSTNAME} 464

Во время выполнения Самба будет подставлять переменные в этом файле и вызывать команду bind9 nsupdate используя опцию -g чтобы включить обновление TSIG-GSS DNS. Это обновления только для имен в DNS обнаруживают не корректные имена и корректируют их.

Можете добавить собственные имена в список dns_update_list и самба добавит их на сервер DNS. Можете также выбрать не использовать TSIG-GSS и вместо этого использовать исправленный ключ DNS установленный в другом сервере bind9. Для реализации этого нужно изменить команду “nsupdate” которую запускает Самба, это делается установкой опции “nsupdate command” файла конфигурации smb.conf. По умолчанию установлено "/usr/bin/nsupdate -g".

$IP надписи A записей заменяются на IP адреса интерфейса который Самба обнаруживает во время запуска, основываясь на опции "interfaces=" из smb.conf.

 

4 Введение в домен как RODC (Статус «в работе»)

Инструкции смотри в Установке RODC.

Основные реализованные возможности

  • Присоединение как RODC к Windows DC.

Реализуется это с помощью samba-tool join (или samba-tool domain join), примерно следующим образом:

sudo bin/samba-tool join win.dev RODC -U Administrator --password=%password --target-dir=/home/ant/prefix.win/

или (для более новых версий Самба):

sudo bin/samba-tool domain join win.dev RODC -U Administrator --password=%password --targetdir=/home/ant/prefix.win/
  • Предзагрузка пользователей для RODC.

Пользовательские пароли по умолчанию не кэшируются в среде RODC. Для изменения этого поведения выполните следующие действия:

1           Добавьте нужных пользователей в "Allowed RODC Password Replication Group".

2           Добавьте доверенные источники в "Password Replication Policy" в свойствах RODC.

3           Можете выполнить предзагрузку пользователей с:

sudo /bin/samba-tool rodc preload myuser --server=dc.domain.lan
  • Добавлена поддержка для RODC FAS.
  • Добавлена поддержка для однонаправленной репликации.
  • Добавлена поддержка для баз данных только для чтения.

Основные возможности в Инструкции:

  • Поддержка разделения роли Администратора.
  • Поддержка Удостоверенного (Credential) кэширования.
  • Присоединение Windows как RODC в Samba4 домен – блокируется при заполнении Kerberos tgt.

 

5 ЧаВО

Сообщение "Failed to find our own NTDS Settings invocationId in the ldb!" в процессе введения

Проверьте имеется ли smb.conf и удалите его до начала присоединения.

Сообщение "Warning: No NC replicated for Connection!"

Когда Самба регистрируется для репликации, несколько флагов установлены не корректно. Вот что показывает команда DRS: They are not set. Это безобидная особенность и можно игнорировать это предупреждение.

относится к: Linux, Samba4, Active Directory, Samba 4, AD, Samba