WindowsVISTAからsambaサーバーに接続出来ない場合は

先日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セッションを使用する)を変更する。

レジストリエディタで変更するキーはLmCompatibilityLevel(この画像で選択中)

レジストリエディタで変更するキーはLmCompatibilityLevel(この画像で選択中)

ローカルセキュリティポリシーを変更するには。
「コントロールパネル」の「管理ツール」にある「ローカルセキュリティポリシー」を開き、「セキュリティオプション」の「ネットワークセキュリティ:LAN Manager 認証レベル」という項目をダブルクリックして認証レベルを変更する。

Windows7Proのローカルセキュリティポリシーの変更画面

Windows7Proのローカルセキュリティポリシーの変更画面

この画面で認証レベルを「NTLM 応答のみを送信する」に変更する。

この画面で認証レベルを「NTLM 応答のみを送信する」に変更する。

こうなればOK

こうなればOK

今回調べていて記事によっては認証レベルを”0″(サーバーが対応していてもNTLMv2は使用しない)にすると書いているのもあったが、これだとセキュリティ的に問題があるので、出来れば”2″(NTLM応答のみ送信し、サーバーが対応している場合はNTLMv2セッションを使用する)が望ましいと思う。
“2”でも接続できない場合は”1″(LM及びNTML応答を送信し、サーバーが対応している場合はNTLMv2セッションを使用する)にすれば良いと思う
よほど古いsambaサーバーでない限り”0″にしてLM認証のみにする必要はない筈で、実際私の環境でも”2″で問題無く接続出来た。

←クリックしてくれると嬉しいです。
PR

One comment to this article

コメントを残す