LoginSignup
3
5

More than 3 years have passed since last update.

Kerberos認証サーバ構築 Debian系

Posted at

raspbian buster@Raspberry pi3 b+の上に、MIT Kerberos認証サーバーを立てる手順をまとめます。

インストール

sudo apt install krb5-admin-server krb5-kdc

設定

KDCサーバー

/etc/krb5kdc/kdc.conf
[kdcdefaults]
    kdc_ports = 750,88

[realms]
    ${realm domain} = {
        admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab
        key_stash_file = /etc/krb5kdc/stash
        acl_file = /etc/krb5kdc/kadm5.acl
        max_life = 10h 0m 0s
        max_renewable_life = 7d 0h 0m 0s
        default_principal_flags = +preauth
    }
/etc/krb5kdc/kadm.acl
root/admin@*  *  */*@*1

KDCクライアント

/etc/krb5.conf
[libdefaults]
    default_realm = ${default domain}

[realms]
   ${realm domain} = {
        kdc = ${kdc domain} # なくても良い
        admin_server = ${kadmin domain}
        database_module = openldap_ldapconf
        default_domain = ${domain}
   }

[domain_realm]
    {domain} = {realm domain}

サーバーの起動

sudo systemctl start krb5-admin-server
sudo systemctl start krb5-kdc

認証サーバーの操作

管理者principalの追加

sudo kadmin.local [-r ${realm}]

を実行すると、認証サーバー管理用の対話型プログラムが起動します。これを使って、リモート管理用のprincipalを作ります。

kadmin.local
addprinc root/admin[@${realm}]

ユーザーprincipalの追加

kadmin.local
addprinc ${user}[@${realm}]

パスワードの設定を求められるので、任意のパスワードを設定します。

サービスprincipalの追加

サービスを提供するサーバー上で、

sudo kadmin -p root/admin [-r ${realm}]

を実行し、認証サーバー管理用の対話型プログラムを起動する。

kadmin
addprinc -randkey ${type}/${FQDN}[@${realm}]
ktadd ${type}/${FQDN}[@${realm}]

randkeyオプションを付けなかった場合は、普通にパスワードを設定します。randkeyオプションを付けた場合は、鍵がランダムに生成されるので、パスワードの設定は必要ありません。そのため、パスワードでの認証はできないので、ktaddでサーバー上のkeytab追加される鍵情報を使って認証します。

ktaddで鍵をkeytabに追加するときは、鍵が新たに作られます。それに伴い、古い鍵は使えなくなるので、keytabを用いた認証ではSingle Sign On的なことはできません。

SSHの認証にKerberosを使う

過去の記事を参照してください。Kerberos認証を使うことにより、Single Sign Onが実現できます。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5