SMBの接続のプロトコルバージョンチェック

投稿者: | 3月 26, 2022

SMBは何気に気を遣うプロトコルのような気がする。古くは、OSのロケールの文字コードとクライアント、共有文字コードの変換があったり(CP932のくそったれw)、IPXやNetBEUIやTCP/IP上の振る舞いがあったり。。。IPXネタなんて、以前自分がいた五反田の会社の同僚くらいだ。。。夜中IPX論争で親友が言い争いを始めていたんだが。。。

閑話休題。そんな流血事件が起きた(うそ)SMBプロトコルの話。

今だと、TCP/IP上のSMB転送なので、あまり気にすることはなく、文字コード問題も落ち着いているはずっちゃはずである。(OSの文字コードがUTF-8に置き換わってきているため)
今回は、SMBプロトコルバージョンの調べ方。SMBプロトコルのバージョンは、少し気を遣う必要があって、古いバージョンのは、セキュリティ上利用はお勧めしない。新しいバージョンで固めていると、Windows7などの古い環境から接続ができないこともある。(もちろんESU契約してるんだろうけど。そのお金があるなら買い替えた方がいいような気がする。ESU契約なしでだましで使っている環境はほーっておこう。)また設定を理解していないと転送が遅くなることもある。

クライアントからSMBバージョンを確認する方法。

MAC

クライアント側の接続(\\192.168.10.4\Shareに接続した状態)

SMB_VERSION SMB_3.1.1で接続している様子


~ % smbutil statshares -a

==================================================================================================
SHARE ATTRIBUTE TYPE VALUE
==================================================================================================
Share
SERVER_NAME 192.168.10.4
USER_ID 501
SMB_NEGOTIATE SMBV_NEG_SMB1_ENABLED
SMB_NEGOTIATE SMBV_NEG_SMB2_ENABLED
SMB_NEGOTIATE SMBV_NEG_SMB3_ENABLED
SMB_VERSION SMB_3.1.1
SMB_ENCRYPT_ALGORITHMS AES_128_CCM_ENABLED
SMB_ENCRYPT_ALGORITHMS AES_128_GCM_ENABLED
SMB_ENCRYPT_ALGORITHMS AES_256_CCM_ENABLED
SMB_ENCRYPT_ALGORITHMS AES_256_GCM_ENABLED
SMB_CURR_ENCRYPT_ALGORITHM OFF
SMB_SHARE_TYPE DISK
SIGNING_SUPPORTED TRUE
EXTENDED_SECURITY_SUPPORTED TRUE
UNIX_SUPPORT TRUE
LARGE_FILE_SUPPORTED TRUE
OS_X_SERVER TRUE
DFS_SUPPORTED TRUE
FILE_LEASING_SUPPORTED TRUE
MULTI_CREDIT_SUPPORTED TRUE

--------------------------------------------------------------------------------------------------

Windows (PowerShell)

クライアント側の接続(\\192.168.10.62\cifs_vol1に接続した状態)

Get-SmbConnectionで概要が取れる。さらに Get-SmbConnection -ServerName 192.168.10.62 | Select-Object -Property *で詳細情報がとれる。
CIMで接続数がモニターできそう。

PS C:\Users\administrator.ENT1> Get-SmbConnection

ServerName ShareName UserName Credential Dialect NumOpens
---------- --------- -------- ---------- ------- --------
192.168.10.62 cifs_vol1 ENT1\administrator ent4\administrator 3.1.1 2
192.168.10.62 IPC$ ENT1\administrator ent4\administrator 3.1.1 1

PS C:\Users\administrator.ENT1> Get-SmbConnection -ServerName 192.168.10.62 | Select-Object -Property *


SmbInstance : Default
ContinuouslyAvailable : False
Credential : ent4\administrator
Dialect : 3.1.1
Encrypted : False
NumOpens : 2
Redirected : False
ServerName : 192.168.10.62
ShareName : cifs_vol1
Signed : False
UserName : ENT1\administrator
PSComputerName :
CimClass : ROOT/Microsoft/Windows/SMB:MSFT_SmbConnection
CimInstanceProperties : {ContinuouslyAvailable, Credential, Dialect, Encrypted...}
CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties

SmbInstance : Default
ContinuouslyAvailable : False
Credential : ent4\administrator
Dialect : 3.1.1
Encrypted : False
NumOpens : 1
Redirected : False
ServerName : 192.168.10.62
ShareName : IPC$
Signed : False
UserName : ENT1\administrator
PSComputerName :
CimClass : ROOT/Microsoft/Windows/SMB:MSFT_SmbConnection
CimInstanceProperties : {ContinuouslyAvailable, Credential, Dialect, Encrypted...}
CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties

ということで誰かのお役に立てば。。

コメントを残す