Kerberos5 ローカルテスト, etc.
_ [comp] Kerberos5 ローカルテスト
Krb5OSX と Krb5Debian を見つつ、やってみる。 次のような構成とする。
- realm … EXAMPLE.JP
- kdc … server.example.jp
- domain … example.jp
- dns … dns.example.jp
- user … foo
以下、全て server.example.jp での作業。 krb5 を install。
# apt-get install krb5-kdc krb5-admin-server krb5-config krb5-user
/etc/krb5.conf を編集。編集・追加部分のみ示す。
[libdefaults]
default_realm = EXAMPLE.JP
[realms]
EXAMPLE.JP = {
kdc = server.example.jp
admin_server = server.example.jp
default_domain = example.jp
}
[domain_realm]
.example.jp = EXAMPLE.JP
example.jp = EXAMPLE.JP
/etc/krb5kdc/kdc.conf を確認。確認部分のみ示す。
[realms]
EXAMPLE.JP = {
database_name = /var/lib/krb5kdc/principal
admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab
acl_file = /etc/krb5kdc/kadm5.acl
key_stash_file = /etc/krb5kdc/stash
KDB を作成。
# kdb5_util create -s
KDC database master key を聞かれるので設定する。/var/lib/krb5kdc/ 以下にファイルが生成されたことを確認。 KDC を起動。
# /etc/init.d/krb5-kdc start
管理 principal を登録。
# kadmin.local
: addprinc foo/admin
password を聞かれるので設定する。/etc/krb5kdc/kadm5.acl で ACL を設定。
foo/admin@EXAMPLE.JP *
kadmind 用の keytab を生成。
# kadmin.local
: ktadd -k /etc/krb5kdc/kadm5.keytab kadmin/admin kadmin/changepw
kadmind を起動。
# /etc/init.d/krb5-admin-server start
foo の user principal を追加。foo で作業する。
% kadmin
: addprinc foo
password を聞かれるので設定する。 host principal を追加。
# kadmin.local
: addprinc -randkey host/server.example.jp
: ktadd host/server.example.jp@EXAMPLE.JP
/etc/krb5.keytab が生成されたことを確認。 krb5 telnet server と client を install。
# apt-get install krb5-telnetd krb5-clients
foo でチケットを取得。
% kinit
実際に login してみる。
% telnet.krb5 -8x server.example.jp
_ [comp] Kerberos5 リモートテスト
先に設定した server.example.jp に client.example.jp からの login を試みる。 client.example.jp で krb5 の install。
client# apt-get install krb5-clients krb5-user
client:/etc/krb5.conf を編集。server:/etc/krb5.conf と同じ。 foo でチケット取得。
foo@client% kinit foo@EXAMPLE.JP
server.example.jp に login。
foo@client% telnet.krb5 -x8 server.example.jp
Trying XXX.XXX.XXX.XXX...
Connected to server.example.jp (XXX.XXX.XXX.XXX).
Escape character is '^]'.
Waiting for encryption to be negotiated...
Negotiation of authentication, which is required for encryption,
has failed. Good-bye.
あれ? server:/var/log/syslog を確認。
server telnetd[XXXXX]: ttloop: peer died: Invalid or incomplete multibyte or wide character
server telnetd[XXXXX]: connect from XXX.XXX.XXX.YYY (XXX.XXX.XXX.YYY)
server:/var/log/auth.log を確認。
server krb5kdc[XXXXX]: TGS_REQ (1 etypes {1})
XXX.XXX.XXX.YYY: UNKNOWN_SERVER: authtime XXXXXXXXXX,
foo@EXAMPLE.JP for host/server@EXAMPLE.JP, Server not found in Kerberos database
あれ?
server# kadmin.local
: addprinc -randkey host/server
: ktadd host/server@EXAMPLE.JP
としたらつながるようになったけど、本当にこれでいいのかなぁ。
_ [comp] NFSv4 テスト
krb5 setup for NFSv4 と Using NFSv4 を見つつ、やってみる。 server,client 両方の /etc/default/nfs-common を編集。編集部分のみ示す。
NEED_IDMAPD=yes
NEED_GSSD=yes
server,client 両方で nfs-common を restart。
# /etc/init.d/nfs-common restart
server で server, client 両方の nfs principal を追加。
server# kadmin.local
: addprinc -randkey nfs/server.example.jp
: ktadd -e des-cbc-crc:normal nfs/server.example.jp@EXAMPLE.JP
: addprinc -randkey nfs/client.example.jp
: ktadd -e des-cbc-crc:normal nfs/client.example.jp@EXAMPLE.JP
server で client 用の keytab を生成。
server# kadmin
: ktadd -e des-cbc-crc:normal -k /tmp/keytab nfs/server.example.jp@EXAMPLE.JP
: ktadd -e des-cbc-crc:normal -k /tmp/keytab nfs/client.example.jp@EXAMPLE.JP
server:/tmp/keytab を client:/etc/krb5.keytab としてコピー。 server/export4 ディレクトリを作成し、server:/etc/exports を編集。編集部分のみ示す。
/export4 *(rw,fsid=0,rw,async,insecure,no_subtree_check)
/export4 gss/krb5(rw,fsid=0,rw,async,insecure,no_subtree_check)
/export4 gss/krb5i(rw,fsid=0,rw,async,insecure,no_subtree_check)
/export4 gss/krb5p(rw,fsid=0,rw,async,insecure,no_subtree_check)
server の /etc/default/nfs-kernel-server を編集。編集部分のみ示す。
NEED_SVCGSSD=yes
server で kernel module を読み込み、nfs-kernel-server restart。
server# modprobe auth_rpcgss
server# modprobe rpcsec_gss_krb5
server# modprobe rpcsec_gss_spkm3
server# /etc/init.d/nfs-kernel-server restart
client で NFSv4 mount。
client# mount -t nfs4 server:/ /mnt
いろいろ遊ぶ。
client% touch /mnt/test
_ [debian] udev 0.050-4vd1
vd-udev-devfs-2.patch を当てて作成。
_ [debian] jack-audio-connection-kit 0.99.0-2vd1
libglib2.0-dev に依存。
_ [debian] vorbis-tools 1.0.1-1.1vd1, timidity 2.13.2-5vd1
libflac6 向けに作成。
_ [comp] backslash の修正
使ってる Windows 用のフォントの backslash が Yen sign になっているのを FontForge で直した。
47 (0x002f) U+002F slash Basic Latin
を
92 (0x005c) U+005C backslash Basic Latin
に貼り付け、水平反転しただけ。