【记录】Truenas Scale|中危漏洞,需要SMB签名

news/2025/3/15 1:00:23/

部分内容参考:等保测试问题——需要SMB签名(SMB Signing not Required) 以及 ChatGPT。

Truenas常用SMB服务,但默认并不开启SMB签名。这样具有中间人攻击的风险。

一、漏洞详情

1.1 漏洞报告

漏洞提示如下:
在这里插入图片描述

1.2 漏洞介绍

  SMB是一个协议名,全称是Server Message Block(服务器消息快协议),用于在计算机间共享文件、打印机、串口等,电脑上的网上邻居由它实现。SMB签名是SMB协议中的安全机制,也称为安全签名。SMB签名旨在帮助提高SMB协议的安全性,为了防止在传输过程中修改SMB数据包,SMB协议支持SMB数据包的数字签名。所有Windows操作系统都支持客户端SMB组件和服务器端SMB组件。要利用SMB数据包签名,通信中涉及的客户端SMB组件和服务器端SMB组件必须启用或需要SMB数据包签名。如果服务器启用此设置,Microsoft网络服务器将不与Microsoft网络客户端通信,除非该客户端同意执行SMB数据包签名。同样,如果需要客户端SMB签名,则该客户端将无法与未启用数据包签名的服务器建立会话。默认情况下,在工作站,服务器和域控制器上启用客户端SMB签名。
  SMB签名在性能上有一些权衡。如果网络性能对部署方案很重要,建议您不要使用SMB签名;如果要在高度安全的环境中使用SMB,建议您使用SMB签名。当启用SMB签名时,SMB将停止使用RDMA远程直接数据存取,因为最大MTU限制为1,394字节,这会导致邮件碎片和重组,并降低整体性能。

1.3 漏洞危害

  SMB服务上不需要签名。未经身份验证的远程攻击者可以利用此攻击对SMB服务器进行中间人攻击。

1.4 漏洞监测方式

在可以访问自己的服务器的客户端,用nmap扫描一下服务器的ip:

# 返回有关SMB确定的SMB安全级别的信息 
nmap -sS -sV -Pn -p 445 --script="smb-security-mode" <你的服务器的ip>
# 确定SMBv2服务器中的邮件签名配置 
nmap -sS -sV -Pn -p 445 --script="smb2-security-mode" <你的服务器的ip>

如果出现下图所示Message signing enabled but not required,说明存在漏洞:

在这里插入图片描述

二、漏洞解决方案

我参考的那篇博客的服务器是windows服务器,而我的是Truenas Scale,系统是Debian。

所以接下来详细讲一下 TrueNas Scale 中的修复方法。

2.1 打开 TrueNas Scale 管理界面的命令行

在这里插入图片描述

2.2 找到 smb 服务的配置文件

配置文件的文件名往往是 smb.conf,或者smb4.conf。它所在的目录是/etc

可以用如下指令查找:

find /etc/ -name "smb*"

在这里插入图片描述

我的是smb4.conf

2.3 编辑配置文件

使用nano打开配置文件:

nanno /etc/smb4.conf

找到或添加以下行到[global]部分中

server signing = mandatory

该行配置了强制要求所有的客户端使用消息签名进行通信。如果客户端不支持消息签名,则无法连接到SMB服务。注意,该配置只能与SMBv3一起使用。

保存并关闭文件。

2.4 重新启动Samba服务以使更改生效

sudo systemctl restart smbd

现在,SMB服务应该已经配置为强制要求客户端使用消息签名进行通信。请注意,如果你的客户端不支持消息签名,它将无法连接到SMB服务。在这种情况下,你需要升级客户端以支持消息签名,或者将SMB服务配置为不要求使用消息签名。

2.5 再次检查漏洞是否存在

# 返回有关SMB确定的SMB安全级别的信息 
nmap -sS -sV -Pn -p 445 --script="smb-security-mode" <你的服务器的ip>
# 确定SMBv2服务器中的邮件签名配置 
nmap -sS -sV -Pn -p 445 --script="smb2-security-mode" <你的服务器的ip>

在这里插入图片描述

解决了。


http://www.ppmy.cn/news/46826.html

相关文章

git --- git tag用法

1 什么是tag tag是git版本库的一个标记,指向某个commit的指针。 tag主要用于发布版本的管理,一个版本发布之后,我们可以为git打上 v.1.0.1 v.1.0.2 …这样的标签。 tag感觉跟branch有点相似,但是本质上和分工上是不同的: tag 对应某次commit, 是一个点,是不可移动的。 b…

动态代理入门必看

基本介绍 代理 就是让代理角色帮助真实角色完成一件事情。比如说&#xff0c;我叫我们朋友帮我完成博客&#xff0c;那么这个朋友就是代理&#xff0c;朋友不是我&#xff0c;但是和我完成同样的事&#xff0c;并且还可以对这件事加入他的行为逻辑。 不论是什么代理方法&…

1.docker-安装及使用

1.安装步骤 Install Docker Engine on CentOS 1. 确定CenOS7及以上版本 cat /etc/redhat-release2.卸载旧版本 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine3.yum安…

HuggingGPT强势来袭,LLM+专家模型,迈向更通用的AI

出品人&#xff1a;Towhee 技术团队 超级组合&#xff1a;HuggingFace ChatGPT HuggingGPT强势来袭。人类仿佛距离真正的AGI又更近了一步。 HuggingGPT是浙江大学与微软亚洲研究院的联手研究&#xff0c;发布之后迅速引发关注&#xff0c;已经开源。 它的使用非常简单&#x…

【密码学复习】第六讲 HASH函数和MAC(三)

H是一个Hash函数 K表示密钥 B表示计算消息摘要时消息分块的字节长度&#xff08;对MD5和SHA-1是512比特,64字节&#xff09; L表示消息摘要按字节计算的长度&#xff08;对MD5是16字节&#xff09; ipad表示0x36重复B次&#xff0c;opad表示0x5c重复B次。 K可以…

有关WPF的一些事

RaisePropertyChanged和OnPropertyChanged的区别 WPF中&#xff0c;数据绑定是实现MVVM模式的关键。在数据绑定的过程中&#xff0c;我们需要在数据发生变化时及时通知UI更新。为了实现这个功能&#xff0c;WPF提供了两个重要的方法&#xff1a;WPFRaisePropertyChanged和OnPr…

逆向-还原代码之(*point)[4]和char *point[4] (Interl 32)

// source code #include <stdio.h> #include <string.h> #include <stdlib.h> /* * char (*point)[4] // 数组指针。 a[3][4] // 先申明二维数组,用它来指向这个二维数组 * char *point[4] // 指针数组。 a[4][5] // 一连串的指针…

flac格式如何转换为mp3,这3个方法超好用

随着音频格式的不断创新和发展&#xff0c;每种格式对应不同的特点。比如像flac格式可以提供无损音质的体验&#xff0c;但它的文件大小却是相对较大&#xff0c;不太适合在普通设备上进行传输和使用。而mp3作为一种流行的音频格式&#xff0c;它的压缩率较高&#xff0c;不但可…