Windows 10 は SMB1/CIFS 以外から Linux Samba 共有に接続できません

Windows 10 は SMB1/CIFS 以外から Linux Samba 共有に接続できません

Windows 10 で Linux Samba 共有にアクセスしようとすると、次のエラーが発生します。

Check the spelling of the name. Otherwise, there might be a problem with your network. To try to identify and resolve network problems click Diagnose.
Error code: 0x80070035
The network path was not found

SMB1/CIFSのみを使用する古いopenSUSE 12.1からは正常にブラウズできますが、最近のopenSUSE Leap 15からは、強制的にNT1プロトコル(SMB1/CIFS用)を横に置き、/etc/samba/smb.conf グローバルセクション:

[global]
...
min protocol = NT1
max protocol = NT1

情報については、デフォルトで最小プロトコルランマン1そしてマックスプロトコルSM3 について、その範囲には以下が含まれますNT1プロトコル(参照SMB プロトコルの最小最大値は使用可能ですか?):

$ testparm --parameter-name="min protocol"
[...]
LANMAN1
$ testparm --parameter-name="max protocol"
[...]
SMB3

また、以下のコマンドを使用すると、プロトコルを強制することなく、別の Linux コンピューターからこれらの共有フォルダーにアクセスできます。たとえば、フォルダーを一覧表示できます。

smbclient -L MyLeap15Computer -N

または、次のコマンドで tmp 共有フォルダーに接続します。

smbclient //MyLeap15Computer /tmp -N

SMB2と3が実際にアクティブであることも確認しました。Windows で SMBv1、SMBv2、SMBv3 を検出、有効化、無効化する方法また、別の Windows 10 からもアクセスできました。アクセスできないコンピューターからは、MyLeap15Computer に正常に ping を実行できました。

とにかく、技術的には NT1 プロトコルを強制することで共有フォルダーにアクセスできますが、SMB1/CIFS にはセキュリティ上の問題があるため、SMB2 または SMB3 からアクセスできるようにしたいと考えています (その後、Windows 10 でも無効にします)。また、このプロトコルを強制せずに別の Windows 10 からアクセスできるため、Windows の構成に問題があるはずですが、両方ですべてがアクティブになっているように見えるため、どちらが原因かを確認できません。

最後に、問題はクライアント側にあるように見えますが、サーバーの設定は次のとおりです。smb.conf は、強制することなくNT1プロトコル (この構成ではゲス​​トユーザーが受け入れられるため、接続時に資格情報を指定する必要はありません):

[global]
workgroup = WORKGROUP
passdb backend = tdbsam
printing = cups
printcap name = cups
printcap cache time = 750
cups options = raw
map to guest = bad user
logon path = \\%L\profiles\.msprofile
logon home = \\%L\%U\.9xprofile
logon drive = P:
usershare allow guests = yes
usershare max shares = 100
winbind offline logon = yes
winbind refresh tickets = yes
create mask = 777
directory mask = 777
delete readonly = yes

[tmp]
comment = Temp folder
path = /tmp
browseable = yes
writable = yes
read only = no
guest ok = yes
mangled names = no

編集: @JW0914が提案した内容の後に、さらに詳しい情報があります。提案された内容は機能しませんでしたが、サーバーログに興味深いものを見つけました(追加しましたログレベル = 3/etc/samba/smb.conf グローバルセクションはその後見守ったログファイル接続を試みた後):

  check_ntlm_password:  Checking password for unmapped user [DOMAIN]\[USER]@[Windows10Computer] with the new password interface
[2020/02/05 14:21:23.845849,  3] ../source3/auth/auth.c:192(auth_check_ntlm_password)
  check_ntlm_password:  mapped user is: [DOMAIN]\[USER]@[Windows10Computer]
[2020/02/05 14:21:23.845879,  3] ../source3/auth/check_samsec.c:399(check_sam_security)
  check_sam_security: Couldn't find user 'USER' in passdb.
[2020/02/05 14:21:23.845890,  2] ../source3/auth/auth.c:332(auth_check_ntlm_password)
  check_ntlm_password:  Authentication for user [USER] -> [USER] FAILED with error NT_STATUS_NO_SUCH_USER, authoritative=1
[2020/02/05 14:21:23.845910,  2] ../auth/auth_log.c:760(log_authentication_event_human_readable)
  Auth: [SMB2,(null)] user [DOMAIN]\[USER] at [Wed, 05 Feb 2020 14:21:23.845900 CET] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [Windows10Computer] remote host [ipv4:172.168.0.69:56937] mapped to [DOMAIN]\[USER]. local host [ipv4:172.168.0.99:445]
[...]
  No such user USER [DOMAIN] - using guest account
[2020/02/05 14:21:23.847182,  3] ../source3/smbd/server_exit.c:244(exit_server_common)
  Server exit (NT_STATUS_CONNECTION_RESET)

サーバーは Windows 10 にログインしているユーザーで認証しようとしているようですが、存在しないためゲスト ユーザーにフォールバックしますが、接続は直後にリセットされます。一方、サーバーが動作しているコンピューターで、同じドメイン/ユーザーでログインして正常にアクセスすると、まったく同じログ (コンピューター名と IP は異なります) が表示されますが、最後に次のようになります。

  No such user USER [DOMAIN] - using guest account
[2020/02/05 14:43:21.147396,  3] ../lib/util/access.c:365(allow_access)
  Allowed connection from 192.168.0.77 (192.168.0.77)

調査中ですが、何が起こっているのか手がかりを持っている人がいたら嬉しいです。

編集2: ちょっと調べてみたら、回避策が見つかりましたWindows 10 秋のアップデートと samba ゲスト アカウントしかし、試してみるとネット使用コマンドで次の問題が発生します。これは、新しいコンピューターのセキュリティが変更された可能性がある私の会社です (使用されているコンピューターは両方とも同じドメインにありますが、動作しないコンピューターは新しいインストールからのものです)。

You can't access this shared folder because your organization's security policies block unauthenticated guest access. These policies help protect your PC from unsafe or malicious devices on the network.

ありがとう

答え1

私の場合 (Windows 10、CentOS 6 上の古い Samba 4.2.10)、最小プロトコルを SMB2、最大プロトコルを SMB3 に設定すると役立ちました。

[global]

min protocol = SMB2
max protocol = SMB3

client min protocol = SMB2
client max protocol = SMB3

client ipc min protocol = SMB2
client ipc max protocol = SMB3

server min protocol = SMB2
server max protocol = SMB3

その後共有をネットワークドライブとして接続し(Explorer -> Home -> Easy access -> Map as drive)、共有名を入力し(\\1.2.3.4\ShareName)、 「別の資格情報を使用して接続」にチェックを入れ、次に「その他」を選択し、ユーザー名を次の形式で入力します。DOMAIN\username

エクスプローラーで共有にアクセスしようとしたときに、資格情報の入力を求められず、ユーザー名を指定することもできませんでしたnet use \\shareserver\data /user:testuser(システム エラー 58 が発生しました)。

答え2

ここでは走ることsmbpasswd -a userが大事です!

私のランニングsmb.conf

[global]
    client max protocol = SMB3
    name resolve order = wins lmhosts host bcast
    security = USER
    username map = /etc/samba/smbusers
    idmap config * : backend = tdb

[rootfs]
    create mask = 0644
    force group = root
    force user = root
    path = /
    read only = No

答え3

最後に、組織のセキュリティポリシーにより共有フォルダにアクセスできないこれを上書きする方法を見つけました:

  • 出発からregedit到着までHKLM\SOFTWARE\Policies\Microsoft\Windows
  • 新しいキーを作成し、その中に値でLanmanWorkstation名前が付けられた新しいDWORDを作成します。AllowInsecureGuestAuth1
  • リブート

もちろん、会社の承認なしに行うことはできません。私はテストのためにこれを実行しただけですが、これをどのように管理できるかを IT​​ 部門と協力して検討しています。

答え4

私の場合、ポート139/TCPの接続を無効にすると、Windows 10クライアントからSamba Ubuntu 20.04への最初の接続時に発生するエラー0x80070035が大幅に改善されました。

[global]
...
smb ports = 445
...

今では、自宅の Windows 10 PC から Samba サーバーへの接続がこれまで以上に高速になりました。

しかし、これによってどのような副作用が起こるのかは実際にはわかりません。

関連情報