先日リリースされたubuntuの最新版17.04へのアップグレードをしたところ、sambaにwinxpのPCから接続出来ない(パスワード認証に失敗する)事象が起こるようになってしまいまして。
具体的には、ネットワークドライブへの接続等によってエクスプローラからsamba経由でサーバのフォルダを開く際、ユーザ名とパスワードを入力しても弾かれるようになってしまったのです。windows7以降のPCで確認してみたところそちらでは問題なく、従ってwinxp以前のPC特有の障害という事になるのですね。いくらXPのサポートは既に終わっていると言っても、実際問題使えないのは困ります、のでその対処法を調査しました。
結論から言えば、本件事象の原因はsambaの認証方法周りの仕様変更(セキュリティ強化)によるものです。ubuntu17.04におけるsambaのバージョンは4.5.4になるのですが、4.5.0以降はXPでデフォルトの認証方式になっているNTLMv1がデフォルトで無効となるよう変更がなされていて、このためXPでは認証出来なくなってしまった、というわけです。
対処方法は2通りあります。一つは、sambaの設定を変更してNTLMv1の認証を有効にする方法で、もう一つはXP側の認証方法の設定を変更して、NTLMv1は使わずその後継のNTLMv2を使用するようにする方法です。
前者はつまるところ元に戻す事に他ならず、これだとクライアントは何ら変更を要せず、サーバの設定だけを変えればいいので簡単なのですが、NTLMv1はあまりに脆弱な事が既に明らかになっているので、一般にはあまりお勧めは出来ません。まあ、デフォルトで無効にされる位には危険なものだという事なのです。少なくとも、オープンなネットワークに接続するサーバで本認証方式を一般に有効にするのはやめた方がいいでしょう。そもそもXPのPCからの接続が必要になる頻度も減っているわけだし、新しい方に合わせた方がいいだろう、という事で、後者のXP側の設定を変更してNTLMv2に切り替える方法を取りました。その手順は下記の通りとなります。
<NTLMv2設定方法>
[コントロールパネル]-[管理ツール]-[ローカル セキュリティ ポリシー]の設定画面中、[セキュリティの設定]-[ローカル ポリシー]-[セキュリティ オプション]の中にある[ネットワーク セキュリティ: LAN Manager 認証レベル]を開きます。
表示されるダイアログの[ローカル セキュリティの設定]タブ中に認証レベルの設定項目があります。デフォルトでは、[LM と NTLM 応答を送信する]になっている筈。
これを、[NTLMv2 応答のみ送信\LM と NTLM を拒否する]に変更。これで、認証方法がNTLMv1からNTLMv2へと切り替わります。
変更後、再起動して完了。以降はsambaの認証が従来通り可能になっている筈です。
ちなみに、危険を承知でsamba側の設定を変更してNTLMv1を有効にする方法は、smb.conf中の適当な所にntlm auth = yesを挿入するだけです。
というわけで、元通りネットワークドライブ等にも接続出来るようになったのでした。しかし、毎度の事ながらsambaには難儀させられますね。本件の仕様変更も、セキュリティホールを塞ぐという正当な理由がある事は理解出来るのですが、何の説明もなくいきなり接続出来なくなり、原因の調査からしなければならず、そのかかる手間や迷惑具合は、ユーザからしてみればおよそ不具合と何ら変わりないわけで。とても困りますし、どうにかならないものでしょうか。ならないんでしょうね。ともあれ、今回はこれでおしまい。
※ なお、今回の事象の調査過程でログ等を見ていて気がついたんですが、mangle関連でエラーが出るようになっています。obsoleteになってしまったんでしょうか。そうだとするとちょっと困るわけですが、さてどうしましょう。。。
[関連記事 [note] ubuntu17.04導入]
[関連記事 [note] sambaで一部のファイル・フォルダが文字化けする不具合の修正について]
[関連記事 [note] cifs経由のsymbolic linkが突然stat不可に]
[関連記事 [IT] sambaの3.6.3以前全てに脆弱性]