web-dev-qa-db-ja.com

WindowsクライアントとSMB2 / 3をネゴシエートする

最近、Win10 1803をインストールした後、Linuxマシン上のsamba共有にアクセスできなくなっていることに気付きました。少し調べたところ、SMB1はデフォルトで無効になっており、私のLinuxマシンは、そのSMB1をデフォルトとして使用しているようです。

今、私はそれを修正して、私のsmb-serverが利用可能な最も高いサポートされているプロトコルバージョンを適切にネゴシエートするようにします。ドキュメントに関する限り、smbは問題なくSMB2とSMB3をサポートする必要があります。しかし、WindowsでSMB1を無効にすると、サーバーが完全に消えます。

min protocol = SMB2max protocol = SMB3protocol=SMB2をいじってみましたが、うまくいきませんでした。この時点で、私はwiresharkをミックスに投入し、いくつかの興味深い詳細に言及しました。

SMB1を無効にしても、Windowsマシンで有効にしても、サポートされている3つの方言(SMBパケットにカプセル化されている)でsmbネゴシエートプロトコル要求を常に送信します。

  • NT LM 0.12(SMB1/CIFS)
  • SMB 2.002
  • SMB 2。???

SMB1は、常に、そのリストの一部です。理由はわかりませんが、サポートされている最高の方言をsmbが選択する場合は問題になりません。悲しいことに、応答はSMB2.002とSMB2を示唆しています。認識されていません。

下部に接続されている構成で、NL LM 0.12を選択するネゴシエートプロトコル応答を取得します。構成にmin protocol = SMB2を追加すると、プロトコル応答は-1(PC NETWORK PROGRAM 1.0)を返し、可能な限り最も古いプロトコルバリアントになります。ネゴシエーションを完全に回避するためにprotocol = SMB2を設定すると、サーバーはSMB 1ではなくSMB2パケットを適切に送信し、方言を0x0202(SMB2_02)に正しく設定しますが、ウィンドウはまだ拒否します。そのバージョンで動作します。

この時点で、LinuxサーバーとWindowsクライアントの間でSMB SMB1ではないプロトコルバージョンのサポートを有効にする方法についてのアイデアはありません...適切に機能させるには、自由に共有してください。

理想的には、可能であればクライアントマシンではなく、サーバーのみを調整したいです。

メモ

サーバ:

  • Openmediavault(Debian 7)
  • smbdおよびnmbd v3.6.6

クライアント:

  • Win10 1803(ビルド17134.48)
  • 機能「SMB1.0/CIFSのサポート」を無効化

サービスmrxsmb10を無効にすると、機能をアンインストールした場合と同じ結果になる場合があります。

smb.conf

[global]
workgroup = WORKGROUP
server string = %h server
dns proxy = no
log level = 0
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
syslog only = yes
panic action = /usr/share/samba/panic-action %d
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = no
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
socket options = TCP_NODELAY IPTOS_LOWDELAY
guest account = nobody
load printers = no
disable spoolss = yes
printing = bsd
printcap name = /dev/null
unix extensions = yes
wide links = no
create mask = 0777
directory mask = 0777
use sendfile = yes
aio read size = 16384
aio write size = 16384
null passwords = no
local master = yes
time server = yes
wins support = yes
wins server = NAS
2
CShark

Smpdバージョン3.6.xはSMB3をサポートしていないため、SMB3を認識しません。 max protocol = SMB2を使用すると、SMB2サポートが有効になるので、それから始めます。次にmin protocol = SMB2を追加すると、リストはかなり狭くなります...

Debian 7 "Wheezy"のLTSサポートは2018年5月31日に終了します。それは1週間未満です。アップグレードされたDebian 9にはsmbd 4.5.xが付属しており、SMB 3.0はsmbd 4.2以降でサポートされています。max protocol = SMB3をサポートします。

3
Esa Jokinen

@Esa Jokinenはすでにあなたに答えており、彼の答えがあなたの問題を解決すると思います。

さらに詳しく説明しますが、 ここ は、Samba(3.6.x)でSMB2を有効にする方法と方法についての説明へのリンクです。 (「SMB2サポート」を探す)

通常は、次の操作を実行します。

  1. の中に smb.conf [global]セクションadd max protocol = SMB2
  2. Sambaを再起動します。
1
Eliad Cohen