現在、環境をNISからKerberos + LDAPに切り替えています。
この移行中に、次の状況に遭遇しました。
私たちは家をNFS経由でマウントしますが、これも明らかにKerberos化する必要があります。ただし、ユーザーはすべてターミナルサーバーにログインし、通常はログアウトせず、セッションを一時停止するか、バックグラウンドでジョブを長時間実行しているため、Kerberosチケットが期限切れになり、NFS共有が使用できなくなります。
ユーザーのこれらのチケットを自動的に更新するための最良のオプションは何ですか?
また、ユーザーが旅行に出かけたが、まだジョブが実行されている(Kerberosの最長更新時間よりも長くかかる可能性がある)場合に備えたいので、そのユーザーの完全に新しいチケットを取得する必要があります。チケットのデフォルトの最大更新時間を大幅に延長しないで、この場合の最良の選択肢は何でしょうか?
2018年末で、あなたと同じ質問に遭遇しました。少し掘り下げた後で、事後性についての報告を提供できます。
tl; dr:
まず、「無期限に」持つことはできません。 Kerberosチケットには、KDCサーバー設定である更新可能な最大存続期間があり、この時間を過ぎて1つのチケットを更新することはできません。あなたができる唯一のことは、ユーザーの資格情報を保存し、ユーザーに代わって新しい新しいチケットを要求することです。
そうは言っても、そうする必要はありません。おそらく、「システムセキュリティサービスデーモン」またはSSSDを実行している可能性があります。その場合、組み込みの更新オプション_krb5_renew_interval
_および_krb5_renewable_lifetime
_を使用して、ユーザーのチケットを自動的に更新できます。
_[domain/yourdomain.example.com]
krb5_renewable_lifetime = 90d
krb5_renew_interval = 500
_
詳細は _man 5 sssd-krb5
_ を調べてください。これらの設定により、SSSDは、ログイン*するたびに更新可能なチケット(最大90日間)を要求し、500秒ごとにチケットのリスト*を確認して、更新可能な既存のチケットを更新します。
元のチケットから90日が経過すると、更新は失敗し、チケットは失われます。ただし、その間にログイン*すると、マシンのロック画面にパスワードを入力した場合でも、SSSDから新しいチケットが取得されます。
*)これまでのところ、とても素晴らしい。残念ながら、いくつかの落とし穴が当てはまります。
私がこれを書いているとき、SSSDはそれ自体が要求したチケットのみを更新できます。これらは、たとえば _pam_sss
_ PAMモジュールを通過するすべてのログインです(ただし、これらに限定されません)。
su $USER
_と入力するPasswordAuthentication
メソッドを使用してSSH経由でログインします。このリストで特に欠けているのは次のとおりです。
kinit
PubkeyAuthentication
メソッドを使用してSSH経由でログインします。GSSAPIAuthentication
メソッドを使用してSSH経由でログインします。GSSAPIDelegateCredentials
オプションがオンのときにSSH経由でログインします。さて、これはかなり厄介なことですが、当面は本質的に、ユーザーにパスワードの入力を強制するか、自分でチケット更新デーモンを作成することを意味します。現在、この作業を行う別の方法を見つけていません。方法を見つけたら、どなたかコメントをお寄せください。
ただし、これはかなり簡単になるかもしれません。
SSSDは「kerberos cache manager」、つまり sssd-kcm と呼ばれるKCMを提供します。基本的には、カーネルキーリング(klist
を実行するときの_KCM:
_)の代わりに、そこにチケットを格納する小さなサーバー(_KEYRING:
_ klist
)または/ tmp内のファイル(klist
を実行すると_FILE:
_)。
将来のある時点で、SSSDは_sssd-kcm
_が実装されたときにallチケット(それ自体が要求したチケットだけでなく)を更新できると期待していますチケット更新。これはまだ発生しておらず、SSSDバグトラッカーの issue 172 で追跡されています。
Red Hatベースのシステム(RHEL、CentOS、Fedora)を実行している場合、SSHDは選択したキャッシュ作成メカニズムを尊重することを学ぶ必要もあります。これは、Red Hatバグトラッカーの issue 1639376 で追跡されます。
すばやくグーグルすると、 このスレッド
永続的なものを要求する場合は、代わりに(kinitを使用して)新しいチケットを定期的に取得するcronジョブを実行できます。
間違った質問です。長期実行ジョブの場合、keytabを使用したログインを自動化します。そうしないと、デフォルトの7d更新期間がとにかく長すぎます。