システム認証とsudoで他のkerberosサブジェクトをどのように使用できますか?

システム認証とsudoで他のkerberosサブジェクトをどのように使用できますか?

私たちの組織では、sudoに認証するときに他の種類の認証(ログインなど)と異なるkerberosサブジェクトを使用する必要があります。たとえば、私の一般(ログイン)主体はと呼ばれ、foobar@DOMAIN私のsudo主体はと呼ばれますfoobar/sudo@DOMAIN。以前は、ビルド時とフラグを設定--with-kerb5して独自のsudoをビルドし、この要件を受け入れました。--enable-kerb5-instance=sudoこれは、私たちのバージョンのsudoがKerberosに直接接続され、PAMスタックをまったく使用しないことを意味します。

私たちは、独自のバージョンのsudoを構築して展開することなく、分割本文の要件を満たすことができることを確認しようとしました。私の質問はこれが可能ですか?可能であればどのように達成できますか?

標準の RHEL 6/7 sudo パッケージでは、--with-kerb5ビルドタイムオプションは使用できません。 PAMを認証スタックとして使用する必要があります。これは使用する必要があることを意味しますpam_krb5。これにより、ユーザー名をサブジェクト名にマッピングする設定オプションが使用できるpam_krb5ことがわかりました。ユーザー名をプリンシパル名にマッピングできるようになるため、途中で済みました。しかし、私が知っている限り、各アプリケーションに対してマッピングを設定する方法はありません(kerberosは、どのアプリケーションがPAMスタックを呼び出すかに関係なく、PAMを単一のアプリケーションとして扱います)。 PAM設定。そのため、システムに sudo とログインに sudo プリンシパルを使用することも、両方にログインプリンシパルを使用させることもできますが、システムに sudo に sudo プリンシパルを使用し、ログインにログインプリンシパルを使用させることはできません./etc/krb5.confappdefaults/pam/mappingsfoobarfoobar/sudopam_krb5

どんなアイデアがありますか?それともカスタムsudoを構築してデプロイする必要がありますか?

ベストアンサー1

これは完全な答えではありませんが、SSSDを使用してこれを実行できるかどうか疑問に思います。

このモジュールを使用すると、Fromのみを考慮するpam_sssようにサービスを制限できます/etc/sssd/sssd.confpam_sss(8)

エリア

管理者は、特定のPAMサービスに対して認証が許可されるドメインを制限できます。形式は、sssd.confファイルで指定されたSSSDドメイン名のカンマ区切りリストです。

理論的には、同じアップストリーム認証環境を指しますが、異なるルールを使用してユーザーをプリンシパルにマップする2つのドメインがあります。

残念ながら、SSSDはユーザー名とサブジェクト名の静的マッピングのみをサポートしているように見えますが、これはスケーラブルではありません。

修正する

pam_krb5最新バージョンのモジュールもalt_auth_mapオプションをサポートしているようです。正確にあなたは何が欲しいですか?つまり/etc/pam.d/sudo、では次のことができます。

auth    required    pam_krb5.so alt_auth_map=%s/sudo only_alt_auth

...sudo<username>/sudo、認証には常にプリンシパルを使用します。

このバージョンはpam-krb5Ubuntuに付属していますが、おそらく大きな問題なしでrpmをビルドしてシステムにインストールできます。

おすすめ記事