先日WindowsVISTAのPCからLinuxのファイルサーバに接続しようとして
「 システム エラー 86 が発生しました。 ネットワークパスワードが間違っています」
というエラーが出た。
もちろんユーザー名もパスワードも正しいものを使っているにもかかわらずだ。
調べてみるとWindowsVISTA以降は認証方法がXpまでと変更され、「net use」コマンドを使って接続する時はデフォルトでNTLMv2認証を使おうとするが、バージョン2.2以前のsambaはLAN Manager認証レベルのみにしか対応しておらず結果的に認証に失敗してしまう(なのでパスワードが間違っていると解釈される)ことが判った。
これに対する対処方法はWindowsOS側で使用する認証方法をNTLMv2からNTLMかLAN Manager認証レベルに変更することとなり、具体的にはレジストリエディタで認証レベルを変更するか、VISTAのBusiness/Ultimate/Enterpriseや7のPro/Ultimate/Enterpriseではローカルセキュリティポリシーを変更することで対応可能だ。
レジストリエディタで変更する場合は「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa」にある「LmCompatibilityLevel」の値(デフォルトは”3″:NTLMv2 応答のみを送信し、サーバーが対応している場合はNTLMv2セッションを使用する)を変更する。
ローカルセキュリティポリシーを変更するには。
「コントロールパネル」の「管理ツール」にある「ローカルセキュリティポリシー」を開き、「セキュリティオプション」の「ネットワークセキュリティ:LAN Manager 認証レベル」という項目をダブルクリックして認証レベルを変更する。
今回調べていて記事によっては認証レベルを”0″(サーバーが対応していてもNTLMv2は使用しない)にすると書いているのもあったが、これだとセキュリティ的に問題があるので、出来れば”2″(NTLM応答のみ送信し、サーバーが対応している場合はNTLMv2セッションを使用する)が望ましいと思う。
“2”でも接続できない場合は”1″(LM及びNTML応答を送信し、サーバーが対応している場合はNTLMv2セッションを使用する)にすれば良いと思う
よほど古いsambaサーバーでない限り”0″にしてLM認証のみにする必要はない筈で、実際私の環境でも”2″で問題無く接続出来た。
One comment to this article
Pingback:
昔の私に助けられた(笑) | 徒然日記