Windows 7へ移行すると、古いNASへのアクセスに失敗することがある。Windows 7と古いNASの間で、ファイル共有に用いられるLAN Manager認証の方式が食い違っていると、このようなトラブルが生じることがある。NAS側で新たな認証方式に対応するのが理想だが、セキュリティ・レベルが下がってもよいなら、Windows 7側の認証レベルを下げることでも対処可能だ。

2011年12月16日 00時00分 公開[島田広道デジタルアドバンテージ]

印刷 通知 15 Share 82
「Windows TIPS」のインデックス

連載目次

対象OS:Windows 7/Windows Server 2008 R2

解説

 これまでクライアントOSとしてWindows XPを利用してきた社内LANにWindows 7を導入したとき、Windows 7から古いNASに格納されたファイルにアクセスすると、次のような認証失敗を表すダイアログが表示されることがある。

Windows 7からのファイル・アクセスに失敗したときに表示されるダイアログ

Windows 7からのファイル・アクセスに失敗したときに表示されるダイアログ
Windowsから古いNASに格納されたファイルをアクセスしたとき、このような画面が表示されてアクセスに失敗することがある。
(1)パスワードの入力ミスを暗示するようなメッセージだが、本トラブルの場合、Windows XPクライアントであれば同じアカウントとパスワードで正常にアクセスできる。

 このとき、従来のWindows XPクライアントからなら、同じアカウントとパスワードで正常にファイル・アクセスができる(つまりアカウント/パスワードの間違いではない)。また、ほかのWindowsマシンのファイル共有に対しては、Windows 7クライアントから正常にアクセスできる。つまり、Windows 7クライアントと古いNASとの間だけで、このエラーが生じるわけだ。

 このようなトラブルの原因としては、Windows 7クライアントと古いNASの間で対応可能なLAN Manager認証方式が食い違っている可能性が挙げられる。本稿では、このトラブルが生じる理由とその対処方法について説明する。

●サポートしているLAN Manager認証方式の相違がトラブルを招く

 Windowsのファイル共有における認証では、LAN Manager認証と呼ばれる認証方式が利用される(LAN Managerとは、現在のWindowsネットワークの元になった製品および技術の名前)。これはMS-DOSの時代からある古くからの認証方式で、セキュリティ強化などを目的とするバージョンアップが重ねられてきた。現在では、大別すると古い方から「LM認証」「NTLM認証」「NTLMv2認証」という3種類のLAN Manager認証のバージョンが存在する(この順にセキュリティが強化されている)。

 Windows 7やWindows Server 2008 R2などWindows Vista以降のOSがクライアントとしてファイル共有にアクセスする場合、デフォルトのLAN Manager認証としてNTLMv2が用いられる。一方、Windows NT 4.0 SP3以前やWindows 9xといった古いWindows OSでは、NTLMv2がサポートされておらず、LMやNTLMしか使えない。

 NASの場合、LinuxあるいはFreeBSDなどのOSと、Windows互換のファイル共有サービスを提供するソフトウェア「Samba」を組み合わせて実装されていることがよくあるが、このSambaのバージョンが2.xだとNTLMv2に対応できない(Linux Squareの「Samba 3.0の全貌 改訂版[後編]」の「SMBセキュリティの拡張」が参考になる)。現在、Samba 2.xはすでに廃れているが、古いNASではSamba 2.xがバージョンアップされずに使われ続けていることも珍しくない。その結果、Windows 7から要求されるNTLMv2での認証に応答できず、アクセスに失敗することがある。その影響はファイル共有にとどまらず、例えば管理ツールなどでリモートに接続できなくなることもある。

●NASをNTLMv2対応にするのが理想

 このトラブルへの対処方法としては、NAS側をNTLMv2に対応させるか、クライアントのWindows 7でLMあるいはNTLMを使用するようにするか、どちらかを選択することになる。ただ、今となってはLMやNTLMは堅牢な認証方式とは言い難いので、セキュリティの観点からは前者の方が推奨される。そこで、まずは該当のNASのマニュアルや管理コンソールを参照し、NTLMv2に対応するオプションがあればそれを有効にしてみよう。またNASのベンダから提供されているファームウェア更新にNTLMv2対応が含まれていないか確認しよう。

 それでもNTLMv2に対応できない場合は、NASそのものをNTLMv2対応の新しい製品に交換するか、Windowsサーバで代替する必要がある。しかし、それには手間も時間もかかるので、交換までの間はWindows 7側でNTLMv2を使わず、代わりにLMまたはNTLMを使うように設定を変更して対処せざるを得ないだろう。以下ではその手順を説明する。

操作方法

 NASのようなファイル共有サーバがWindowsのLAN Manager認証方式の1つ「NTLMv2」に対応していない場合、セキュリティ・レベルは下がるものの、クライアントのWindows 7側でLAN Manager認証の設定を変更すればファイル共有にアクセスできるようになる。以下では、その方法を説明する。

●Windows 7からNTLMv2で認証を送信しないようにする

 LAN Manager認証の設定を変えるには、レジストリの設定変更とポリシーの設定変更という2種類の方法がある。ローカル・セキュリティ・ポリシーやグループ・ポリシーが利用できないWindows 7 Home Premium/Starterエディションでは、レジストリで設定する。そのほかのエディションについては、システムやネットワークの状況に応じてどちらかを選べばよい。例えば、ドメイン環境で一律に設定するならグループ・ポリシーの方が便利だ。

■レジストリで設定を変更する
 LAN Manager認証の設定をレジストリで変更するには、クライアント側のWindowsマシンに管理者権限を持つアカウントでログオンしてから、レジストリ・エディタなどを用いて次のレジストリ・エントリを修正する。

項目内容
キーHKLM\SYSTEM\CurrentControlSet\Control\Lsa
値の名前LmCompatibilityLevel
値の型DWORD
値の内容(下表を参照)
クライアントとして使用する認証プロトコルNTLMv2セッション・セキュリティサーバとして受け付ける認証プロトコル
0LM/NTLM使用しないLM/NTLM/NTLMv2
1LM/NTLM可能なら使用LM/NTLM/NTLMv2
2NTLM可能なら使用LM/NTLM/NTLMv2
3(または存在しない場合)NTLMv2可能なら使用LM/NTLM/NTLMv2
4NTLMv2可能なら使用NTLM/NTLMv2
5NTLMv2可能なら使用NTLMv2
LAN Manager認証レベルを設定するためのレジストリ・エントリ
値が大きいほどセキュリティ・レベルは高くなる。古いNASにアクセスできない場合、LmCompatibilityLevelの値はデフォルトで「3」なので「2」→「1」→「0」と変えながら試していくとよい。ただし、変更を反映するにはシステムの再起動が必要だ。またデフォルトでLmCompatibilityLevelは存在しないので、設定時には新たに作成する必要がある。

 Windows 7/Windows Server 2008 R2の場合、デフォルトでLmCompatibilityLevelは「3」、すなわちクライアントとしてはNTLMv2を使用する。NTLMv2非対応のNASにアクセスできるようにするには、この値を「2」以下に変更する(ただし、設定を変更したらシステムを再起動して設定を反映させること)。なるべくセキュリティ・レベルは下げない方がよいので、セキュリティ・レベルの高い「2」から試し、まだアクセスに失敗するようなら「1」→「0」と値を小さくしていくことをお勧めする。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です