smbpasswdでNT_STATUS_ACCESS_DENIEDエラーが出たとき

 うちの会社のCentOS 6.8のsamba-3.6.23-35はワークグループのSTANDALONEサーバーとしてファイル共有しています。Windows側で定期的なパスワード変更が必要だったためWindows PCでパスワードを変更してから、CentOS側のsambaもそれに合わせてsmbpasswdコマンドでパスワード変更しようとしたところ以下のような感じになりました。

[foo@linux ~]$ smbpasswd
Old SMB password:
New SMB password:
Retype new SMB password:
cli_negprot: SMB signing is mandatory and the server doesn't support it.
machine 127.0.0.1 rejected the negotiate protocol. Error was : NT_STATUS_ACCESS_DENIED.
Password changed for user foo

 で、Windowsからsambaの共有フォルダに接続できません。Password changedと出ていますが、どうもパスワードが変更されていないようです。
 アクセスできないのは困るので調べてみるとRed HatのKnowledgebaseがヒットしたのですが、会員でないので解決方法が読めません。CentOSのフォーラムの投稿もあったのですが、どうも解決してなさそうですし。どうやらこの4月頃あったsambaのセキュリティ対応のアップデートが原因のようで、それが今回のパスワード変更でうちの環境で出てきたと。
 どうしたもんだろうと、いったん、SMBユーザーを削除と再作成を試してみました。

[root@linux ~]# smbpasswd -x foo
Deleted user foo.

と削除して、

[root@linux ~]# smbpasswd -a foo
New SMB password:
Retype new SMB password:
Added user foo.

と作成とパスワードの設定をすると、問題なく共有フォルダに接続できるようになりました。しかし、パスワード変更のたびにユーザーの削除と作成をするのもたいへんだぞ、とさらに調べてみると、以下の投稿を発見。
https://groups.google.com/forum/#!topic/linux.samba/mIgJJDTniaQ
これによると、smb.confに

client ipc signing = auto

を追加することで解決したとのこと。実際うちの環境で試してみて、一般ユーザーのsmbpasswdでパスワード変更できるようになりました。
 client ipc signingってなんだろうということなんですが、こちらのページによると4月にあったBadlockの問題修正で追加されたIPC$接続のSMB署名に関するオプションとのこと。ともかくこれで解決してよかったです。