这是驾驶我的屁股。 我试图设置一个AD集成的Ubuntu 16.04服务器,通过SSHlogin时接受Kerberos票据。 我有一个CentOS 7服务器在join到AD域之后接受门票没有问题,但是我没有在Ubuntu服务器上得到正确的configuration。
这是设置:
一切都通过领域join到公元,这没有任何问题。 所有的东西都可以通过login或通过kinit获得Kerberos票据。 从wksf25到sc7的SSH服务工作得很好,而且我可以使用我在loginwkfs25时获得的kerberos票证通过SSHlogin。
这里是Ubuntu的设置步骤:
安装软件包:
apt install realmd oddjob oddjob-mkhomedir sssd sssd-tools adcli samba-common krb5-user chrony packagekit libpam-krb5
chrony.conf以使用AD DC。 设置realmd.conf: vim /etc/realmd.conf
[users] default-home = /home/%D/%U [realdomain.tld] fully-qualified-names = no manage-system = no automatic-id-mapping = yes
join域: realm join -vU domainuser realdomain.tld
realm permit -R realdomain.tld -g linuxadmins 特定于Ubuntu – 在login时设置pam创buildhomedir:`vim /etc/pam.d/common-session'
session optional pam_mkhomedir.so umask=0077
特定于Ubuntu – 在OpenSSH中启用GSSAPI身份validation: vim /etc/ssh/sshd_config
GSSAPIAuthentiction yes GSSAPICleanupCredentials no
用域帐户login,并确保一切正常。 在这一点上,一切工作都通过Ubuntu服务器上的Kerberos票据减去无密码的SSHlogin。
以下是我从realm list获得的内容:
realdomain.tld type: kerberos realm-name: REALDOMAIN.TLD domain-name: realdomain.tld configured: kerberos-member server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: libnss-sss required-package: libpam-sss required-package: adcli required-package: samba-common-bin login-formats: %U login-policy: allow-permitted-logins permitted-logins: permitted-groups: linuxusers
sssd.conf:
[sssd] domains = realdomain.tld config_file_version = 2 services = nss, pam [domain/realdomain.tld] ad_domain = realdomain.tld krb5_realm = REALDOAMIN.TLD realmd_tags = joined-with-adcli cache_credentials = True id_provider = ad krb5_store_password_if_offline = True default_shell = /bin/bash ldap_id_mapping = True use_fully_qualified_names = False fallback_homedir = /home/%d/%u access_provider = simple simple_allow_groups = linuxusers
krb5.conf的:
[libdefaults] dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_ccache_name = KEYRING:persistent:%{uid} default_realm = REALDOMAIN.TLD [realms] REALDOMAIN.TLD = { } [domain_realm] realdomain.org = REALDOMAIN.TLD .realdomain.org = REALDOMAIN.TLD
我错过了什么?
固定。 realm join -vU domainuser --membership-software=samba --client-software=sssd realdomain.tld在Ubuntu上joinAD域,而不是让域使用默认值。
SSSD的configuration有一点小小的差别,我认为没有必要,但事实certificate是这样的。
Ubuntu: realmd_tags = joined-with-adcli
CentOS: realmd_tags = joined-with-samba
为了从不同的angular度看问题,我创build了一个OpenSUSE VM,并开始研究SUSE如何进行AD集成。 当我弄清楚SUSE如何处理这些事情时,我跑过了一篇文章,提示Samba应该用于joinWindows Server 2012 + AD而不是adcli 。 1在上面的configuration中添加这个差异,这是发生了什么事情的线索。
离开域并重新join更新的realm命令解决了这个问题,并且所有事情在最后一天都保持稳定。
对于这两种方法之间的差异,我没有确切的根本原因,但是这将需要更多的研究,并且是另一天的一场争斗。
我们也遇到了类似的情况,即增加一个SSL证书来支持LDAPS(尽pipe我从来没有将这个变化回复到原来的判断)。 我不确定是否有任何理由更喜欢adcli ,但我发现有两个选项固定realm join同时仍然使用adcli (在Ubuntu 14.04和16.04):
解决scheme1(Ubuntu 16.04或14.04)
将两个设置添加到我们的krb5.conf (不是单独帮助):
[libdefaults] ... canonicalize = true rdns = false
解决scheme2(仅限Ubuntu 14.04)
后来我偶然发现了这个混帐问题, 这个问题提出了另外一个select(单是)也在14.04为我们工作:
[libdefaults] ... dns_canonicalize_hostname = false
FWIW
我们实际上已经完全控制了我们的DNS,并且无法在我们现有的logging中find任何问题 – 或者任何消除了这些需求的更改。