Kerberos に追加されたユーザー プリンシパルがレルムの特定のホスト プリンシパルにアクセスできないように構成する方法

Kerberos に追加されたユーザー プリンシパルがレルムの特定のホスト プリンシパルにアクセスできないように構成する方法

yum コマンドを使用して CentOS 7 に Kerberos をインストールしました。

yum install krb5-server krb5-libs krb5-workstation pam_krb5 -y

私の状況は以下の通りです:

  • KDCは1つあります。
  • サービス サーバーは 2 つあります。

KDC の krb5.conf ファイルは次のように設定されています。

# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
 default_realm = MYREALM.NET
 default_ccache_name = KEYRING:persistent:%{uid}

[realms]
MYREALM.NET = {
 kdc = kdc.myrealm.net
 admin_server = kdc.myrealm.net
}

[domain_realm]
.myrealm.net = MYREALM.NET
myrealm.net = MYREALM.NET

そして、次のコマンドでホストプリンシパルを追加しました。

# kadmin.local -q 'addprinc -randkey host/build.myrealm.net'
# kadmin.local -q 'ktadd -k /tmp/build.keytab host/build.myrealm.net'
# scp /tmp/build.keytab build.myrealm.net:/etc/krb5.keytab


# kadmin.local -q 'addprinc -randkey host/api.myrealm.net'
# kadmin.local -q 'ktadd -k /tmp/api.keytab host/api.myrealm.net'
# scp /tmp/api.keytab api.myrealm.net:/etc/krb5.keytab

そして、次のコマンドでユーザープリンシパルを追加しました。

# kadmin.local -q 'addprinc eric'

上記でユーザー プリンシパルを追加した後、次の ssh コマンドを実行すると、2 つのサービス サーバーがパスワードなしで正常に接続されます。

ちなみに、ユーザープリンシパルがアクセスできるサービスサーバーを管理したいと考えています。

追加されたユーザー プリンシパルがレルムの特定のホスト プリンシパルにアクセスしないように設定する方法を知りたいです。

要約すると、追加されたユーザー プリンシパルをサービス サーバー間ericでのみアクセスできるようにする方法についてアドバイスをいただきたいと思います。api.myrealm.net

ユーザー プリンシパルとホスト プリンシパルを追加し、ホスト プリンシパルのキータブ ファイルをサービス サーバーにコピーしました。

同じレルム内のサービス サーバーにパスワードなしで正常にアクセスできます。

ただし、私がやりたいのは、ユーザー プリンシパルごとに認証を管理することです。

答え1

私の質問への回答として、FreeIPA を使用することをお勧めします。FreeIPA でポリシーを作成し、それをユーザーごとに適用することで、意図した問題が解決しました。

https://www.freeipa.org/page/Main_Page

関連情報