長話短說

長話短說

長話短說

我希望 Windows 用戶端能夠使用 freeipa 憑證存取 samba 共用。

問題

這是超級用戶而不是伺服器故障,因為它不是工作生產環境;這是我的家庭網絡。有許多關於使用 GNU/Linux samba 與 Windows 進行互通的指南。但我不想擁有跨網域信任(我的 Windows AD 網域最終會消失)。

我可以將 samba 配置為指向 freeipa(ipasam?ldapsam?),以便在我的 Windows 用戶端(我保留遊戲)上我可以使用“[電子郵件受保護]" 連線到 \linuxserver\sharename?

我知道如何配置 samba 以將現有的 AD 網域用於已加入網域的 GNU/Linux 主機,但這不是我在這裡所做的。這次我的主機是 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 值。

在桑巴伺服器上:

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

相關內容