pam_krb5のケルベロスを介して無効なADアカウントへのアクセスを拒否する方法


10

AD / Linux / LDAP / KRB5ディレクトリと認証設定が機能していますが、小さな問題が1つあります。アカウントが無効になっている場合でも、SSH公開鍵認証ではユーザーのログインが許可されます。

kinitとkpasswdが「クライアントの資格情報が取り消された」ことを返すため、kerberosクライアントが無効なアカウントを識別できることは明らかです。

認証が公開鍵によって行われる無効なアカウントのログインを許可しないように(sshd_configで「UsePAM yes」を使用して)PAMを構成できますか?これはうまくいかないようです:

account     [default=bad success=ok user_unknown=ignore] pam_krb5.so

回答にwinbindを導入しないでください-使用しません。

回答:


4

ロックされたアカウントがSSH経由でログインできないように、SSHを「修正」することを求める他の人が読んだことがあります。(Debianバグ219377を参照)このリクエストは、「passwd -lはpasswdのロックのみに使用されていた[ユーザー]からの期待に反するため」というパッチとして拒否されました。(Debianバグ389183を参照)たとえば、一部の人々は、パスワードログインからアカウントをロックできることを望んでも、SSHキーアクセスを許可します。

PAMは、ロックされたばかりのアカウントへのSSHキー認証を拒否しません(たとえば、SSHキー認証は、アカウントが通常ロックされるパスワードフィールドに注意を払わないように設計されているため、無効なパスワード試行のため)。

パスワードハッシュエントリは、pam_acct_mgmt()ではなくpam_authenicate()で暗黙的にチェックされることを理解しています。pam_unix.so pam_sm_acct_mgmt()はパスワードハッシュをまったくチェックせず、公開鍵認証中にpam_authenticate()は呼び出されません。

アカウントのログインを一元的に無効にできるようにする場合は、他にも次のような回避策があります。

ログインシェルを変更します。

それらのauthorized_keysファイルを(再)削除します。

アクセスを拒否する別のオプションは、sshd_configでDenyGroupsまたはAllowGroupsを使用することです。(次に、ユーザーを「sshdeny」グループに追加するか、「sshlogin」グループから削除して、ログインを無効にします。)(こちらをご覧くださいhttps ://help.ubuntu.com/8.04/serverguide/user-management .html

http://web.archiveorange.com/archive/v/67CtqEoe5MhDqkDmUMuLから :「問題は、pam_unixがシャドウエントリの有効期限のみをチェックし、パスワードハッシュフィールドの内容はチェックしないことです。」これに該当する場合、アカウントをロックするのではなく期限切れにすると、必要なことを実行できますか?

あなたの質問への答えはおそらく「はい、あなたがパスワードフィールド以外のどこかでそれらを無効にするなら」です


4

もう少し宿題をしました、そして私自身の質問に答えています。

RedHatのpam_krb5(pam_krb5-2.3.14-1/src/acct.c)では、モジュールが認証ステージに参加していない限り、pam_sm_acct_mgmt()関数は、モジュール構成に応じてPAM_IGNOREまたはPAM_USER_UNKNOWNを返します。したがって、私がやりたいことを行うには、pam_krb5コードを変更する必要があります。

JohnGHの答えは良い回避策です。「プロキシ」属性を使用して同じ意味を伝える(シェルの破壊や「無効なユーザー」グループへの追加など)。

別の回避策(部分的にテスト済み)は、アカウントの有効期限を過去に設定し、pam_unixなどのモジュールを使用してアカウントチェックを失敗させることです。これはKRB5ではなくLDAPを使用しますが、同じ集中管理されたユーザーディレクトリに対してクエリを実行します。


2

SSH鍵ベースの認証はPAMから独立しています。次のソリューションがあります。

  • sshd_configでキーベースの認証を無効にする
  • sshdを変更して再コンパイルし、フックを追加して、keybased authがpamを介してアカウントが有効かどうかもチェックするようにします。

Kerberos経由でパスワードなしのログインを使用する場合は、次のことを確認する必要があります。

  • あなたはsshdにpamを使用していません
  • Kerberosが適切に構成されている。例えばあなたができるkinit -k host/server1.example.com@DOMAIN
  • sshdはgssapiを使用するように設定されています。

    KerberosAuthenticationはいGSSAPIAuthenticationはいGSSAPICleanupCredentialsはいUsePAMいいえ

  • PuTTY v0.61以降のようなKerberos化されたsshクライアントを使用します。


1
SSH公開鍵認証がPAMから独立していることには同意しません。account optional pam_echo.so file=/etc/redhat-release/etc/pam.d/sshdに追加すると、キーベースの認証ログインの使用中にファイルの内容が印刷されます(試してください)。
Phil

pamはアカウント(ホームフォルダの作成など)にのみ使用され、認証には使用されないと思います。私は今このケースをチェックしています。
Mircea Vutcovici
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.