Samba использует freeipa auth для клиентов Windows, которые получают доступ к общему ресурсу cifs

2674
bgStack15

TL; DR

Я хочу, чтобы клиент Windows мог получить доступ к общему ресурсу samba с помощью учетных данных freeipa.

проблема

Это на суперпользователе, а не на сервере, потому что это не рабочая производственная среда; это моя домашняя сеть. Существует множество руководств по использованию GNU / Linux samba для взаимодействия с Windows. Но я не хочу иметь междоменное доверие (мой домен Windows AD в конце концов уходит).

Могу ли я настроить samba для указания на freeipa (ipasam? Ldapsam?), Чтобы на моем клиенте Windows (я хожу по играм) я мог использовать «bgstack15@myfreeipadomain.example.com» для подключения к \ linuxserver \ sharename?

Я знаю, как настроить samba для использования существующего домена AD для присоединенного к домену хоста GNU / Linux, но это не то, что я здесь делаю. На этот раз моим хостом является контроллер домена freeipa, но я могу сделать клиент freeipa моим файловым сервером. У меня есть nfs для других хостов Linux, но мой быстрый поиск по «окнам nfs» не показал ничего, что могло бы быть лучше / проще, чем моя цель здесь.

Возможности

  • Могу ли я использовать бэкэнды ipasam или ldapsam?
  • Могу ли я использовать samba в качестве «контроллера домена Windows», чтобы он доверял домену ipa и отображал пользователей?

обновление 7 сентября

Я нашел https://techslaves.org/2011/08/24/freeipa-and-samba-3-integration/ и следовал инструкциям, которые показывают, как изменить схему freeipa для включения свойств samba. Но я все еще получаю ошибки: NT_STATUS_WRONG_PASSWORD.

0

1 ответ на вопрос

0
bgStack15

Через 8 месяцев я наконец-то решил проблему!

Самба делится с freeipa auth

Полный набор информации находится по адресу https://bgstack15.wordpress.com/2017/05/10/samba-share-with-freeipa-auth/ .

На контроллере freeipa:

yum -y install ipa-server-trust-ad ipa-adtrust-install --add-sids 

После запуска --add-sids пользователи должны сбросить свои пароли, чтобы freeipa сгенерировала значение ipaNTHash для своих паролей.

На сервере самбы:

yum -y install ipa-server-trust-ad 

Откройте запрашиваемые порты брандмауэра (TCP 135,138,139,445,1024-1300; UDP 138,139,389,445)

Разрешить самбе читать пароли

ipa permission-add "CIFS server can read user passwords" \ --attrs= \ --type=user --right= --bindtype=permission ipa privilege-add "CIFS server privilege" ipa privilege-add-permission "CIFS server privilege" \ --permission="CIFS server can read user passwords" ipa role-add "CIFS server" ipa role-add-privilege "CIFS server" --privilege="CIFS server privilege" ipa role-add-member "CIFS server" --services=cifs/host2.vm.example.com 

Подготовьте конфу самбы и перезапустите самбу.

tf=/etc/samba/smb.conf touch "$"; chmod 0644 "$"; chown root:root "$"; restorecon "$" cat < "$" [global] debug pid = yes realm = VM.EXAMPLE.COM workgroup = VM domain master = Yes ldap group suffix = cn=groups,cn=accounts ldap machine suffix = cn=computers,cn=accounts ldap ssl = off ldap suffix = dc=vm,dc=example,dc=com ldap user suffix = cn=users,cn=accounts log file = /var/log/samba/log max log size = 100000 domain logons = Yes registry shares = Yes disable spoolss = Yes dedicated keytab file = FILE:/etc/samba/samba.keytab kerberos method = dedicated keytab #passdb backend = ipasam:ldapi://%2fvar%2frun%2fslapd-VM-EXAMPLE-COM.socket #passdb backend = ldapsam:ldapi://%2fvar%2frun%2fslapd-VM-EXAMPLE-COM.socket passdb backend = ipasam:ldap://host2.vm.example.com ldap://host1.vm.example.com security = USER create krb5 conf = No rpc_daemon:lsasd = fork rpc_daemon:epmd = fork rpc_server:tcpip = yes rpc_server:netlogon = external rpc_server:samr = external rpc_server:lsasd = external rpc_server:lsass = external rpc_server:lsarpc = external rpc_server:epmapper = external ldapsam:trusted = yes idmap config * : backend = tdb  ldap admin dn = cn=Directory Manager  [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes EOFCONF systemctl restart smb.service