Bug 37160 - Невозможно установить доверенные отношения между AD DC (сделанном на samba 4 из коробки) и free ipa.
Summary: Невозможно установить доверенные отношения между AD DC (сделанном на samba 4 ...
Status: CLOSED NOTABUG
Alias: None
Product: Branch p9
Classification: Distributions
Component: samba-dc (show other bugs)
Version: не указана
Hardware: all Linux
: P3 normal
Assignee: Stanislav Levin
QA Contact: qa-p9@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-08-29 21:58 MSK by Gleb Kulikov
Modified: 2019-09-05 09:31 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gleb Kulikov 2019-08-29 21:58:09 MSK
Невозможно установить доверенные отношения между AD DC (сделанном на samba 4 из коробки) и free ipa.

ПРичина тривиальна:

Error loading module '/usr/lib64/samba-dc/pdb/ipasam.so': /usr/lib64/samba-dc/pdb/ipasam.so: невозможно открыть разделяемый объектный файл:
 Нет такого файла или каталога
No builtin nor plugin backend for ipasam found

после копирования /usr/lib64/samba/pdb ipasam.so -> /usr/lib64/samba-dc/pdb
всё чудесным образом начинает работать.
Comment 1 Anton V. Boyarshinov 2019-08-30 13:29:16 MSK
Нельзя ли уточнить, какие именно действия выполнялись до этого?
Какой инструкции следовали/какие команды выполнялись/с какими модулями настройки что делали? (не обязательно всё из перечисленного, разумеется ;-)
Comment 2 Gleb Kulikov 2019-08-30 22:49:15 MSK
(В ответ на комментарий №1)
> Нельзя ли уточнить, какие именно действия выполнялись до этого?

из истории могу разве-что кинуть:

apt-get install samba-DC

ipa dnsforwardzone-add eureka.eur --forwarder=172.17.0.6 --forward-policy=only
ipa dnsconfig-mod --forwarder=172.17.0.2

172,17,0,6 -- контейнер с бетой сервера, настроенной в роли SAD DC

dig @172.17.0.6 eureka.eur

kinit admin
getent passwd admin

ipa dnsconfig-show
ipa dnszone-show

dig SRV _ldap._tcp.eureki.eur
dig SRV _ldap._tcp.eureka.eur
ipa trust-add --type=ad eureka.eur --range-type ipa-ad-trust --admin Administrator --password --two-way TRUE
ipa-adtrust-install --netbios-name=EUREKI
ipa trust-add --type=ad eureka.eur --range-type ipa-ad-trust --admin Administrator --password --two-way TRUE

... попытки, разбирательства
ldapsearch -LLL -b 'dc=eureki,dc=eur' -x -H 'ldap://localhost' '(&(objectClass=sambaDomain)(sambaDomainName=EUREKI.EUR))'

smbd -i -d 10

...

cp -a /usr/lib64/samba/pdb/ipasam.so /usr/lib64/samba-dc/pdb

ipa trust-add --type=ad eureka.eur  --admin Administrator --password --two-way=TRUE --external=true

!!! OK !!!
Comment 3 Anton V. Boyarshinov 2019-09-02 13:53:47 MSK
Хмм.. то есть, видимо, если бы вместо samba-dc была установлена обычная samba, видимо, всё заработало бы сразу...
Подозреваю, что держать на одной машине контролеер домена Samba и FreeIPA невозможно (хотя могу и ошибаться).
В таком случае, пакет FreeIPA, вероятно, должен конфликтовать с samba-dc.

Или должен предоставлять pdb/ipasam.so в обоих каталогах, и в samba и в samba-dc
Comment 4 Evgeny Sinelnikov 2019-09-02 16:44:22 MSK
(In reply to comment #3)
> Хмм.. то есть, видимо, если бы вместо samba-dc была установлена обычная samba,
> видимо, всё заработало бы сразу...

Судя, по инструкции, samba-dc устанавливался вручную. Поэтому, если достаточно вместо samba-dc установить пакет samba, то так и надо делать. Такой сценарий проверялся? Какие библиотеки от samba нужны для FreeIPA?

> Подозреваю, что держать на одной машине контроллер домена Samba и FreeIPA
> невозможно (хотя могу и ошибаться).

Держать-то можно. Если запускать на разных портах, то даже запустить удастся. Но зачем?

> В таком случае, пакет FreeIPA, вероятно, должен конфликтовать с samba-dc.

Зачем? Тогда krb5-kdc должен конфликтовать. Или bind с dnsmasq, например, тоже тогда должны конфликтовать.

Если речь идёт о p9, то пакеты samba и samba-dc могут быть установлены одновременно. При этом, библиотеки samba-dc - это набор кода на базе Heimdal (с которыми слинкованы проброшенные через альтернативы бинарные файлы), в то время как библиотеки samba - это клиентские библиотеки на базе MIT Kerberos.

При этом, если говорить не о библиотеках, а о службах,
- пакет samba предоставляет файловый сервер (на базе MIT Kerberos для шаринга файлов на клиентах домена, в том числе и в режиме security = ads), пакет samba-dc - контроллер домена на базе Heimdal Kerberos (при этом бинарь smbd подменяется через альтернативу на соответствующий вариант на базе Heimdal), пакет samba-dc-mitkrb5 - контроллер домена на базе MIT Kerberos (при этом используется тот же бинарь smbd, но появляются ещё и дополнительные бинари слинкованные с MIT Kerberos).

> Или должен предоставлять pdb/ipasam.so в обоих каталогах, и в samba и в
> samba-dc

Возможно, так и нужно делать, но собирать клиентов предусматривается только под MIT Kerberos. Тут вопрос в бинарной совместимости. Heimdal сборка предусмотрена быть совместимой только на уровне протоколов, но не на уровне ABI.

Вот эта вот ошибка, выше, "No builtin nor plugin backend for ipasam found" - это ошибка какого модуля? Это ошибка запуска smbd? Если бы я не погуглил, то даже я ни за что бы просто так не догадался.

И вопрос. Нужен быть файл сервер с авторизацией во freeipa или контроллер домена Samba
 Если модуль от IPA лезет в
Comment 5 Evgeny Sinelnikov 2019-09-02 16:55:02 MSK
(In reply to comment #4)
> (In reply to comment #3)
...
> > Или должен предоставлять pdb/ipasam.so в обоих каталогах, и в samba и в
> > samba-dc
> 
> Возможно, так и нужно делать, но собирать клиентов предусматривается только под
> MIT Kerberos. Тут вопрос в бинарной совместимости. Heimdal сборка предусмотрена
> быть совместимой только на уровне протоколов, но не на уровне ABI.
> 
> Вот эта вот ошибка, выше, "No builtin nor plugin backend for ipasam found" -
> это ошибка какого модуля? Это ошибка запуска smbd? Если бы я не погуглил, то
> даже я ни за что бы просто так не догадался.
> 

И вопрос. Нужен был файл сервер с авторизацией во freeipa или контроллер домена Samba?

Если модуль от IPA лезет в каталог /usr/lib64/samba-dc, то возникает вопрос. Как так получилось. Если до p9 такие сборки имели смысл, то теперь этот смысл нужно ещё поискать.
Comment 6 Stanislav Levin 2019-09-03 08:52:36 MSK
(В ответ на комментарий №0)
> Невозможно установить доверенные отношения между AD DC (сделанном на samba 4 из
> коробки) и free ipa.
> 
> ПРичина тривиальна:
> 
> Error loading module '/usr/lib64/samba-dc/pdb/ipasam.so':
> /usr/lib64/samba-dc/pdb/ipasam.so: невозможно открыть разделяемый объектный
> файл:
>  Нет такого файла или каталога
> No builtin nor plugin backend for ipasam found
> 
> после копирования /usr/lib64/samba/pdb ipasam.so -> /usr/lib64/samba-dc/pdb
> всё чудесным образом начинает работать.

Здравствуйте, 
укажите, пожалуйста, используемые версии FreeIPA и samba-DC (Heimdal/MIT).
В зависимости от этого: 
https://lists.fedorahosted.org/archives/list/freeipa-users@lists.fedorahosted.org/thread/A4ZKBGOATG6YAF5H73YFSTKATDC5EQZ3/
Comment 7 Gleb Kulikov 2019-09-03 12:43:06 MSK
(В ответ на комментарий №3)
> Подозреваю, что держать на одной машине контролеер домена Samba и FreeIPA
> невозможно (хотя могу и ошибаться).
> В таком случае, пакет FreeIPA, вероятно, должен конфликтовать с samba-dc.
> 
> Или должен предоставлять pdb/ipasam.so в обоих каталогах, и в samba и в
> samba-dc

бета сервера p9 была взята в виде rootfs и в одном контейнере lxc был поднят free ipa, в а в другом, samba ad dc. В обоих случаях состав изкоробочных пакетов не подвергался ручным правкам.
Comment 8 Gleb Kulikov 2019-09-03 12:49:05 MSK
(В ответ на комментарий №5)

> И вопрос. Нужен был файл сервер с авторизацией во freeipa или контроллер домена
> Samba?

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

> Если модуль от IPA лезет в каталог /usr/lib64/samba-dc, то возникает вопрос.

я так понял, ipa использует и запускает у себя самбу для поддержания отношений доверия, модуль нужен именно самбе для взаимодействия с ипа.
Comment 9 Gleb Kulikov 2019-09-03 12:50:53 MSK
>Это ошибка запуска smbd?

конечно, ошибка smbd. это видно при запуске smbd в режиме отладки
Comment 10 Gleb Kulikov 2019-09-03 12:57:04 MSK
> укажите, пожалуйста, используемые версии FreeIPA и samba-DC (Heimdal/MIT).

freeipa-server-4.7.2-alt3.x86_64
freeipa-client-4.7.2-alt3.x86_64

samba-dc-4.10.6-alt2.x86_64
Comment 11 Gleb Kulikov 2019-09-03 13:00:11 MSK
(В ответ на комментарий №4)
> (In reply to comment #3)

> Судя, по инструкции, samba-dc устанавливался вручную. 

э... насколько помню, потребовалось установить именно samba-dc
Comment 12 Stanislav Levin 2019-09-03 16:20:11 MSK
Пробую воспроизвести проблему.
Comment 13 Stanislav Levin 2019-09-04 13:19:01 MSK
1) описание и название данного бага в корне не совпадает с заявленной проблемой.

2) Sisyphus/P9 из коробки: Samba AD на одной VM, FreeIPA на другой - trust (например, two way) между ними устанавливается.
Такая процедура описана у нас на вики
https://www.altlinux.org/FreeIPA
https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller

И только при установке samba-dc на одну машину с FreeIPA DC не стартует демон smbd c:
```
сен 04 10:20:30 ipadc.ipa.test smbd[5993]:   No builtin nor plugin backend for ipasam found
сен 04 10:22:00 ipadc.ipa.test systemd[1]: smb.service: Start operation timed out. Terminating.
```
То есть до установления доверия дело не доходит.

Конфигурация smbd задается FreeIPA:
```
net conf list | grep passdb
passdb backend = ipasam:ldapi://%2fvar%2frun%2fslapd-IPA-TEST.socket
```
Отсюда и возникает требование модуля ipasam.
Не новость, что ipasam PASSDB требует MIT kerberos. Тогда как 

> samba-dc - контроллер домена на базе Heimdal Kerberos (при этом бинарь smbd
подменяется через альтернативу на соответствующий вариант на базе Heimdal)

То есть даже, если скопировать ipasam на нужный rpath, то это не гарантирует его корректную работу.
Comment 14 Stanislav Levin 2019-09-05 09:31:19 MSK
Если нет возражений, то закрою как NOTABUG.