要約

要約

要約

Windows クライアントが freeipa 資格情報を使用して samba 共有にアクセスできるようにしたいと考えています。

問題

これはスーパーユーザーで実行されており、serverfault ではありません。これは仕事の運用環境ではなく、私のホーム ネットワークだからです。Windows との相互運用性のために GNU/Linux samba を使用するためのガイドは多数あります。ただし、ドメイン間の信頼は望んでいません (私の Windows AD ドメインはいずれなくなる予定です)。

Windowsクライアント(ゲーム用に保持している)で「[メールアドレス]" \linuxserver\sharename に接続しますか?

ドメインに参加している GNU/Linux ホストで既存の AD ドメインを使用するように samba を構成する方法は知っていますが、ここで行っているのはそれではありません。今回のホストは freeipa ドメイン コントローラーですが、freeipa クライアントをファイル サーバーにする可能性があります。他の Linux ホスト用に nfs がありますが、「nfs windows」で簡単に検索しても、ここでの目的よりも優れた/簡単なものは見つかりませんでした。

可能性

  • ipasam または ldapsam バックエンドを使用できますか?
  • samba を「Windows ドメイン コントローラー」として使用し、ipa ドメインを信頼してユーザーをマップすることはできますか?

9月7日更新

私は見つけたhttps://techslaves.org/2011/08/24/freeipa-and-samba-3-integration/そして、freeipa のスキーマを変更して samba プロパティを含める方法を示す手順に従いました。しかし、まだエラーが発生します: NT_STATUS_WRONG_PASSWORD。

答え1

8か月後、ついに問題を解決しました!

Samba を freeipa 認証で共有

完全な情報は以下をご覧ください。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 値を生成するために、ユーザーはパスワードをリセットする必要があります。

samba サーバーの場合:

yum -y install ipa-server-trust-ad

要求されたファイアウォール ポートを開きます (TCP 135、138、139、445、1024-1300、UDP 138、139、389、445)

samba にパスワードの読み取りを許可する

ipa permission-add "CIFS server can read user passwords" \
   --attrs={ipaNTHash,ipaNTSecurityIdentifier} \
   --type=user --right={read,search,compare} --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

samba conf を準備し、samba を再起動します。

tf=/etc/samba/smb.conf
touch "${tf}"; chmod 0644 "${tf}"; chown root:root "${tf}"; restorecon "${tf}"
cat < "${tf}"
[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

関連情報