« Kerberosの旅 | トップページ | WordPress Cocoonに挑戦 »

2020年2月16日 (日)

Kerberosの旅 - 再出発

ちょっとづまづいて、最初からやりなおし。

KDCサーバー上の作業

まずはKDCをインストールするサーバーのFirewallを止める。
# systemctl disable firewalld
# service firewalld stop

# setenforce 0
# vi /etc/selinux/confog   SELENUX=disabledに設定

/etc/hostname
localhostをkdc.pathpilot.jp に変更。

/etc/hosts
kdc.pathpilot.jp, h-client-1.pathpilot.jp, node1.pathpilot.jp を登録。
node1はサーバー、h-client-1はクライアントに設定。クライアントからサーバーへのsshをKerberos認証化することがゴール。

Kerberosサーバーのインストール
# yum install krb5-server

/var/kerberos/krb5kdc/kdc.confの編集
[realms]
 PATHPILOT.JP = {
   ....
   supported_enctypes =  aes256.... aes128.... arcfour.... <- とりあえず左記の3種類のみ
}

# krb5_util create -r PATHPILOT.JP -s

/etc/krb5.confの編集
変更前:
# default_realm = EXAMPLE.COM
default_ccache_name = KEYRING:per....
変更後:
default_realms = PATHPILOT.JP
# default_cchache_name = KEYRING:per....

Kerberosサービスの起動とOS起動時の自動起動設定
# systemctl start krb5kdc
# systemctl start kadmin
# service krb5kdc.service start
# service kadmin.service start

KDCクライアント上の作業

以下をh-client-1とnode1の両方に実施する

/etc/krb5.confの編集

[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 = /etc/pki/tls/certs/ca-bundle.crt
default_realm = PATHPILOT.JP
#default_ccache_name = KEYRING:persistent:%{uid}

[realms]
PATHPILOT.JP = {
kdc = kdc.pathpilot.jp
admin_server = kdc.pathpilot.jp
}

[domain_realm]
.pathpilot.jp = PATHPILOT.JP
pathpilot.jp = PATHPILOT.JP

ーーーーーーーーーーーーーーーーーーーー
以上でKDCサーバーとKDCクラアンとの事前準備は完了した。
次に実際の認証確認を行う。

KDCクライアント上での作業

ユーザーとしてalphaを作成する。
# useradd alpha
# passwd alpha

KDCサーバー上での作業

principalとしてalpha/kdc.pathpilot.jpを登録する。
[root@h-client-1 ~]# kadmin.local
kadmin.local: addprinc alpha/kdc.pathpilot.jp
WARNING: no policy specified for alpha/kdc.pathpilot.jp@PATHPILOT.JP; defaulting to no policy
Enter password for principal "alpha/kdc.pathpilot.jp@PATHPILOT.JP":
Re-enter password for principal "alpha/kdc.pathpilot.jp@PATHPILOT.JP":
Principal "alpha/kdc.pathpilot.jp@PATHPILOT.JP" created.
kadmin.local:

KDCクライント上での作業

KDCサーバー上でalphaのprincipal登録ができたので、今度はKDCクライアントであるh-client-1からalphaの認証を行ってみる。
[root@h-client-1 ~]# su - alpha
最終ログイン: 2020/02/16 (日) 14:46:03 JST日時 pts/0
[alpha@h-client-1 ~]$ kinit alpha/kdc.pathpilot.jp
Password for alpha/kdc.pathpilot.jp@PATHPILOT.JP:
[alpha@h-client-1 ~]$ klist -e
Ticket cache: FILE:/tmp/krb5cc_1001
Default principal: alpha/kdc.pathpilot.jp@PATHPILOT.JP

Valid starting               Expires                        Service principal
2020-02-16T14:59:19  2020-02-17T14:59:19  krbtgt/PATHPILOT.JP@PATHPILOT.JP
Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96
[alpha@h-client-1 ~]$
無事完了。
node1でも同様に確認。

ーーーーーーーーーーーーーーーーー
以上でh-client-1とnode1にてKerberos認証が使えるようになった。
次に、h-client-1からnode1のsshをKerberos認証で行う。

Kerberos認証によるsshを行うには、principalの鍵をKDCに発行してもらい、その鍵にてクライアントを認証することになる。
そこで、再びKDCサーバーに戻って、principal alphaの鍵を発行する。この鍵のことをKey Table、略してKeytabと呼ぶ。

KDCサーバー上の作業

Key Tableにprincipal alphaのKeyを追加する。追加と言ってもこれが初めてのKeyなるのだが、、、
kadmin.local: ktadd -k /etc/ssh-krb5.keytab alpha/kdc.pathpilot.jp
Entry for principal alpha/kdc.pathpilot.jp with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/etc/ssh-krb5.keytab.
Entry for principal alpha/kdc.pathpilot.jp with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/etc/ssh-krb5.keytab.
Entry for principal alpha/kdc.pathpilot.jp with kvno 2, encryption type arcfour-hmac added to keytab WRFILE:/etc/ssh-krb5.keytab.
kadmin.local:
/var/kerberos/krb5kdc/kdc.confでsupported_enctypesをaes235, aes128, arcfourの3つを指定しているので、この3つに対応するKeyがKeytableに追加されて/etc/ssh-kerb5.keytabに保存される。 -kオプションを指定しないと、Defaultとして/etc/krb5.keytabに保存される。
このKeytabをh-client-1の/etcにscpを使ってコピーする。

KDCクライアント上の作業

KDCサーバーからscpされた/etc/ssh-krb5.keytabをユーザーalphaからアクセス出来るようにオーナー変更する。Root権限でないと変更できないので注意。
# chown alpha /etc/ssh-krb5.keytab
次にalphaユーザーにてkinitを実行する
[alpha@h-client-1 ~]$ kinit alpha/kdc.pathpilot.jp@PATHPILOT.JP -kt /etc/ssh-krb5.keytab

---- 今日はここまで。

 

« Kerberosの旅 | トップページ | WordPress Cocoonに挑戦 »

ソフトウエア導入」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« Kerberosの旅 | トップページ | WordPress Cocoonに挑戦 »