前回<DebianのsambaサーバをSMB署名対応にするため調査する - treedown’s Report>でsambaサーバをSMB署名対応にするための設定値を調べてみましたが、今回は実際に設定して動作を確認してみました。
前回の復習
前回<DebianのsambaサーバをSMB署名対応にするため調査する - treedown’s Report>の確認したところでは、sambaサーバのバージョン4.17以上で、smb.conf内の[global]セクションに「server signing = mandatory」をsmb.confに明示的に設定することで、sambaサーバ側でWindows11 24H2のSMB署名強制に対応する必要がありそうだということが分かりました。
今回はこれを実施したのち、未対応のsambaサーバと動作を比べてSMB署名対応であることを確認していきます。
環境は、

- Debian 12 bookworm
- Samba:バージョン4.17(bookwormのリポジトリで標準のバージョン)
- Windows 11 24H2のPCからアクセス(SMB署名強制でないWindows10も混在)
この構成でSMB署名対応となったsambaサーバの動作確認をします。
サーバに設定を実施
</etc/samba/smb.conf>の[global]セクションに以下を追記しました。

--------------------------------------------------------------
#======================= Global Settings =======================
[global]
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP
(中略)
### Windows11 24H2 Security Setting ###
server signing = mandatory
--------------------------------------------------------------
ちなみに、「### Windows11 24H2 Security Setting ###」はコメント行です。今回の設定変更で追加した設定ということを覚えておけるような命名にしました。
今回は「server signing = mandatory」だけを追記して動作を確認してみることにします。
testparmコマンドで確認
smb.confの編集後にサーバ反映前の確認をやってみました。確認はtestparmコマンドで確認します。
※書式:
sudo testparm -v | grep "server signing"
「server signing = mandatory」の確認なので"server signing"だけをgrepしています。
すると、

「server signing = required」と表示されました。これはmandatoryの内部表現とのことなので問題ないようです。
sambaサーバのリスタートから動作確認
設定ファイルsmb.confの編集が完了したところで、設定を反映させるためにsambaサーバをリスタートします。リスタートが必要なので平日昼間の設定作業は避けて休日や夜間の作業が必要でした。
# systemctl restart smbd
nmbdは関係ないと思いますが、不安な場合には「# systemctl restart nmbd」も実施しておきます。
リスタート後に動作を確認します。
まずはWindows11 24H2環境で動作を確認するためのPowerShellコマンドレット
Get-SmbConnection | Select-Object ServerName, Signed
を(共有フォルダにアクセスしたあとに)実行します。以下実行結果。

実行結果のSigned欄が「True」となっていることがわかります。比較のためSMB署名の設定を未設定のsambaサーバ(ServerNameがServ01のもの)に同時にアクセスして違いを比較してみました。
SMB署名の設定を入れたsambaサーバであるservs2へのアクセスはSigned欄が「True」となっていてSMB署名が通信に使用されていることがわかります。一方で、「server signing = mandatory」を設定していないsambaサーバであるserv01側のSigned欄は「False」となっており、SMB署名が使われていない通信となっていることを表現しています。
この場合、servs2へのアクセスがSMB署名を使って通信が成立している状態です。
これで作業は完了しました。
注意点とその他
ファイルの転送速度を確認してみたのですが、手持ちの環境ではSMB署名の有無によって転送速度の違いが感じられることはありませんでした。(速度に差が出ると思っていた。)

ただ、これは当方のsambaサーバの環境がほどほどにしか速度は出ないハードウェアを使っているということもあるので、速度の差が出る環境もあるかもしれません。上記の図のようにいくつかファイルをコピーして速度を比較してみたのですが、誤差の範囲内(ゆらぎくらい)しかなく、速度アップや逆のSMB署名による速度ダウンなどは感じられませんでした。
sambaサーバでSMB署名を強制するという設定を実施したため、Windows11 24H2以前のWindows環境に影響ないかも確認しましたが、
「Get-SmbClientConfiguration | Select-Object RequireSecuritySignature」コマンドレットで「RequireSecuritySignature」が「False」と表示される旧Windowsクライアントからでもアクセスは問題なく実施できることが確認できました。

以前のWindowsクライアントは、既定で「SMB署名を使うか任意=使えないわけではない」という設定になっているため、sambaサーバでSMB署名を強制したとしても、WindowsクライアントがSMB署名を使えるバージョンであれば前述FalseであってもSMB署名を使ってsambaサーバにアクセスすることができました。
ただ、あまりに古すぎるWindows(例えばXP)ではSMB署名に対応していない(そもそもそのWindowsの世代にはSMB署名が存在していなかった?)ため、SMB署名を強制されたsambaサーバにアクセスできなくなると思われます。また、SMBアクセスが発生する機能を持つ複合機(プリンタやスキャナ機能など)なんかもこのSMB署名による影響を受ける可能性がありそうです。SMB署名非対応の機器は個別に対処する必要が出てきます。