Windows 7から古いNASにアクセスできない場合の対処方法(LAN Manager認証レベルを変更する方法と注意点):Tech TIPS
Windows 7へ移行すると、古いNASへのアクセスに失敗することがある。Windows 7と古いNASの間で、ファイル共有に用いられるLAN Manager認証の方式が食い違っていると、このようなトラブルが生じることがある。NAS側で新たな認証方式に対応するのが理想だが、セキュリティ・レベルが下がってもよいなら、Windows 7側の認証レベルを下げることでも対処可能だ。
対象OS:Windows 7/Windows Server 2008 R2
解説
これまでクライアントOSとしてWindows XPを利用してきた社内LANにWindows 7を導入したとき、Windows 7から古いNASに格納されたファイルにアクセスすると、次のような認証失敗を表すダイアログが表示されることがある。
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セッション・セキュリティ | サーバとして受け付ける認証プロトコル |
---|---|---|---|
0 | LM/NTLM | 使用しない | LM/NTLM/NTLMv2 |
1 | LM/NTLM | 可能なら使用 | LM/NTLM/NTLMv2 |
2 | NTLM | 可能なら使用 | LM/NTLM/NTLMv2 |
3(または存在しない場合) | NTLMv2 | 可能なら使用 | LM/NTLM/NTLMv2 |
4 | NTLMv2 | 可能なら使用 | NTLM/NTLMv2 |
5 | NTLMv2 | 可能なら使用 | 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」と値を小さくしていくことをお勧めする。
■ポリシーで設定する
グループ・ポリシーでLAN Manager認証レベルの設定を変更するには、まずグループ・ポリシー・エディタなどで次のポリシー項目を開く。
- [コンピューターの構成]−[ポリシー]−[Windows の設定]−[セキュリティの設定]−[ローカル ポリシー]−[セキュリティ オプション]にある[ネットワーク セキュリティ: LAN Manager 認証レベル]
なお、ローカル・セキュリティ・ポリシーの場合は、[セキュリティの設定]以下をたどっていけばよい。
LAN Manager認証レベルを設定するためのポリシー
これはWindows 7/Windows Server 2008 R2のグループ・ポリシー管理エディタの例。
(1)これをクリックして選択する。
(2)これをダブルクリックしてプロパティ(設定画面)を表示させる。→[A]へ
[A]
LAN Manager認証レベルの設定画面
(1)これにチェックを入れてオンにする。
(2)適切なレベルを選ぶ。最初は[NTLM 応答のみ送信する](LmCompatibilityLevel=2と同じ)、次に[LMとNTLMを送信する(ネゴシエートした場合NTLMv2セッションセキュリティを使う)](同1)、そして[LM と NTLM 応答を送信する](同0)とレベルを下げながら試していくとよいだろう。
まずは[NTLM 応答のみ送信する]に設定してからアクセスできるかどうか試し、まだ失敗するなら[LMとNTLMを送信する(ネゴシエートした場合NTLMv2セッションセキュリティを使う)]、[LM と NTLM 応答を送信する]という順番で試していけばよいだろう。なお設定後は、システムを再起動して設定変更を反映させること。ちなみに上記の設定画面で表示される6通りの選択肢は、前述のレジストリ設定のLmCompatibilityLevelの0〜5までの値と1対1で対応している。
グループ・ポリシーの選択肢 | LmCompatibilityLevelの値 |
---|---|
LM と NTLM 応答を送信する | 0 |
LMとNTLMを送信する(ネゴシエートした場合NTLMv2セッションセキュリティを使う) | 1 |
NTLM 応答のみ送信する | 2 |
NTLMv2 応答のみ送信する | 3 |
NTLMv2 応答のみ送信 (LM を拒否する) | 4 |
NTLMv2 応答のみ送信 (LM と NTLM を拒否する) | 5 |
グループ・ポリシーの選択肢とLmCompatibilityLevelの値の対応 |
●サーバとして受け付ける認証レベルも変わる点に注意
ここまで説明してきたLAN Manager認証レベルの設定は、クライアントだけではなくサーバとしての認証レベルにも影響を与える。例えば、仮にレジストリでLmCompatibilityLevelに「5」を設定したとすると、そのWindowsマシンはクライアントとしてほかのサーバへアクセスする際にNTLMv2だけを使用するようになるが、自身がファイル共有サービスを提供している場合はそのLAN Manager認証でNTLMv2だけしか受け付けなくなる(つまり、NTLMv2非対応のクライアントからアクセスできなくなる)。
そのため、サーバとしても利用されているWindowsマシンでは、LmCompatibilityLevelに「4」以上の値を設定すると、LMやNTLMを使用するクライアントからアクセスできなくなる可能性がある。特にドメイン・コントローラに対してこのような設定をすると、ドメインに参加しているNTLMv2(あるいはNTLMにも)非対応のコンピュータはドメイン・コントローラとの認証に失敗するようになり、その結果ドメイン内のリソース全体にアクセスできなくなってしまうので、十分注意する必要がある。
■関連リンク
- セキュリティ設定およびユーザー権利の割り当てを変更すると、クライアント、サービス、およびプログラムの互換性がなくなる(マイクロソフト サポート技術情報 823659)
- Windows 2000 または Windows 98 ベースのコンピューター Windows 7 ベースのコンピューターから上にある共有フォルダーにアクセスできません。[機械翻訳](マイクロソフト サポート技術情報 982734)
■更新履歴
【2014/02/03】表「LAN Manager認証レベルを設定するためのレジストリ・エントリ」で、値の型がDWORD型であることを明記しました。
【2011/12/16】初版公開。
■この記事と関連性の高い別の記事
- UNIXからTelnetサービスに接続できない(TIPS)
- 「Google Authenticator」アプリとiPhone/iPadで2段階認証を実現する(TIPS)
- 「Google認証システム」アプリとAndroid端末で2段階認証を実現する(TIPS)
- iPhone/Androidで使っているGoogle Authenticator(認証システム)を別の端末に移行させる(TIPS)
- Windows XPにネットワーク接続できない(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.