Samba/InterdomainTrustRelationships: различия между версиями

Материал из ALT Linux Wiki
 
(не показано 10 промежуточных версий 4 участников)
Строка 27: Строка 27:


1. Для службы DNS создать сервер условной перессылки
1. Для службы DNS создать сервер условной перессылки
 
<syntaxhighlight lang="bash">
PS$ Add-DnsServerConditionalForwarderZone -Name lin.loc -MasterServers 172.16.100.135 -ReplicationScope Forest
PS$ Add-DnsServerConditionalForwarderZone -Name lin.loc -MasterServers 172.16.100.135 -ReplicationScope Forest
 
</syntaxhighlight>
<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
2. Создание двухстороннего транзитивного подключения
2. Создание двухстороннего транзитивного подключения
Строка 37: Строка 37:
[[Файл:Server manager.png]]
[[Файл:Server manager.png]]


В открывшемся окне кликаем по домену WIN.DOM правой клавишей мыши, и в контекстном меню выбираем "Свойства". Откроется окно свойств, в котором необходимо перейти во вкладку "Отношения доверия" и нажать на "Создать отношение доверия"
В открывшемся окне в контекстном меню домена WIN.DOM выбирать «Свойства». Откроется окно свойств, в котором необходимо перейти во вкладку «Отношения доверия» и нажать на «Создать отношение доверия»:


[[Файл:Properties win dom.png]]
[[Файл:Properties win dom.png]]


В открывшемся мастере создания отношения доверия вводим имя домена Samba DC. В данном случае LIN.LOC
В открывшемся мастере создания отношения доверия вводим имя домена Samba DC. В данном случае LIN.LOC:


[[Файл:Trust name.png]]
[[Файл:Trust name.png]]


На следующей вкладке "Тип доверия" выбираем "Доверие леса"
На следующей вкладке «Тип доверия» выбираем «Доверие леса»:


[[Файл:Trust type.png]]
[[Файл:Trust type.png]]


Далее во кладке "Направление отношения доверия" выбираем "Двухстороннее"
Далее во кладке «Направление отношения доверия» выбираем «Двухстороннее»:


[[Файл:Direction of trust.png]]
[[Файл:Direction of trust.png]]
Строка 55: Строка 55:
В открывшемся окне «Стороны отношения доверия» мы выбираем, на каком из доменов мы применяем настройку. В нашем случае у нас есть права администратора для обоих доменов, поэтому выбираем пункт «Для данного и указанного домена».
В открывшемся окне «Стороны отношения доверия» мы выбираем, на каком из доменов мы применяем настройку. В нашем случае у нас есть права администратора для обоих доменов, поэтому выбираем пункт «Для данного и указанного домена».


Если был выбран параметр "Только для данного домена", то необходимо будет задать Trust Secret Key, который в дальнейшем будет использоваться при создании доверительного отношения на стороне Samba DC.
Если был выбран параметр «Только для данного домена», то необходимо будет задать Trust Secret Key, который в дальнейшем будет использоваться при создании доверительного отношения на стороне Samba DC.


[[Файл:Sides of trust.png]]
[[Файл:Sides of trust.png]]


На следующем этапе мастер свяжется с доменом LIN.LOC (если он доступен), и запросит логин и пароль от пользователя с правами установки доверительных отношений в домене LIN.LOC
На следующем этапе мастер свяжется с доменом LIN.LOC (если он доступен), и запросит логин и пароль от пользователя с правами установки доверительных отношений в домене LIN.LOC:


[[Файл:User name and password.png]]
[[Файл:User name and password.png]]


Далее на вкладке «Уровень проверки подлинности исходящего доверия — Локальный лес» выбираем «Проверка подлинности в лесу»
Далее на вкладке «Уровень проверки подлинности исходящего доверия — Локальный лес» выбираем «Проверка подлинности в лесу»:


[[Файл:Outgoing trust authentication level local forest.png]]
[[Файл:Outgoing trust authentication level local forest.png]]
Строка 69: Строка 69:
Тоже самое выбираем и на следующей вкладке «Уровень проверки подлинности исходящего доверия — Указанный лес».
Тоже самое выбираем и на следующей вкладке «Уровень проверки подлинности исходящего доверия — Указанный лес».


После очередного нажатия на кнопку "Далее" мастер в окне "Выбор доверия завершен" выдаст уведомление о том, что готов создать новое отношение доверия, и покажет краткую сводку по выбранным параметрам. Соглашаемся с параметрами, после чего должно появиться уведомление о том, что создание доверия успешно завершено.
После очередного нажатия на кнопку «Далее» мастер в окне «Выбор доверия завершен» выдаст уведомление о том, что готов создать новое отношение доверия, и покажет краткую сводку по выбранным параметрам. Соглашаемся с параметрами, после чего должно появиться уведомление о том, что создание доверия успешно завершено:


[[Файл:Trust creation complete.png]]
[[Файл:Trust creation complete.png]]


После нажатия на "Далее" появится окно "Подтверждение исходящего доверия", а после него "Подтверждение входящего отношения доверия". Здесь и в первом и во втором окне оставляем "Нет, не подтверждаю это исходящее/входящее отношение доверие", так как на стороне Samba DC доверие нами еще не создавалось.
После нажатия на «Далее" появится окно «Подтверждение исходящего доверия», а после него «Подтверждение входящего отношения доверия». Здесь и в первом и во втором окне оставляем «Нет, не подтверждаю это исходящее/входящее отношение доверие», так как на стороне Samba DC доверие нами еще не создавалось:


[[Файл:Confirm outgoing trust.png]]
[[Файл:Confirm outgoing trust.png]]
Строка 84: Строка 84:
Предполагается, что домен уже настроен согласно [https://docs.altlinux.org/ru-RU/alt-server/9.1/html/alt-server/sambadc--chapter.html документации], и функционирует с настроенным BIND9_DLZ в качестве DNS-backend.
Предполагается, что домен уже настроен согласно [https://docs.altlinux.org/ru-RU/alt-server/9.1/html/alt-server/sambadc--chapter.html документации], и функционирует с настроенным BIND9_DLZ в качестве DNS-backend.


1. Создание сервера условной перессылки для службы DNS:
1. Создать сервер условной перессылки для службы DNS. Для этого добавить в конец файла {{path|/etc/bind/ddns.conf}} следующие строки:


  # vim /etc/bind/ddns.conf
<syntaxhighlight lang="ini">zone "win.dom" in {
 
Добавить в конец файла следующие строки
 
  zone "win.dom" in {
       type forward;
       type forward;
       forwarders { 172.16.100.124; };
       forwarders { 172.16.100.124; };
   };
   };</syntaxhighlight>


2. Проверяем возможность получения билета Kerberos в домене WIN.DOM
2. Проверяем возможность получения билета Kerberos в домене WIN.DOM:
    
    
  # kinit admin@WIN.DOM
<syntaxhighlight lang="bash"># kinit admin@WIN.DOM
  # klist
# klist
  Ticket cache: KEYRING:persistent:0:0
Ticket cache: KEYRING:persistent:0:0
  Default principal: admin@WIN.DOM
Default principal: admin@WIN.DOM


  Valid starting      Expires              Service principal
Valid starting      Expires              Service principal
  31.03.2021 22:25:36  01.04.2021 08:25:36  krbtgt/WIN.DOM@WIN.DOM
31.03.2021 22:25:36  01.04.2021 08:25:36  krbtgt/WIN.DOM@WIN.DOM
  renew until 07.04.2021 22:25:30
  renew until 07.04.2021 22:25:30
</syntaxhighlight>
3. Создание двухстороннего транзитивного подключения:


3. Создание двухстороннего транзитивного подключения:
<syntaxhighlight lang="bash"># samba-tool domain trust create win.dom --type=forest --direction=both --create-location=both -Uadmin@WIN</syntaxhighlight>


  # samba-tool domain trust create win.dom --type=forest --direction=both --create-location=both -Uadmin@WIN
{{Attention|Для входа в доверенный домен через SSSD надо использовать тип связи external, а не forest.}}


В случае использования Trust Secret Key в параметре --create-location нужно заменить опцию both на local, тогда после ввода пароля администратора, Samba DC прежде чем создать доверительные отношения сначала запросит Trust Key, созданный ранее при настройке в Windows.
В случае использования Trust Secret Key в параметре --create-location нужно заменить опцию both на local, тогда после ввода пароля администратора, Samba DC прежде чем создать доверительные отношения сначала запросит Trust Key, созданный ранее при настройке в Windows.
Строка 114: Строка 112:
В общем случае ваш вывод после ввода указанной команды должен быть примерно похож, на представленный ниже
В общем случае ваш вывод после ввода указанной команды должен быть примерно похож, на представленный ниже


  LocalDomain Netbios[LIN] DNS[lin.loc] SID[S-1-5-21-1859323732-4157578351-390439025]
<syntaxhighlight lang="bash">LocalDomain Netbios[LIN] DNS[lin.loc] SID[S-1-5-21-1859323732-4157578351-390439025]
  RemoteDC Netbios[DC1] DNS[DC1.WIN.DOM]  
RemoteDC Netbios[DC1] DNS[DC1.WIN.DOM]  
   ServerType[PDC,GC,LDAP,DS,KDC,TIMESERV,CLOSEST,WRITABLE,GOOD_TIMESERV,FULL_SECRET_DOMAIN_6,ADS_WEB_SERVICE,DS_8,__unknown_00008000__]
   ServerType[PDC,GC,LDAP,DS,KDC,TIMESERV,CLOSEST,WRITABLE,GOOD_TIMESERV,FULL_SECRET_DOMAIN_6,ADS_WEB_SERVICE,DS_8,__unknown_00008000__]
  Password for [admin@WIN]:
Password for [admin@WIN]:
  RemoteDomain Netbios[WIN] DNS[WIN.DOM] SID[S-1-5-21-534750258-3577407189-1049577339]
RemoteDomain Netbios[WIN] DNS[WIN.DOM] SID[S-1-5-21-534750258-3577407189-1049577339]
  Creating remote TDO.
Creating remote TDO.
  Remote TDO created.
Remote TDO created.
  Setting supported encryption types on remote TDO.
Setting supported encryption types on remote TDO.
  Creating local TDO.
Creating local TDO.
  Local TDO created
Local TDO created
  Setting supported encryption types on local TDO.
Setting supported encryption types on local TDO.
  Setup local forest trust information...
Setup local forest trust information...
  Namespaces[2] TDO[WIN.DOM]:
Namespaces[2] TDO[WIN.DOM]:
  TLN: Status[Enabled]                  DNS[*.WIN.DOM]
TLN: Status[Enabled]                  DNS[*.WIN.DOM]
  DOM: Status[Enabled]                  DNS[WIN.DOM] Netbios[WIN] SID[S-1-5-21-534750258-3577407189-1049577339]
DOM: Status[Enabled]                  DNS[WIN.DOM] Netbios[WIN] SID[S-1-5-21-534750258-3577407189-1049577339]
  Setup remote forest trust information...
Setup remote forest trust information...
  Namespaces[2] TDO[lin.loc]:
Namespaces[2] TDO[lin.loc]:
  TLN: Status[Enabled]                  DNS[*.lin.loc]
TLN: Status[Enabled]                  DNS[*.lin.loc]
  DOM: Status[Enabled]                  DNS[lin.loc] Netbios[LIN] SID[S-1-5-21-1859323732-4157578351-390439025]
DOM: Status[Enabled]                  DNS[lin.loc] Netbios[LIN] SID[S-1-5-21-1859323732-4157578351-390439025]
  Validating outgoing trust...
Validating outgoing trust...
  OK: LocalValidation: DC[\\DC1.WIN.DOM] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED
OK: LocalValidation: DC[\\DC1.WIN.DOM] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED
  Validating incoming trust...
Validating incoming trust...
  OK: RemoteValidation: DC[\\dc2.lin.loc] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED
OK: RemoteValidation: DC[\\dc2.lin.loc] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED
  Success.
Success.</syntaxhighlight>
 
=== Настройка SSSD ===
В файл {{path|/etc/sssd/sssd.conf}} добавляем доверенный домен:
<syntaxhighlight lang="ini">[domain/LIN.LOC/WIN.DOM]
use_fully_qualified_names = false</syntaxhighlight>
 
Перезапускаем sssd:
<syntaxhighlight lang="bash"># systemctl restart sssd</syntaxhighlight>
 
Проверка:
<syntaxhighlight lang="bash"># getent passwd petrov
petrov@win.dom:*:1588801103:1588801103:Petr Petrov:/home/win.dom/petrov:/bin/bash</syntaxhighlight>
 
В случае проблем с авторизацией пользователем из доверенного домена, в sssd.conf в секцию основного домена можно вписать
krb5_validate = false


=== Подводные камни и ограничения ===
=== Подводные камни и ограничения ===
Строка 143: Строка 156:


2. Вы не можете добавить пользователей и группы доверенного домена в доменные группы доверяющего домена.
2. Вы не можете добавить пользователей и группы доверенного домена в доменные группы доверяющего домена.
3. Для входа в доверенный домен через SSSD надо использовать тип связи '''External''', а не '''Forest'''.
4. Убедитесь, что NetBIOS имена доменов отличаются. Т.е. домен MYDOMAIN.WIN и MYDOMAIN.NEW будут иметь одинаковое короткое имя - MYDOMAIN. Это приведет к невозможности установки доверительных отношений.
5. Winbind на клиентских машинах  не распознаёт доверенные домены, что приводит к проблемам с обновлением паролей учетных записей доверенного домена после их истечения. Чтобы устранить эту проблему, необходимо внести изменения в конфигурационный файл smb.conf на Linux-клиентах, подключенных через Winbind. В секции [global] этого файла следует добавить соответствующую опцию:
winbind scan trusted domains = yes
Перезапустить сервис winbind:
#systemctl restart winbind.service
6. При использовании групповой политики (на контроллерах в win-домене) "Сетевая безопасность: минимальная сеансовая безопасность для серверов на базе NTLM SSP (включая безопасный RPC)" с опцией "требовать сеансовую безопасность NTLMv2" в разделе "Конфигурация компьютера\Конфигурация Windows\Параметры безопасности\Локальные политики\Параметры безопасности" не строится траст между win-доменом и samba-доменом.
При включении этой политики после построения траста некорректно работают доверительные отношения между windows-доменом и samba-доменом. Не выполняется проверка траста (samba-tool domain trust validate) и не выполняется вход на пользователями из доверенного домена на машинах с winbind.


=== Ссылки ===
=== Ссылки ===
Строка 148: Строка 176:
* [https://www.kania-online.de/wp-content/uploads/2019/06/trusts-tutorial-en.pdf https://www.kania-online.de/wp-content/uploads/2019/06/trusts-tutorial-en.pdf]
* [https://www.kania-online.de/wp-content/uploads/2019/06/trusts-tutorial-en.pdf https://www.kania-online.de/wp-content/uploads/2019/06/trusts-tutorial-en.pdf]
* [http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/InterdomainTrusts.html http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/InterdomainTrusts.html]
* [http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/InterdomainTrusts.html http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/InterdomainTrusts.html]
* https://docs.pagure.org/sssd.sssd/design_pages/subdomain_configuration.html




[[Category:Samba]]
[[Category:Samba]]
{{Category navigation|title=Samba|category=Samba|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Samba|category=Samba|sortkey={{SUBPAGENAME}}}}

Текущая версия от 15:06, 25 сентября 2024

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Установка доверительных отношений между Windows 2012R2 и SambaDC

Исходные данные

  • Домен Windows:
 Имя домена - WIN.DOM
 Контроллер домена - DC1.WIN.DOM
 IP address - 172.16.100.124
 ОС контроллера домена - Windows Server 2012R2
 Уровень работы домена - 2012R2
  • Домен Linux:
 Имя домена - LIN.LOC
 Контроллер домена - DC2.LIN.LOC
 IP address - 172.16.100.135
 ОС контроллера домена - Alt 9 Server
 Уровень работы домена - 2012_R2
 Версия Samba - 4.12.11

Основная задача - описать процесс создания двухсторонних доверительных отношений между доменами на базе Windows AD и Samba DC. Проверить возможность входа пользователей и групп одного домена в другой и наоборот.

Настройка на стороне Windows

1. Для службы DNS создать сервер условной перессылки

PS$ Add-DnsServerConditionalForwarderZone -Name lin.loc -MasterServers 172.16.100.135 -ReplicationScope Forest

2. Создание двухстороннего транзитивного подключения

В домене win.dom открываем «Диспетчер серверов», и кликаем на «Средства» — «Active Directory — Домены и Доверие»:

Server manager.png

В открывшемся окне в контекстном меню домена WIN.DOM выбирать «Свойства». Откроется окно свойств, в котором необходимо перейти во вкладку «Отношения доверия» и нажать на «Создать отношение доверия»:

Properties win dom.png

В открывшемся мастере создания отношения доверия вводим имя домена Samba DC. В данном случае LIN.LOC:

Trust name.png

На следующей вкладке «Тип доверия» выбираем «Доверие леса»:

Trust type.png

Далее во кладке «Направление отношения доверия» выбираем «Двухстороннее»:

Direction of trust.png

В открывшемся окне «Стороны отношения доверия» мы выбираем, на каком из доменов мы применяем настройку. В нашем случае у нас есть права администратора для обоих доменов, поэтому выбираем пункт «Для данного и указанного домена».

Если был выбран параметр «Только для данного домена», то необходимо будет задать Trust Secret Key, который в дальнейшем будет использоваться при создании доверительного отношения на стороне Samba DC.

Sides of trust.png

На следующем этапе мастер свяжется с доменом LIN.LOC (если он доступен), и запросит логин и пароль от пользователя с правами установки доверительных отношений в домене LIN.LOC:

User name and password.png

Далее на вкладке «Уровень проверки подлинности исходящего доверия — Локальный лес» выбираем «Проверка подлинности в лесу»:

Outgoing trust authentication level local forest.png

Тоже самое выбираем и на следующей вкладке «Уровень проверки подлинности исходящего доверия — Указанный лес».

После очередного нажатия на кнопку «Далее» мастер в окне «Выбор доверия завершен» выдаст уведомление о том, что готов создать новое отношение доверия, и покажет краткую сводку по выбранным параметрам. Соглашаемся с параметрами, после чего должно появиться уведомление о том, что создание доверия успешно завершено:

Trust creation complete.png

После нажатия на «Далее" появится окно «Подтверждение исходящего доверия», а после него «Подтверждение входящего отношения доверия». Здесь и в первом и во втором окне оставляем «Нет, не подтверждаю это исходящее/входящее отношение доверие», так как на стороне Samba DC доверие нами еще не создавалось:

Confirm outgoing trust.png

Настройка на стороне Linux

Предполагается, что домен уже настроен согласно документации, и функционирует с настроенным BIND9_DLZ в качестве DNS-backend.

1. Создать сервер условной перессылки для службы DNS. Для этого добавить в конец файла /etc/bind/ddns.conf следующие строки:

zone "win.dom" in {
      type forward;
      forwarders { 172.16.100.124; };
  };

2. Проверяем возможность получения билета Kerberos в домене WIN.DOM:

# kinit admin@WIN.DOM
# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: admin@WIN.DOM

Valid starting       Expires              Service principal
31.03.2021 22:25:36  01.04.2021 08:25:36  krbtgt/WIN.DOM@WIN.DOM
	  renew until 07.04.2021 22:25:30

3. Создание двухстороннего транзитивного подключения:

# samba-tool domain trust create win.dom --type=forest --direction=both --create-location=both -Uadmin@WIN
Внимание! Для входа в доверенный домен через SSSD надо использовать тип связи external, а не forest.


В случае использования Trust Secret Key в параметре --create-location нужно заменить опцию both на local, тогда после ввода пароля администратора, Samba DC прежде чем создать доверительные отношения сначала запросит Trust Key, созданный ранее при настройке в Windows.

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

LocalDomain Netbios[LIN] DNS[lin.loc] SID[S-1-5-21-1859323732-4157578351-390439025]
RemoteDC Netbios[DC1] DNS[DC1.WIN.DOM] 
  ServerType[PDC,GC,LDAP,DS,KDC,TIMESERV,CLOSEST,WRITABLE,GOOD_TIMESERV,FULL_SECRET_DOMAIN_6,ADS_WEB_SERVICE,DS_8,__unknown_00008000__]
Password for [admin@WIN]:
RemoteDomain Netbios[WIN] DNS[WIN.DOM] SID[S-1-5-21-534750258-3577407189-1049577339]
Creating remote TDO.
Remote TDO created.
Setting supported encryption types on remote TDO.
Creating local TDO.
Local TDO created
Setting supported encryption types on local TDO.
Setup local forest trust information...
Namespaces[2] TDO[WIN.DOM]:
TLN: Status[Enabled]                  DNS[*.WIN.DOM]
DOM: Status[Enabled]                  DNS[WIN.DOM] Netbios[WIN] SID[S-1-5-21-534750258-3577407189-1049577339]
Setup remote forest trust information...
Namespaces[2] TDO[lin.loc]:
TLN: Status[Enabled]                  DNS[*.lin.loc]
DOM: Status[Enabled]                  DNS[lin.loc] Netbios[LIN] SID[S-1-5-21-1859323732-4157578351-390439025]
Validating outgoing trust...
OK: LocalValidation: DC[\\DC1.WIN.DOM] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED
Validating incoming trust...
OK: RemoteValidation: DC[\\dc2.lin.loc] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED
Success.

Настройка SSSD

В файл /etc/sssd/sssd.conf добавляем доверенный домен:

[domain/LIN.LOC/WIN.DOM]
use_fully_qualified_names = false

Перезапускаем sssd:

# systemctl restart sssd

Проверка:

# getent passwd petrov
petrov@win.dom:*:1588801103:1588801103:Petr Petrov:/home/win.dom/petrov:/bin/bash

В случае проблем с авторизацией пользователем из доверенного домена, в sssd.conf в секцию основного домена можно вписать

krb5_validate = false

Подводные камни и ограничения

1. Не применяются правила фильтрации SID

2. Вы не можете добавить пользователей и группы доверенного домена в доменные группы доверяющего домена.

3. Для входа в доверенный домен через SSSD надо использовать тип связи External, а не Forest.

4. Убедитесь, что NetBIOS имена доменов отличаются. Т.е. домен MYDOMAIN.WIN и MYDOMAIN.NEW будут иметь одинаковое короткое имя - MYDOMAIN. Это приведет к невозможности установки доверительных отношений.

5. Winbind на клиентских машинах не распознаёт доверенные домены, что приводит к проблемам с обновлением паролей учетных записей доверенного домена после их истечения. Чтобы устранить эту проблему, необходимо внести изменения в конфигурационный файл smb.conf на Linux-клиентах, подключенных через Winbind. В секции [global] этого файла следует добавить соответствующую опцию:

winbind scan trusted domains = yes

Перезапустить сервис winbind:

#systemctl restart winbind.service

6. При использовании групповой политики (на контроллерах в win-домене) "Сетевая безопасность: минимальная сеансовая безопасность для серверов на базе NTLM SSP (включая безопасный RPC)" с опцией "требовать сеансовую безопасность NTLMv2" в разделе "Конфигурация компьютера\Конфигурация Windows\Параметры безопасности\Локальные политики\Параметры безопасности" не строится траст между win-доменом и samba-доменом.

При включении этой политики после построения траста некорректно работают доверительные отношения между windows-доменом и samba-доменом. Не выполняется проверка траста (samba-tool domain trust validate) и не выполняется вход на пользователями из доверенного домена на машинах с winbind.

Ссылки