これは私をけんけんさせています。 SSH経由でログインするときにKerberosチケットを受け入れるようにAD統合Ubuntu16.04サーバーをセットアップしようとしています。 ADドメインに参加した後、問題なくチケットを受け入れるCentOS 7サーバーがありますが、Ubuntuサーバーで正しく構成されていません。
設定は次のとおりです。
すべてがレルムを介してADに結合され、問題なく機能します。ログイン時またはkinit経由でもすべてがKerberosチケットを取得します。 wksf25からsc7へのSSHは問題なく機能し、wkfs25へのログイン時に取得したkerberosチケットを使用してSSH経由でログインできます。
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
ドメインに参加する:realm join -vU domainuser realdomain.tld
realm permit -R realdomain.tld -g linuxadmins
Ubuntu固有-ログイン時にhomedirを作成するようにpamを設定します: `vim /etc/pam.d/common-session '
session optional pam_mkhomedir.so umask=0077
Ubuntu固有-OpenSSHでGSSAPI認証を有効にします:vim /etc/ssh/sshd_config
GSSAPIAuthentiction yes
GSSAPICleanupCredentials no
ドメインアカウントでログインし、すべてが機能していることを確認します。この時点ですべてが機能しますが、Ubuntuサーバー上のKerberosチケットを介したパスワードなしのSSHログインは除きます。
これが私が得るものです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
realm
にデフォルトを使用させるのではなく、UbuntuのADドメインに参加します。
SSSDの設定には、適切だとは思わなかった小さな違いが1つありましたが、それが適切であることがわかりました。
Ubuntu:realmd_tags = joined-with-adcli
CentOS:realmd_tags = joined-with-samba
問題について別の見方をするために、私はOpenSUSE VMをスピンアップし、SUSEがどのようにAD統合を行うかを調査し始めました。SUSEがどのように機能するかを理解しているときに、 adcli
の代わりにSambaを使用してWindows Server 2012+ ADに参加する必要があることを示唆しています。 1 上記の構成の違いにそれを追加してください。
ドメインを離れ、更新されたrealm
コマンドを使用して再参加することで問題が修正され、すべてが最終日の間安定しています。
2つの方法の違いについて正確な根本的な原因はありませんが、これにはさらに調査が必要であり、また別の日に戦います。
LDAPSをサポートするためにSSL証明書を追加すると同時に、同様の状況が発生しました(ただし、原因であるかどうかを判断するためにその変更を元に戻すことはありませんでした)。 adcli
を好む理由があるかどうかはわかりませんが、adcli
を使用しながらrealm join
を修正した2つのオプションが見つかりました(Ubuntu 14.04および16.04):
ソリューション1(Ubuntu 16.04または14.04)
krb5.conf
に2つの設定を追加します(どちらも役に立ちませんでした):
[libdefaults]
...
canonicalize = true
rdns = false
ソリューション2(Ubuntu 14.04のみ)
その後、私は this gitの問題に遭遇しました。これは、(単独で)14.04でも機能している別のオプションを示唆しています。
[libdefaults]
...
dns_canonicalize_hostname = false
[〜#〜] fwiw [〜#〜]
私たちは実際にDNSを完全に制御しており、既存のレコードに問題を見つけることができませんでした。または、これらの必要性を排除した変更もありませんでした。