在彻底检查了整个互联网之后,我希望可以在这里得到帮助。
我正在尝试将 ubuntu 12.04 服务器集成到具有 nfs 和单点登录的 Windows 2012 活动目录中。
设置:
- srv02 Windows 服务器
- srv03 Ubuntu 文件服务器
srv04 Ubuntu 应用服务器
域名:lettrich.local
- 领域: LETTRICH.LOCAL
什么有效
- 使用 dns ntp 和 dhcp 设置 Windows 2012 AD
- ubuntu 服务器使用 msktutil 在 ad 中注册并获取
无效的方法:
- 在 srv03 上托管的 srv04 上安装 NFS 共享。
- 获取服务主体的 Kerberos 票证。
例如。
sudo kdestroy
sudo kinit -k
kinit: Client 'host/[email protected]' not found in Kerberos database while getting initial credentials
srv03 上的 krb5.keytab,与 srv04 类似。
sudo klist -ke
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
10 [email protected] (arcfour-hmac)
10 [email protected] (aes128-cts-hmac-sha1-96)
10 [email protected] (aes256-cts-hmac-sha1-96)
10 nfs/[email protected] (arcfour-hmac)
10 nfs/[email protected] (aes128-cts-hmac-sha1-96)
10 nfs/[email protected] (aes256-cts-hmac-sha1-96)
10 host/[email protected] (arcfour-hmac)
10 host/[email protected] (aes128-cts-hmac-sha1-96)
10 host/[email protected] (aes256-cts-hmac-sha1-96)
nfs 导出:
cat /etc/exports
/export gss/krb5(rw,fsid=0,no_subtree_check,sync,insecure,crossmnt,anonuid=65534,anongid=65534)
/export/users gss/krb5(rw,no_subtree_check,sync,insecure,nohide,anonuid=65534,anongid=65534)
/export/groups gss/krb5(rw,no_subtree_check,sync,insecure,nohide,anonuid=65534,anongid=65534)
/export/share gss/krb5(rw,no_subtree_check,sync,insecure,nohide,anonuid=65534,anongid=65534)
/export/backup gss/krb5(rw,no_subtree_check,sync,insecure,nohide,anonuid=65534,anongid=65534)
在 srv04 上安装
sudo mount -t nfs4 -o sec=krb5 srv03:/export /mnt
给了我错误
srv04 rpc.gssd[754]: ERROR: No credentials found for connection to server srv03
Active Directory 将 srv03 和 srv04 列为具有正确服务主体名称的域计算机。(名称相应更改)
service principal name = nfs/srv03.lettrich.local; host/srv03.lettrich.local
我的错误在哪里?(是的,时间同步了 ;-))
如果需要的话将提供更多信息。
在此先感谢所有愿意提供帮助的人。
答案1
首先,您应该直接注册并恢复新 Linux 服务器的 DNS 记录。在 Windows 域中注册。
其次,在 Linux 服务器中将 DNS 解析器指向 Windows,并修改 Linux 中的 /etc/hosts 以获取正确的字段
第三,必须安装 Kerberos5 和 winbind apps/modules/libraries
第四,配置 /etc/krb5.conf:
[libdefaults]
default_realm = YOUR.FULL.DOMAIN.WITH.UPPER.CHARS
[realms]
YOUR.FULL.DOMAIN.WITH.UPPER.CHARS = {
kdc = list of IPs windows domain servers
admin_server = one ip for master domain server
}
[domain_realm]
your.full.comain.with.lover.chars = YOUR.FULL.DOMAIN.WITH.UPPER.CHARS
[logging]
#example logging
kdc = FILE:/var/log/kerberos/krb5kdc.log
admin_server = FILE:/var/log/kerberos/kadmin.log
default = FILE:/var/log/kerberos/krb5lib.log
五、配置/etc/samba/smb.conf:
[global]
workgroup = YOUR.SHORT.DOMAIN.WITH.UPPER.CASE
netbios name = YOUR.SERVER.NAME.WITH.UPPER.CASE.WITHOUT.DOMAIN
realm = YOUR.FULL.DOMAIN.WITH.UPPER.CHARS
security = ads
password server = windows.ip.server.what.allows.password.change
wins server = as.above.supports.wins.messages
wins proxy = no
kerberos method = system keytab
dedicated keytab file = /etc/krb5.keytab
server string = write what you want using %h as host name
dns proxy = no
idmap config * : backend = rid
idmap config * : range = 10000-20000
winbind use default domain = Yes
winbind enum users = Yes
winbind enum groups = Yes
winbind nested groups = Yes
winbind separator = +
winbind refresh tickets = yes
template shell = /bin/bash
template homedir = /home/%D/%U
preferred master = no
inherit acls = Yes
map acl inherit = Yes
acl group control
第六,验证您是否能够使用临时任何用户进行连接:
wbinfo -t #test only
net getdomainsid #should print local and domain identifier
wbinfo -u #domain user list, may take long time for many users
wbinfo -g #domain group list
第七,创建密码永不过期且无法更改的技术用户帐户。其他用户保留默认设置。将该用户收集到单独的 AD 目录中 :)
八、生成keytab:
net ads keytab 创建-U[电子邮件保护]
然后检查 /etc/krb5.keytab 是否存在
现在您可以配置其他服务,特别是使用 ntlm 助手。您可以使用以下方法测试连接:
ntlm_auth --username UPPER.CASE.SHORTNAME.DOMAIN+your.technical.username
输入密码,你就会看到状态:
NT_STATUS_OK: Success (0x0)
现在您可以配置 PAM 来验证许多服务,但我没有这样做。我成功地将该配置与 apache2.2 ntlm 身份验证结合使用。我看到了 ssh 和 Xsession 的 pam 配置。
主要思想是,只有 winbind 才能向 Active Directory 进行身份验证。所有其他服务都以任何方式在本地向 winbind 进行身份验证。Winbind 是 samba 的一部分。如果您不需要 samba,则只安装 winbind,这会安装一些 samba 库。
有时当您配置连接时,wbinfo 会连接失败。然后您必须等待片刻,5 分钟或更长时间才能传播域信息。
当然,所有机器上的时间都应该同步。为此配置 NTP。我使用的是 debian,但 ubuntu 使一切都与 debian 相似 :) 祝你好运。
答案2
您如何为客户端创建 SPN?
我使用 Samba 来做这件事并取得了良好的效果(网络广告加入)。
答案3
我必须承认,随着时间的推移,我忘记回答并关闭此帖子。遵循这些说明以及创建正确的 SSSD 配置解决了我的问题: http://ubuntuforums.org/showthread.php?t=1924660