web-dev-qa-db-ja.com

Kerberos認証を使用するがローカルアカウントを必要としないPAM構成

DebianBusterでkinitを使用してテストされたKerberos認証が機能しています。今、私はそれを KerberosでログインするためのPAM で使用しようとし、libpam-krb5をインストールし、pam-auth-updateで構成しました。しかし、/usr/share/doc/libpam-krb5/README.Debian.gzのドキュメントには次のように記載されています。

この構成では、ユーザーが/ etc/shadowにリストされている必要があります。そうしないと、pam_unixアカウントモジュールが失敗します。通常、Kerberos認証のみを使用する必要があるアカウントは、adduser--disabled-passwordを使用して作成する必要があります。アカウントを/ etc/shadowにまったく表示したくない場合(たとえば、nsswitch構成にファイル以外のソースを使用している場合)、pam_krb5アカウントモジュールを「十分」としてマークすることができます。 pam_unixが実行されないようにするために必要です。これは、ローカルでアカウントを無効にできないことを意味します。

Kerberosデータベースに加えて、アカウントが/etc/shadowにローカルにリストされることは、私にとって冗長な作業であるため、望まない。デフォルトの設定でログインしようとしましたが、次のような失敗がありました。

Debian GNU/Linux 10 deb10-base ttyS0

deb10-base login: ingo
Password: 

Authentication failure

journalctlで私はこれを見つけます:

Oct 06 15:33:08 deb10-base login[374]: pam_krb5(login:auth): user ingo authenticated as [email protected]
Oct 06 15:33:08 deb10-base login[374]: pam_unix(login:account): could not identify user (from getpwnam(ingo))
Oct 06 15:33:08 deb10-base login[374]: Authentication failure

これは、上記の引用されたドキュメントから正確に予想されます。しかし、PAM構成ファイルをどこで何を変更するかというコメントがわかりません。現在の構成ファイルはドキュメントと一致しません。

どのPAM構成ファイルのどのエントリをrequiredからsufficientに変更する必要がありますか)?他にやることはありますか?可能であれば、pam-auth-update構成セクションを保持したいと思います。

更新:
pam-auth-updateを開始し、オプションを確認したことを忘れました。

[*] Kerberos authentication
[*] Unix authentication
[*] Create home directory on login

Unix認証」のチェックを外そうとしましたが、ログインできなくなりました。 rootとしても、再度ログインできませんでした。スナップショットから回復する必要がありました。

1
Ingo

さらに調査した結果、Kerberosでの認証のみを行うことが一般的な問題であるように思われることがわかりました。認証のみを取得し、承認は取得しません。この場合の認証は、パスワードが無効になっているローカルアカウントによって行われます。したがって、別のソースからアカウントを提供しない場合は、追加のローカルアカウントを管理する必要があります。

NSSを使用すると、リモートソース、特にLDAPサーバーからアカウントを取得できます。このようにして、ログインは常に、LDAPサーバーまたはローカルの/etc/passwdファイルから、主にrootなどのシステムアカウントに対して、認証用のアカウントを見つけます。 LDAPサーバー上の1か所でアカウントを管理するだけで済みます。

アカウンティング用にLDAPサーバーをセットアップします。

0
Ingo

私はここで2つの不完全なオプションを見ることができます:

  • 生成された/etc/pam.d/common-accountのブロックを変更し、pam-auth-updateがそれ以上触れないことを受け入れるか、または
  • dpkg-divertおよび/usr/share/pam-configs/krb5を変更し、/etc/pam.d/common-accountを再生成し、libpam-krb5の更新が/usr/share/pam-configs/krb5に影響を与えないことを受け入れます。

最初のケースでは、行のrequiredsufficientに変更します

account required pam_krb5.so minimum_uid=1000

2番目のケースでは、Account:段落で同じことを行います。これにより、再生成後に/etc/pam.d/common-accountが上記のように変更されます。

1
Ferenc Wágner