![長話短說](https://rvso.com/image/1505637/%E9%95%B7%E8%A9%B1%E7%9F%AD%E8%AA%AA.png)
長話短說
我希望 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