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としても、再度ログインできませんでした。スナップショットから回復する必要がありました。
さらに調査した結果、Kerberosでの認証のみを行うことが一般的な問題であるように思われることがわかりました。認証のみを取得し、承認は取得しません。この場合の認証は、パスワードが無効になっているローカルアカウントによって行われます。したがって、別のソースからアカウントを提供しない場合は、追加のローカルアカウントを管理する必要があります。
NSSを使用すると、リモートソース、特にLDAPサーバーからアカウントを取得できます。このようにして、ログインは常に、LDAPサーバーまたはローカルの/etc/passwd
ファイルから、主にrootなどのシステムアカウントに対して、認証用のアカウントを見つけます。 LDAPサーバー上の1か所でアカウントを管理するだけで済みます。
アカウンティング用にLDAPサーバーをセットアップします。
私はここで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
に影響を与えないことを受け入れます。最初のケースでは、行のrequired
をsufficient
に変更します
account required pam_krb5.so minimum_uid=1000
2番目のケースでは、Account:
段落で同じことを行います。これにより、再生成後に/etc/pam.d/common-account
が上記のように変更されます。