『Kerberos4 (eBones) の動作確認』 計算力学研究センター 技術開発部 桑村 潤 1. 基本的な login と sample アプリケーションの実行 Realm: ASTEA.RCCM.CO.JP earth ┌─────┐ │ KDC │ │ │ │ kerberos │ │ kadmind │ └──┬──┘ │ │ │Principal:juk Principal:sample ┌───┴───┐ ┌───────┐ │ Client │ │ Server │ │ ├─────┤ │ │kinit(kauth) │ │sample_server │ │sample_client │ │ (inetd) │ └───────┘ └───────┘ venturis indy 端末 venturis のコンソールからログイン(端末 venturis のところまで歩 いてゆき)し、チケットを取得して、sample_client を indy に対して実行す る。 venturis$ kinit ← チケット(TGT)の取得 venturis$ klist ← 取得チケットの表示 venturis$ sample_client indy 11 indy では inetd より sample_server が起動される。sample_server はチ ケットを確認して、認証に成功すると正常に実行される。 ここで、sample_client の実行により同レルム内のマシン indy 上のサービ ス sample (sample.indy@ASTEA.RCCM.CO.JP) に対するチケットが得られてい ることを確認する。 venturis$ klist 次に、同じ sample_client プログラムがチケットがない場合はどうなるか を試してみる。 venturis$ kdestroy ← 全チケット破棄 venturis$ sample_client indy 11 indy では inetd より sample_server が起動される。sample_server はチ ケットの認証に失敗しエラーを返す。 2. パスワードの変更 Kerberos パスワードの変更をする。KDC では kerberos サーバ以外に kadmind デーモンが走っていることに注意。チケットを取得してから、次のコ マンドを実行する。パスワードの変更に成功したら、もう一度チケットの取得 を行なってみる。 % kpasswd 3. telnet による暗号化セッション Realm: ASTEA.RCCM.CO.JP earth ┌─────┐ │ KDC │ │ │ │ kerberos │ │ kadmind │ └──┬──┘ │ │ │Principal:juk Principal:rcmd ┌───┴───┐ ┌───────┐ │ Client │ │ Server │ │ ├─────┤ │ │kinit(kauth) │ │ telnetd │ │telnet (-x) │ │ (inetd) │ └───────┘ └───────┘ eagle venturis monitor 上での telnet セッションの動作確認のモニター状況 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ ┌──────────────┐ ┌────────────────┐ ┃ ┃ │monitor │ │earth での kerberos ログ表示 │ ┃ ┃ ├──────────────┤ ├────────────────┤ ┃ ┃ │2% kinit │ │1% tail -f /var/log/kerberos.log│ ┃ ┃ │ │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ │5% kauth -h eagle │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ └──────────────┘ └────────────────┘ ┃ ┃ ┃ ┃ ┌───────────────┐ ┌───────────────┐ ┃ ┃ │eagle │ │venturis のパケットモニタ │ ┃ ┃ ├───────────────┤ ├───────────────┤ ┃ ┃ │ │ │3% tcpdump ix ip host venturis│ ┃ ┃ │ │ │ │ ┃ ┃ │4% telnet ventuirs │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ │6% telnet -x venturis │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ └───────────────┘ └───────────────┘ ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ この動作確認を行なう前に、先に行なった sample アプリケーションを実行 した時の kerberos のログを見ておく。そして、これから行なう動作確認のた めにログをリアルタイムで表示するようにしておく。 earth% tail -f /var/log/kerberos.log 別のウィンドウでパケットを監視するための tcpdump を走らせておく。 まず、通常のログインを行なってみる。venturis の設定ではログインに対 して OTP(ワン・タイム・パスワード)のプロンプトが出されるのでのローカ ル端末でフレーズをジェネレート(otpprint)してそのフレーズを入力する。 (注意 OTP のキーは otp コマンドを番号とシード(種)とを引数として実行す ると初期化される。OTP は S/KEY と同じである。) eagle% klist eagle% telnet venturis (monitor% otpprint 98 venturis) このとき、セッションの状態がそのままネットワークを流れることを tcpdump を実行しているウィンドウで確認。 次に、暗号化セッションの kerberos ログインを行なう。earth で kauth (rkinitと同等)コマンドを実行して eagle 上にチケットを取得。このチケッ トが eagle 上に取得されていることを eagle で確認する。 monitor% kauth -h eagle eagle% klist このとき、セッションの状態が暗号化されていることを tcpdump を実行し ているウィンドウで確認する。