私たちの組織では、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.conf
appdefaults/pam/mappings
foobar
foobar/sudo
pam_krb5
どんなアイデアがありますか?それともカスタムsudoを構築してデプロイする必要がありますか?
ベストアンサー1
これは完全な答えではありませんが、SSSDを使用してこれを実行できるかどうか疑問に思います。
このモジュールを使用すると、Fromのみを考慮するpam_sss
ようにサービスを制限できます/etc/sssd/sssd.conf
。pam_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-krb5
Ubuntuに付属していますが、おそらく大きな問題なしでrpmをビルドしてシステムにインストールできます。