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では何をすべきですか?
答え1
LinuxでSambaサーバーを実行している場合は、各クライアントが使用しているsmbstatus
プロトコルバージョンを表示する必要があります。
Linuxがクライアントの場合は、使用しているクライアントによって異なります。カーネルレベルのcifs
ファイルシステムサポートを使用している場合、かなり新しいカーネルを除くすべてのカーネルで答えは、ファイルシステムの/proc/mounts
マウントオプションを調べることです。システムには以下が含まれます。オプションvers=
でない場合は、SMB 1を使用すると見なされます。
カーネルレベルのCIFS / SMBサポートのSMBプロトコル自動ネゴシエーションは最近開発されており、私が知っている限り必要なプロトコルバージョンを指定しない場合、自動ネゴシエーションはCIFSデバッグメッセージが有効になっている場合にのみ結果を示します。 。しかし幸いにも開発者たちがそうしたので交渉の結果はいつも現れるようにする/proc/mounts
。
他のユーザースペースSMB / CIFSクライアント(デスクトップ環境に統合されたクライアントなど)を使用している場合は、smbclient
独自のツールと診断機能がある可能性があります。
答え2
nmapに付属のスクリプトを使用できます。 nmap / Zenmap(GUI)を使用すると、単一のデバイスまたはさまざまなサブネット(ホームまたはオフィスネットワーク)をスキャンして、使用しているSMBプロトコルを表示できます。
nmap --script smb-protocols 192.168.1.0/24
ここで最も重要なポイントはSMBv1を無効にする安全上の問題のため。 「とも言われています。NT$LM 0.12'Zenmapはほとんどの主要プラットフォームで利用可能です。
答え3
使用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 - -