Kerberos5 認証で ssh ログインする設定

Kerberos5 認証で ssh ログインする設定

試した環境は OSX 10.4.10 + 認証基盤は Windows Server 2003 の ActiveDirectory

基礎資料は Kerberos 5 (krb5 1.0) 相互運用のステップ バイ ステップ ガイド

作業内容の概要は以下の5点

  • (Windows)ActiveDirectoryでマシンに対応したユーザ作成
  • (Windows)keytab ファイルを作成
  • (Mac)keytabファイルを取り込み
  • (Mac)/etc/krb5.conf に 既定のレルム を設定
  • (Mac)/etc/sshd_config に GSSAPIAuthentication yes を設定

前提条件としてMac のホスト名がFQDNで正しく設定されている必要がある。
ただしOSXはIP逆引き設定を参照して、自分のホスト名を自動設定するようになっているので、
具体的には以下の手順

  • (Mac) [システム環境設定]-[ネットワーク] で固定のIPv4アドレスを付与
  • (DNSサーバ) IP逆引き設定で、MacのFQDNがひけるように設定しておく

DHCPでがんばる手もあると思うが略。ていうか失敗した。

以下の例において例につかっている文字列について:

  • 小文字 ad.example.com ドメイン名
  • 大文字 AD.EXAMPLE.COM が Kerberos5 レルム (ドメイン名を大文字にしたものに一致するはず)
  • 大文字 AD 単独のものはNT4ドメイン名 (Kerberos5 レルム の先頭部分に一致するはず)

ActiveDirectory上に ‘macmini_kerberos5’ というユーザを作ってから、以下のコマンドでプリンシパルをアカウントにマッピングしつつ keytab ファイルを作成する。

C:\WINDOWS> cd /D c:\temp
C:\temp> ktpass -princ host/macmini.ad.example.com@AD.EXAMPLE.COM -mapuser AD\macmini_kerberos5 -pass * -out macmini.keytab
C:\temp> scp macmini.keytab macmini.ad.example.com:/tmp/ (Mac OSX マシンに安全に転送できれば何でもよい。https経由でMac側からダウンロードするのが簡単か)
C:\temp> del macmini.keytab (可能なら粉々に廃棄する)

Mac 上では以下のコマンドを実行

sudo ktutil
# 以下 ktutil: はプロンプト。その後ろの rkt /tmp/macmini.keytab などを入力する
ktutil: read_kt /tmp/macmini.keytab
ktutil: write_kt /etc/krb5.keytab
ktutil: quit
# 確認する
sudo klist -kt
# /etc/krb5.conf を作成する
cat > /tmp/krb5.conf << __EOF__
[libdefaults]
default_realm = AD.EXAMPLE.COM
__EOF__
sudo mv /tmp/krb5.conf /etc/krb5.conf
sudo chown root /etc/krb5.conf
sudo chgrp wheel /etc/krb5.conf
sudo chmod 644 /etc/krb5.conf
# vi を利用して GSSAPIAuthentication yes を追加する
sudo vi /etc/sshd_config

どこか別のマシン(FreeBSD等)から kinit してから ssh -v macmini.ad.example.com でログインしてみる。
デバッグ出力の最後の方に以下のように出ていれば成功。

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password,keyboard-interactive
debug1: Next authentication method: gssapi-with-mic
debug1: Authentication succeeded (gssapi-with-mic).

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。