如何在Linux或Unix上配置Samba以使用SMBv2并禁用SMBv1

时间:2020-01-09 14:16:58  来源:igfitidea点击:

如何在CentOS Linux版本7服务器上的samba配置中禁用SMB1协议。
是否可以在Linux或类似UNIX的操作系统上禁用SMBv1?

说明:WannaCrypt/WannaCry以Microsoft Windows操作系统为目标。
该攻击通过网络钓鱼电子邮件进行传播,但也使用了美国国家安全局(NSA)开发的EternalBlue漏洞和DoublePulsar后门。
如果您使用的是较旧且不受支持的操作系统,例如Windows XP和Windows Server 2003,则将被感染。
您的所有文件都会被加密。
要取回文件,您需要用加密货币比特币支付赎金。

Microsoft已发布了Windows XP和Windows Server 2003的软件更新。
您必须尽快在Windows操作系统上应用这些修补程序。
简而言之,Linux/Unix用户不受此攻击的影响。
但是,必须在Linux或类似Unix的系统上运行的Samba服务器上禁用SMBv1。

在Linux或Unix上配置Samba以使用SMBv2并禁用SMBv1

让我们看看如何在类似Linux或Unix的系统上禁用SMBv1。

使用Samba时在Linux或Unix上禁用SMBv1

Samba是SMB或CIFS协议的开源实现,该协议允许PC兼容机(尤其是Windows oese)与Linux共享文件,打印机和其他信息,反之亦然。

启用SMBv2的配置

编辑smb.conf文件,运行:

$ sudo vi /etc/samba/smb.conf

找到[global]部分,并添加以下行:

min protocol = SMB2

这是我的更新文件:
如何在Linux或Unix上的samba中强制使用SMB2协议

正如下面许多评论部分所述,以下似乎也适用于Windows 10/Linux客户端:

protocol = SMB2

对于samba版本4.x,您可以设置

protocol = SMB3

保存并关闭文件。

了解smb.conf中的最小和最大协议级别

  • 客户端最小协议(client min protocol)此设置控制客户端将尝试使用的最低协议版本。
  • " client max protocol"(客户端最大协议)参数的值(字符串)是客户端将支持的最高协议级别。
  • SMB2:重新实现SMB协议。由Windows Vista和更高版本的Windows使用。 SMB2具有可用的子协议:SMB2_02:最早的SMB2版本。
  • SMB2_10:Windows 7 SMB2版本。 (默认情况下,SMB2选择SMB2_10变体。)
  • SMB2_22:早期的Windows 8 SMB2版本。
  • SMB2_24:Windows 8 beta SMB2版本。
  • SMB3:与SMB2相同。 Windows 8使用。SMB3具有可用的子协议。 SMB3具有可用的子协议:SMB3_00:Windows 8 SMB3版本。 (与SMB2_24大致相同)
  • SMB3_02:Windows 8.1 SMB3版本。
  • SMB3_10:早期Windows 10技术预览版SMB3版本。
  • SMB3_11:Windows 10技术预览版SMB3版本(可能是最终版本)。默认情况下,SMB3选择SMB3_11变体。

因此,设置以下内容是最佳选择:

client min protocol = SMB2
   client max protocol = SMB3

有关更多信息,请参见smb.conf。

重新启动samba服务器

在CentOS 7/RHEL 7/Fedora Linux上运行以下命令:

$ sudo systemctl restart smb.service

在Debian 8.x/Ubuntu 16.04 LTS Linux上运行以下命令:

$ sudo systemctl restart smbd.service

请注意:Samba版本4.11在默认情况下会删除SMB1协议版本。
但是,在较旧的Linux和Unix发行版上,您需要手动禁用它,以避免安全问题。