
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 でポリシーを作成し、それをユーザーごとに適用することで、意図した問題が解決しました。