2009年に購入した旧いBuffalo製のNAS『LinkStation LS-XH1.5TL』へのアクセスがWindows 7に乗り換えてから異様に遅くなっていたのですが、このタイミングでようやく重い腰を上げて調査を実施。
結論から言うと原因はLAN Manager認証方式のデフォルト値がWindows XPまでとそれ以降で異なっている点にあり、Vista以降で標準とされている「NTLMv2」認証にLinkStation側が対応出来ていないためフォールバックを繰り返してアクセスが遅くなっている模様。
セキュリティの観点からいけばLinkStationをNTLMv2に対応させるのが正しいやり方でしょうが、同NAS内で動いているSambaの設定をユーザが変更することは出来ませんし、今更最新の対応ファームウェアがリリースされるとも思えないのでWindows端末側の認証レベルを落として対応するほかありません。
(a) LAN Manager認証方式変更 (GUI設定)
Windows 7環境におけるGUIを用いた認証レベルの設定方法は次の通り。
[スタート]メニューを開き、[プログラムとファイルの検索]に「secpol.msc」と入力してEnterを叩くと「ローカル セキュリティ ポリシー」画面が開きます。
左側メニューより[セキュリティの設定]-[ローカル ポリシー]-[セキュリティ オプション]と辿り、右側の表示されるポリシーの一覧より[ネットワーク セキュリティ: LAN Manager 認証レベル]を探してプロパティを表示させます。ドロップダウンリストより「NTLM 応答のみ送信する」を選び「適用」を押下したら設定完了です。
なお、Vistaや8、8.1などに於いても画面に若干の違いはありますが基本的な操作は変わりありません。
(b) LAN Manager認証方式変更 (レジストリ直接操作)
Windows 7や8の中でもWindows 7 Home Premiumや無印Windows 8などの廉価バージョンには上記で用いた「ローカル セキュリティ ポリシー」設定画面が用意されていないようなので直接レジストリを操作して対応するほかありません。
[スタート]メニューを開き、[プログラムとファイルの検索]に「regedit」と入力してEnterを叩くと「レジストリ エディター」が開きます。
「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa」配下の「LmCompatibilityLevel」を開き(なければDWORD型で新規作成)、「値のデータ」に「2」を入力して「OK」で閉じたら設定完了。ここで入力した値「2」は先述の「ローカル セキュリティ ポリシー」によるGUI設定で「NTLM 応答のみ送信する」を選択するのと同義になります。
設定後は念のため端末を再起動させておきましょう。
なお、LmCompatibilityLevelに設定可能な値は0~5までのいずれかでそれぞれの意味合いは以下の通りとなっています。
0: LM と NTLM 応答を送信する
1: LM と NTLM 応答を送信する (ネゴシエートした場合 NTLMv2 セッションセキュリティを使う)
2: NTLM 応答のみ送信する
3: NTLMv2 応答のみ送信する
4: NTLMv2 応答のみ送信 (LM を拒否する)
5: NTLMv2 応答のみ送信 (LM と NTLM を拒否する)
Vistaは初期値として明示的に「3」がセットされていますが、7以降では初期状態でLmCompatibilityLevelという項目そのものが存在しません。この場合も「3」がセットされているものとして処理されているようですので、今回のような理由で変更が必要な場合は自分で項目を作成したうえで値を指定してあげる必要があります。
以上。