如何让 Samba 列出所有无需身份验证的共享

如何让 Samba 列出所有无需身份验证的共享

编辑:我刚刚创建了一个 Windows 7 VM,从那以后一切都按我的意愿运行。所以看起来这是最近的 Windows 10+ 客户端问题,而不是 Samba 问题。显然,这不仅仅是“启用不安全的来宾登录”的问题。

Opensuse Tumbleweed 上的 Samba 4.19.5,服务器名称 HOGSTORE。

工作组 802MAGIC 上有大量 Windows 10 Pro (22H2) 桌面作为客户端。

我希望此服务器上所有可浏览的共享都可见(不一定可访问),而无需在 Windows 资源管理器中输入用户名/密码。访问 \\HOGSTORE 时,我希望列出所有设置为“可浏览”的共享,但不提示输入凭据。某些共享可能需要或不需要身份验证才能访问。

我已经尝试了好几天,但都没有成功。它总是提示输入凭据。以下是我到目前为止尝试过的方法:

  • 使用组策略编辑器在 Windows 10 中打开“启用不安全的访客登录”。
  • 确保使用组策略编辑器在 Windows 10 中禁用“Microsoft 网络客户端:数字签名通信(始终)”(它在每个客户端上已经默认启用)。
  • 在服务器上创建了一个名为“weaksauce”的用户,该用户属于“weaksauce”组,且没有密码(我使用 明确删除了它的密码passwd -d weaksauce,然后为了保险起见,还使用 ​​删除了它的密码smbpasswd -n weaksauce。尝试将登录 shell 设置为 /bin/bash 和 /bin/nologin。
  • 确保 Samba 服务器和所有客户端都在同一个工作组中。
  • 这是我的 smb.conf 全局部分:
[global]
log level = 3
workgroup = 802MAGIC
netbios name = HOGSTORE
guest account = weaksauce
server string = SMB Server %v
case sensitive = no
map to guest = bad user
guest ok = yes
invalid users = root
eventlog list = Application System Security SyslogLinux
server role = standalone server
preferred master = yes
log file = /var/log/samba/%m.log
usershare allow guests = Yes
load printers = no
  • 确保 Windows 10 Pro 客户端在更改后重新启动,并且 Samba 服务器也重新启动以重新加载配置更改。

我不知道需要什么神奇的设置才能让它发挥作用,但尝试让它按需要发挥作用的挫败感让我拔掉了所有的头发,现在我完全秃顶了。我搜索了谷歌,但我找到的所有结果都无法帮助我解决这个问题(显然,因为我现在在这里)。

真的希望有人能帮助我或者至少给我指明正确的方向。

答案1

因此,您可能遇到了 Windows 10 Pro 及更新版本的问题,这些问题明确地阻止了您尝试执行的确切操作。

Windows 默认不允许通过其认为不安全的访客访问方式访问 SMB 服务。有两种方法可以更改此设置。

首先,如果您已经安装/启用了 gpedit,则可以执行此操作,但这在 Windows 10 Pro 中比较棘手,因此本文不再赘述:

Run: gpedit.msc
Go to: Local Computer Policy -> Computer Configuration -> Windows Settings -> Administrative Templates -> Network -> Lanman Workstation
Enable: "Enable insecure guest logons"

另一个选项是在注册表编辑器中:

Run: regedit
Go to: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation
Click: Edit -> New -> DWORD (32-bit) Value
Name it: AllowInsecureGuestAuth
Set value to: 1
Exit Registry Editor
Reboot

此时,无论使用哪种方法,您都应该能够看到安全共享,而无需用户名和密码。但是,请注意,默认情况下,身份验证时没有“访客”选项。因此,它仍可能会要求您输入用户名/密码。如果确实如此,请输入任何内容。没关系。当失败时,服务器将使用“映射到访客”设置并返回到访客用户并允许可见性。

祝你好运,如果有效的话请告诉我!

答案2

https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/guest-access-in-smb2-is-disabled-by-default

Windows 默认禁用 SMB2 和 SMB3 中的访客访问

本文介绍了 Windows 默认禁用 SMB2 和 SMB3 中的来宾访问的信息,并提供了在组策略中启用不安全来宾登录的设置。但是,通常不建议这样做。

原始 KB 编号:4046019

症状

从 Windows 10 版本 1709 和 Windows Server 2019 开始,SMB2 和 SMB3 客户端不再默认允许以下操作:

  • 来宾帐户访问远程服务器。
  • 提供无效凭据后,恢复为访客帐户。

SMB2 和 SMB3 在这些版本的 Windows 中具有以下行为:

  • Windows 10 企业版和 Windows 10 教育版不再允许用户默认使用来宾凭据连接到远程共享,即使远程服务器请求来宾凭据。
  • Windows Server 2019 Datacenter 和 Standard 版本不再允许用户默认使用来宾凭据连接到远程共享,即使远程服务器请求来宾凭据。
  • Windows 10 Home 和 Pro 与之前的默认行为没有任何变化;它们默认允许访客身份验证。
  • Windows 11 Insider Preview Build 25267 Pro 版本不再允许用户默认使用来宾凭据连接到远程共享,即使远程服务器请求来宾凭据。所有后续 Windows 11 Insider Preview 版本都不再允许用户默认使用来宾凭据连接到远程共享。

如果您尝试连接到请求访客凭证而不是适当的经过身份验证的主体的设备,您可能会收到以下错误消息之一:

  • 您无法访问此共享文件夹,因为贵组织的安全策略阻止未经身份验证的来宾访问。这些策略有助于保护您的电脑免受网络上不安全或恶意设备的攻击。

  • 错误代码:0x80070035 未找到网络路径。

此外,如果远程服务器试图强制您使用访客访问,或者管理员启用访客访问,则 SMB 客户端事件日志中会记录以下条目:

Log Name: Microsoft-Windows-SmbClient/Security  
Source: Microsoft-Windows-SMBClient  
Date: Date/Time  
Event ID: 31017  
Task Category: None  
Level: Error  
Keywords: (128)  
User: NETWORK SERVICE  
Computer: ServerName.contoso.com  
Description: Rejected an insecure guest logon.  
User name: Ned  
Server name: ServerName 

指导

此事件表示服务器尝试以未经身份验证的来宾身份登录用户,但被客户端拒绝。来宾登录不支持签名和加密等标准安全功能。因此,来宾登录容易受到中间人攻击,从而可能在网络上泄露敏感数据。Windows 默认禁用不安全(非安全)的来宾登录。我们建议您不要启用不安全的来宾登录。

原因

这种默认行为的改变是经过设计的,并且是 Microsoft 出于安全考虑所建议的。

冒充合法文件服务器的恶意计算机可能会允许用户在不知情的情况下以访客身份进行连接。我们建议您不要更改此默认设置。如果远程设备配置为使用访客凭据,则管理员应禁用访客对该远程设备的访问,并配置正确的身份验证和授权。

自 Windows 2000 以来,Windows 客户端和 Windows Server 就不再启用访客访问或允许远程用户以访客或匿名用户身份进行连接。只有第三方远程设备可能默认需要访客访问。Microsoft 提供的操作系统则不需要。

解决

配置第三方 SMB 服务器设备,要求输入用户名和密码才能进行 SMB 连接。如果您的设备允许访客访问,则网络上的任何设备或人员都可以读取或复制您的所有共享数据,而无需任何审计跟踪或凭证。

如果您无法将第三方设备配置为安全的,则可以使用以下组策略设置启用不安全的访客访问:

  1. 在 Windows 设备上打开本地组策略编辑器 (gpedit.msc)。
  2. 在控制台树中,选择计算机配置 > 管理模板 > 网络 > Lanman Workstation。
  3. 对于设置,右键单击启用不安全的访客登录并选择编辑。
  4. 选择“已启用”>“确定”。

出于监控和清单目的,此组策略将以下 DWORD 注册表值设置为 1(启用不安全的来宾身份验证)或 0(禁用不安全的来宾身份验证):

项:HKLM\Software\Policies\Microsoft\Windows\LanmanWorkstation

值: AllowInsecureGuestAuth

若要在不使用组策略的情况下设置该值,请使用以下注册表值:

项:HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters

值: AllowInsecureGuestAuth

笔记

与往常一样,组策略中的值设置将覆盖非组策略注册表值中的值设置。(在调查期间检查两者)。

更多信息

此设置对 SMB1 行为没有影响。SMB1 继续使用访客访问和访客回退。

相关内容