我一直在尝试添加一个Ubuntu桌面到我们的公司领域,取得了有限的成功。 我已经尽可能按照https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto上的指导(包括跟随设置Kerberos的链接)。 我可以使用kinit从我们的区议会获得一张票:
localuser@HOSTNAME: sudo kinit adminuser Password for [email protected]: Warning: Your password will expire in 5 days on Sun 18 Sep 2016 08:58:05 AEST localuser@HOSTNAME: sudo klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: [email protected] Valid starting Expires Service Principal 12/09/16 09:57:10 12/09/16 19:57:10 krbtgt/[email protected] renew until 13/09/16 09:56:57
它甚至可以看到我的密码在5天内到期。 但是当我尝试join域时,我得到以下内容:
localuser@HOSTNAME: sudo net ads join -k Kinit for HOSTNAME$ to access cifs/[email protected] failed: Cannot contact any KDC for requested realm Using short domain name -- DOMAIN Joined 'HOSTNAME' to dns domain 'domain.com.au' kerberos_kinit_password [email protected] failed: Cannot conact any KDC for requested realm DNS update failed: kinit failed: Cannot contact any KDC for requested realm
奇怪的是,域对象被创build,重新启动后,我可以看到lastLogonTime更新到桌面启动的时间。
我也尝试使用smbclient来testing。 在这里,我发现一些奇怪的东西 如果我指定了服务器名称,它将起作用,但如果我指定了FQDN,则只能部分工作:
localuser@HOSTNAME:~$ smbclient -kL //dc01 OS=[Windows Server 2012 R2 Standard 9600] Server=[Windows Server 2012 R2 Standard 6.3] Sharename Type Comment --------- ---- ------- ADMIN$ Disk Remote Admin C$ Disk Default share IPC$ IPC Remote IPC NETLOGON Disk Logon server share SYSVOL Disk Logon server share OS=[Windows Server 2012 R2 Standard 9600] Server=[Windows Server 2012 R2 Standard 6.3] Server Comment --------- ------- Workgroup Master --------- ------- localuser@HOSTNAME:~$ smbclient -kL //dc01.domain.com.au OS=[Windows Server 2012 R2 Standard 9600] Server=[Windows Server 2012 R2 Standard 6.3] Sharename Type Comment --------- ---- ------- ADMIN$ Disk Remote Admin C$ Disk Default share IPC$ IPC Remote IPC NETLOGON Disk Logon server share SYSVOL Disk Logon server share Connection to dc01.domain.com.au failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND) NetBIOS over TCP disabled -- no workgroup available
我正在Windows 10 Professional上托pipe的Hyper-V虚拟机中运行Ubuntu Desktop 16.04 LTS。 我们的域名是2008年的function级别,我们的域名都是2012 R2。 我已经安装了下列软件包:
sudo apt install krb5-user libnss-winbind libpam-winbind ntp ntp-doc samba smbclient ssh-server vim vim-doc winbind
DNS和NTP都可以使用; ntpq -p列出我的DC。 我对configuration文件所做的更改:
/etc/krb5.conf – 我们有两个使用的DNS域名; 我还没有尝试过使用第二个域,但是我已经把它放在这里准备。 此外,一个Wireshark跟踪显示桌面试图通过UDP连接,并没有得到任何答案,然后将尝试约20秒后与TCP,并得到一个直接的答案,所以我禁用UDP。
[logging] default = FILE:/var/log/krb5.log [libdefaults] default_realm = DOMAIN.COM.AU udp_preference_limit = 0 [domain_realm] .domain.com.au = DOMAIN.COM.AU domain.com.au = DOMAIN.COM.AU .domain2.com.au = DOMAIN.COM.AU domain2.com.au = DOMAIN.COM.AU
/etc/samba/smb.conf – 由于testparm在抱怨默认的“syslog = 0”行,所以我删除了它。 此外,由于这台计算机没有任何打印机共享,我已经删除了默认的共享部分([打印机]和[打印$])。
[global] client ntlmv2 auth = yes client signing = yes client use spnego = yes encrypt passwords = yes idmap config * : backend = autorid idmap config * : range = 1000000 - 1999999 kerberos method = secrets and keytab realm = DOMAIN.COM.AU restrict anonymous = 2 security = ads template homedir = /home/%D/%U template shell = /bin/bash winbind enum groups = yes winbind enum users = yes winbind use default domain = yes workgroup = DOMAIN
任何想法在哪里寻找麻烦? 尽pipe已将日志logging部分添加到我的krb5.conf文件中,但是没有创build日志文件,所以我似乎无法获得有关Kerberos中发生的事情的任何详细信息。 我希望有人比我能指出我的下一个检查方向是正确的。
这可能是一个DNS问题。 检查DC01.domain.com.au
服务器的DNS:
$ nslookup DC01 # or dig if you prefer $ nslookup DC01.domain.com.au $ nslookup wxyz # IP address
同样,使用正确的DNSsearchpath,确保您的客户端在DNS正向和反向上正确parsing:
$ nslookup HOSTNAME $ nslookup HOSTNAME.domain.com.au $ nslookup wxyz # IP address
尝试强制使用特定的KDC,至less对于join。 这样做并不理想,但是在发生DNS问题时可能会有所帮助。
在/etc/krb5.conf
:
[realms] DOMAIN.COM.AU = { kdc = dc01.domain.com.au }
在/etc/smb.conf
:
[global] password server = dc01.domain.com.au
也尝试net ads join -U adminuser
而不是-k
选项。
我见过的例子有udp_preference_limit = 1
而不是udp_preference_limit = 0
但这可能没有关系。
login/etc/krb5.conf
仅用于服务器端,我相信。