web-dev-qa-db-ja.com

ADに参加しているCentos7サーバーへの認証の問題

このリンク を使用して、Active Directoryサーバーに適切に参加しているサーバーをセットアップしましたが、何らかの理由で、作成した複数のテストユーザーでKerberosチケットを使用してそのサーバーを認証できません。私のラップトップで。

ローカルラップトップのすべてのユーザーは同じ.ssh/configを持ち、すべて同じ/etc/krb5.confを使用します。すべてのユーザーは、kinitを使用するだけで、ADから有効なチケットを正常に取得することもできます。ただし、ADに参加している前述のサーバーにSSH接続しようとすると問題が発生します。

自分のアカウント「parkel」でログインしようとすると、パスワードの入力を求められ、ADパスワードを入力すると、サーバーにログインするための認証が取得されます。最初にログインしたときに、ホームディレクトリが正しく作成されました。 ADのgidNumberで設定されたグループに割り当てられました。世界ではすべて大丈夫のようでした。 ADでgidNumberの変更をテストしましたが、すべての変更は再ログ後すぐにアクティブになりました。世界ではまだすべて大丈夫のようでした。

それが問題が始まったときです。成功を確認した後、ADで2つのテストアカウントを作成しました。以前は機能していた自分のADアカウントのコピーである「test1」と「test2」です。私は自分のラップトップでそのアカウントに変更し、kinitを実行してチケットを取得しました。ただし、サーバーにログインしようとすると、パスワードで認証しようとしているだけで、pam_sssを使用して認証しようとしていることはログに記録されません。ローカルユーザーが存在しないため、これは惨めに失敗します。

私は認めるよりもはるかに多くのグーグル検索とドキュメントをチェックしました、しかし私はここで本当に途方に暮れています。私はいくつかの愚かな細部を見落としていると確信していますが、どこが間違っているのか本当にわかりません。

サーバー上のsshdログと、サーバーおよびクライアント上のkrb5.confからの出力が含まれています。

SSHD出力

Dec 10 11:59:04 ldaptest.vs.lan sshd[2384]: Authorized to parkel, krb5 principal [email protected] (ssh_gssapi_krb5_cmdok)
Dec 10 11:59:04 ldaptest.vs.lan sshd[2384]: Accepted gssapi-with-mic for parkel from 192.168.100.2 port 56752 ssh2
Dec 10 11:59:04 ldaptest.vs.lan systemd[1]: Created slice user-2001.slice.
Dec 10 11:59:04 ldaptest.vs.lan systemd[1]: Starting Session 3 of user parkel.
Dec 10 11:59:04 ldaptest.vs.lan systemd[1]: Started Session 3 of user parkel.
Dec 10 11:59:04 ldaptest.vs.lan systemd-logind[776]: New session 3 of user parkel.
Dec 10 11:59:04 ldaptest.vs.lan sshd[2384]: pam_unix(sshd:session): session opened for user parkel by (uid=0)
Dec 10 11:59:10 ldaptest.vs.lan sshd[2410]: Invalid user test1 from 192.168.100.2
Dec 10 11:59:10 ldaptest.vs.lan sshd[2410]: input_userauth_request: invalid user test1 [preauth]

KRB5.confサーバー

[libdefaults]
    default_realm = VS.LAN 
    dns_lookup_realm = false
    dns_lookup_kdc = false
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = yes

[realms]
    VS.LAN = {
        kdc = ad01-test.vs.lan:88
        admin_server = ad01-test.vs.lan:749
        default_domain = vs.lan
    }

[appdefaults]
    pam = {
        debug = true
        ticket_lifetime = 36h
        renew_lifetime = 36h
        forwardable = true
        krb4_convert = false
    }

[logging]
    default = FILE:/var/log/krb5/kdc.log
    kdc = FILE:/var/log/krb5/kdc.log
    admin_server = FILE:/var/log/krb5/kadmind.log

KRB5.confクライアント

includedir /etc/krb5.conf.d/

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = false
 rdns = false
 default_realm = VS.LAN 
 default_ccache_name = KEYRING:persistent:%{uid}

[realms]
 VS.LAN = {
  kdc = 172.19.254.5
 }

[domain_realm]
 .vs.local = VS.LAN
 vs.local = VS.LAN

SSSD.confサーバー

[sssd]
domains = vs.lan
services = nss, pam, pac
config_file_version = 2

[nss]

[pam]

[pac]

[domain/vs.lan]
## Comment out if you want offline logins
# cache_credentials = true
ldap_id_mapping = False
default_Shell = /bin/bash
fallback_homedir = /home/%d/%u

id_provider = ad
auth_provider = ad
access_provider = ad
chpass_provider = ad

ldap_schema = ad

dyndns_update = true
dyndns_refresh_interval = 43200
dyndns_update_ptr = true
dyndns_ttl = 3600

ad_server = ad01-test.vs.lan
1
Peter van Arkel

将来の参照として、このログ行が重要です。

Dec 10 11:59:10 ldaptest.vs.lan sshd[2410]: Invalid user test1 from 192.168.100.2

Sshがユーザーを見つけることさえできることを示しているので、デバッグの次のステップは、sssdログを有効にして、getent passwd test1が機能しない理由を確認することです。

嬉しいsssdがあなたのために働きます!

1
jhrozek

最終的に、ユーザー 'test1'のADで正しい値uidNumber、gidNumber、homeDirectory、loginShellを設定することで、問題を解決しました。どうやら私が働いているユーザーをコピーしたとき、これらの値は他のすべての情報と一緒にコピーされなかったようです。

0
Peter van Arkel