SMB接続で方言バージョンを確認したい。
Windowsでは、Get-SmbConnection
取得します。
PS C:\Windows\system32> Get-SmbConnection
ServerName ShareName UserName Credential Dialect NumOpens
---------- --------- -------- ---------- ------- -------
savdal08r2 c$ SAVILLTEC... SAVILLTEC... 2.10 1
savdalfs01 c$ SAVILLTEC... SAVILLTEC... 3.00 1
macOSではsmbutil statshares -a
はうまく機能します。
Linuxでは何をすべきですか?
LinuxでSambaサーバーを実行している場合、smbstatus
には、各クライアントで使用されているプロトコルのバージョンが表示されます。
Linuxがクライアントの場合は、使用しているクライアントによって異なります。カーネルレベルのcifs
ファイルシステムサポートを使用している場合、まったく新しいカーネルを除くすべてで、答えは/proc/mounts
は、そのファイルシステムのマウントオプションにvers=
オプションが含まれているかどうかを確認します。そうでない場合は、SMB 1。
カーネルレベルのCIFS/SMBサポートにおけるSMBプロトコルの自動ネゴシエーションは、最近の開発です。 そして、私の知る限り、必要なプロトコルバージョンを指定しない場合、自動ネゴシエーションは、CIFSデバッグメッセージを有効にした場合にのみ結果を示します。 幸い、開発者はそれを行ったので、交渉結果は常に/proc/mounts
に表示されます。
smbclient
または他のユーザースペースSMB/CIFSクライアント(デスクトップ環境に統合されているクライアントなど)を使用している場合は、独自のツールと診断機能がある場合があります。
smbstatus
を使用>>
https://www.samba.org/samba/docs/current/man-html/smbstatus.1.html
出力例:
[root@server~]# smbstatus --shares
Service pid Machine Connected at Encryption Signing
---------------------------------------------------------------------------------------------
PubRO 26900 192.168.1.255 Thu Oct 25 12:43:51 AM 2018 PDT - -
Nmapに付属のスクリプトを使用できます。 nmap/Zenmap(GUI)を使用すると、単一のデバイスまたはサブネット範囲(自宅またはオフィスのネットワーク)をスキャンして、使用中のSMBプロトコルが何であるかを示すことができます。
nmap --script smb-protocols 192.168.1.0/24
ここでの重要な点は、セキュリティ上の懸念からSMBv1の使用をやめるです。 「NT LM 0.12」とも呼ばれますZenmapは、ほとんどの主要なプラットフォームで使用できます。