2006-05-10

λ iSCSI使っていますか?

NetBSD かつ旧聞だけど、こんな話が。NetBSDマシンが iSCSI target (ストレージ側)になれる。

VirtualServer上に立てるのはあんまりな気がするので、VirtualServerの隣に iSCSI target drive としてあるといいなあ。 (当面の目的はVirtualServer上で3台以上のCluster構成実験)

まさに GLAN Tank の出番か!? 20 Apr 2006 - NetBSD ported to I-O DATA HDL-G Giga LANDISK

λ [.NET] Book Preview Microsoft Visual Studio 2005によるWebアプリケーション構築技法

今年2月に作ってたWebアプリケーションもこういう感じで作業してた。

λ www 付き・なし の URL どっちに統一するべきか?

www.mimori.org → mimori.org に 301 でリダイレクトするルールを書いた。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.mimori\.org)(:80)?
RewriteRule ^/(.*) http://mimori.org/$1 [R=301,L]

λ 要求を仕様化する技術・表現する技術 - 入門+実践 仕様が書けていますか?

要求を仕様化する技術・表現する技術 - 入門+実践 仕様が書けていますか? 開発前に要求を表現しようよ、という話。 アジャイル開発であっても、イテレーションの初期段階において要求が明らかでなければ間違った方向に進んでしまう。

ものすごい大雑把に言えば「なぜそうなっているのか」という理由・意図が追跡可能であることが一番重要。 (現場が「なぜ」を追求する、ってのはトヨタ方式だよな。)

Word上の散文よりExcelの表形式にして、うまく番号付けするというのが有効なのは確かだが、 「Excel上に自然言語で記述する」のがすごく効率的ってわけでもないと思う。

あらゆる要素に対して 追跡可能=リンク付けをする という意味で Trac はかなりいけてるのだが、 全体を俯瞰することも可能な文書としてどう出力するかのとこはまだまだ課題。

λ GlobalKnownHostsFile as read only known_hosts

sshの起点がWindowsマシンだと現時点ではなかなかアレなのだが、Poderosa4 がこういうことが出来るように提案してみたいところ。 (Poderosaは登録時にfingerprintも表示してくれないし、「登録する」ボタン側がデフォルト動作なところがいけてない)

グループポリシーで GlobalKnownHostsFile を配布できたら最高。

λ [FreeBSD][SSO] kinit: krb5_get_init_creds: Response too big for UDP, retry with TCP への対処

/etc/krb5.conf で、明示的に接続方法を tcp だけに指定してみたらエラーが発生せず動くようになった。

[realms]
      AD.EXAMPLE.COM = {
              kdc = tcp/dc1.ad.example.com:88
              kdc = tcp/dc2.ad.example.com:88
      }

自動的にDNS経由でkerberosチケット配布サーバを検索してくれなくなるのは残念だが… FreeBSD 6.x に入ってるHeimdalだと default_etypes の指定とかは不要。 というかこの件なかったら krb.confなし = Kerberosに関する設定ゼロで動くみたいだ。

Heimdal 0.6.6 で試した

単に 「UDPで失敗したら自動的にTCPでリトライする」という機能が実装されてないだけのように見えるので、最新版を入れてみた。

接続方法を tcp だけに指定すれば当然大丈夫だが、DNSに解決をまかせると次のエラーメッセージが出る。

kinit: krb5_get_init_creds: Additional pre-authentication required

ググると結局 tcp 使え、ということのように見える。状況は改善せず。

MIT kerberos 1.4.3 で試した

/etc/krb5.conf で必要だったのは、default_realm の指定だけだった。

[libdefaults]
      default_realm = AD.EXAMPLE.COM

この状態での kinit は問題なし。

ports/security/pam_krb5 を作ろうとしたら、FreeBSD 5.x 以上ではすでに組み込み済みだからといって作らせてくれない。 pam_krb5 の野良インストールか、kdc を手で指定か、ってのは管理の手間からすると微妙な選択だな。 Microsoftのドキュメントは MIT Kerberos ベースなので、PAM以外の認証でも使うんであれば MIT Kerberos に切り替える価値はあるかも? でもとりあえず保留。

ちなみに今は MIT kerberos をインストールするのも USA Resident がどう、とか言われないのね。 微妙なところはあるが、全体としては昔より随分楽になっているなあ。

λ GSSAPI/SSPI for PuTTY

ssh シングルサインオン? Windowsのログオン情報からもってくる統合認証なのかどうかはやってないので謎。

λ [FreeBSD] GSSAPI で ssh ログイン

コンピュータアカウントの作成は2001年にやったこともう一度。 MSのドキュメントは Kerberos 5 (krb5 1.0) の相互運用性 に移動になってる。 まずはWindows Server 2003 マシン上で、インストールCD等にある Support Tools をインストールすると ktpass コマンドが使えるようになる。

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

C:\WINDOWS> cd /D c:\temp
C:\temp> ktpass -princ host/freebsd.ad.example.com@AD.EXAMPLE.COM -mapuser AD\freebsd_kerberos5 -pass * -out freebsd.keytab
C:\temp> scp freebsd.keytab freebsd.ad.example.com:/tmp/ (FreeBSDマシンに安全に転送する)
C:\temp> del freebsd.keytab (可能なら粉々に廃棄する)

FreeBSD 6.1 マシン上では以下のコマンドを実行

# ktutil copy /tmp/freebsd.keytab /etc/krb5.keytab
# ktutil list # どうなったか確認
# rm /tmp/freebsd.keytab

/etc/ssh/sshd_config の GSSAPIAuthentication の行を yes にして、sshd 再起動。これでサーバ側の準備は完了。

GSSAPIAuthentication yes

とりあえず同一のFreeBSDマシンから以下のようにして確認した。

% kinit
% klist # 確認
% ssh -v -o GSSAPIAuthentication=yes freebsd.ad.example.com # パスワード/パスフレーズを聞かれないでログインした!
% ssh -v freebsd.ad.example.com # 秘密鍵のパスフレーズを聞かれた
% kdestroy # チケット廃棄
% ssh -v -o GSSAPIAuthentication=yes freebsd.ad.example.com # GSSAPIの認証は失敗し、秘密鍵のパスフレーズを聞かれた

GSSAPIでのログイン成功時のログはこんな:

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

苦節5年、初めてちゃんとチケット使った統合認証の相互運用に成功だ〜〜〜。おおー。 (2台目のマシンにも設定して、FreeBSDマシン間で動くことまでは確認できた。)

[]