OpenSSH経由で認証し、1つのチケットサービス(Kerberos TGSホスト/fqdn)のみを使用してsudoを実行する方法

OpenSSH経由で認証し、1つのチケットサービス(Kerberos TGSホスト/fqdn)のみを使用してsudoを実行する方法

これまで、私たちはすべてのサーバー(Debian 10〜12)でOpenSSH GSSAPI認証を使用していました。次に sudo -i を使用し、sssd-ldap で LDAP 認証を使用します。

OpenSSHとSudoの両方でLDAP認証を削除し、GSSAPIにのみ依存したいと思います。アイデアは、チケットサービスをOpenssh(host / fqdn)に渡し、資格情報キャッシュ(通常/tmp/krb5 ...)に保存し、TGSを維持してsudoを認証することです(GSSAPIでsudoを認証するためにpam_sss_gss .soを見つけました)。 )。

問題は... OpenSSHが認証されるとチケットサービスを中断することです。

私の質問は次のとおりです。

  1. 資格情報キャッシュ内でチケットサービスをopensshに渡す方法はありますか?後でsudoをチェックするのに役立ちます。
  2. 1が不可能な場合(私の考えではそうです)、すべてのサーバーにTGTを渡すときにセキュリティ上の問題はありますか? (TGTの寿命は4時間です。)サーバーとファイアウォールのKDCポート88の間にストリームを開く必要があります。
  3. sudoerでNOPASSWDを使用することを避けたいのですが、sudoグループのメンバーがkerberosを介して認証している場合は、そのグループのsudoerにNOPASSWDを配置するのにセキュリティ上の問題がありますか?
  4. 他にご意見がございましたら、お知らせいただきありがとうございます。

ありがとうございます。

答え1

資格情報キャッシュ内でチケットサービスをopensshに渡す方法はありますか?後でsudoをチェックするのに役立ちます。

いいえ、これを行う方法はありません。 (理論的には可能ですが、実装された機能ではありません。)

ただし、サービスが独自のキータブを使用してユーザーを「代わりに」自分のチケットを取得するPAMを使用して「S4U2self」チケットを取得することは可能です。 (例えば参照してくださいkvno -I。)

service ticket代わりに、とも呼ばれますticket service。)

1が不可能な場合(私の考えではそうです)、すべてのサーバーにTGTを渡すときにセキュリティ上の問題はありますか? (TGTの寿命は4時間です。)

はい、SSHエージェントの配信によく似ています。長期資格証明を盗むことができなくても理論上4時間TGTできる盗まれました(通常の寿命だけでなく、再生可能な寿命まで延長)。

これがあなたのケースで重要な問題であるか、rootアクセス権を取得し、他のユーザーのチケットを読んでいる人に対してサーバーがどれだけうまく強化されているかを判断することはあなた次第です。

サーバーとファイアウォールのKDCポート88の間でストリームを開く必要があります。

これは問題ではありません。 (実は私も理由がわからない)いいえすでに開いています。 )

sudoerでNOPASSWDを使用することを避けたいのですが、sudoグループのメンバーがkerberosを介して認証している場合は、そのグループのsudoerにNOPASSWDを配置するのにセキュリティ上の問題がありますか?

計画中の機能はすでにNOPASSWDに似ています。アイデアは、pam_sss_gssapiが成功すると、「パスワード要求」pam_unixモジュールにまったく到達せず、PAMからすぐに返されることです。

ただし、NOPASSWDが有効な場合、Kerberos認証も無視されます。その理由は、Sudoがパスワードを明示的に尋ねないからです。PAMを呼び出してユーザーを認証します。NOPASSWDフラグは、実際には「PAM認証なし」を意味します。 (これは「パスワードなし」という意味ではありません。ただし、標準のPAMモジュール(pam_unix)にはパスワードが必要です。)しかし、NOPASSWDが有効な場合、sudoは認証のためにPAMを呼び出さないので、pam_unixとpam_sss_gssをスキップします。

Windows KerberosはPACを使用してグループメンバーシップを渡します。 MIT Kerberosでは、この機能が実装されていない理由をご存知ですか?

「元の」KerberosディストリビューションであるMIT Kerberosは、認証(アクセス制御)が明示的にKerberos機能の一部ではない純粋に認証システムであるオリジナルのデザインに従い続けています。

私の言葉は、LinuxのNSSがデータベースにユーザーとグループに関する情報を提供するためにLDAPを頻繁にポーリングする必要があるということです。

しかし、実際にはそうではありません。投票すべての頻度のLDAP。ユーザーが「ログイン」する場合にのみ LDAP を照会します。 Windowsと大きく変わりません。

関連情報