Linux 系统中修复 SambaCry 漏洞(CVE-2017-7494)

Samba 很久以来一直是为 *nix 系统上的 Windows 客户端提供共享文件和打印服务的标准。家庭用户,中型企业和大型公司都在使用它,它作为最佳解决方案在多种操作系统共存的环境中脱颖而出。

由于广泛使用的工具很可能发生这种情况,大多数 Samba 安装都面临着可能利用已知漏洞的攻击的风险,这个漏洞直到 WannaCry 勒索软件攻击的新闻出来之前都被认为是不重要的。

在本文中,我们将解释这个 Samba 漏洞是什么以及如何保护你负责的系统。根据你的安装类型(从仓库或者源码),你需要采取不同的方法。

如果你目前有在任何环境中使用 Samba 或者知道有人在使用,请继续阅读!

漏洞

过时和未修补的系统容易受到远程代码执行漏洞的攻击。简单来说,这意味着访问可写共享的人可以上传一段任意代码,并使用服务器中的 root 权限执行该代码。

这个问题在 Samba 网站上被描述为 CVE-2017-7494,并且已知会影响 Samba v3.5(2010 年 3 月初发布)及以后版本。由于与 WannaCry 有相似之处,它被非官方地被命名为 SambaCry:它们均针对 SMB 协议,并且可能是蠕虫病毒 – 这可能导致其从一个系统传播到另一个系统中。

Debian、Ubuntu、CentOS 和 Red Hat 已采取快速的行动来保护它们的用户,并为其支持的版本发布了补丁。另外,还提供了不受支持的安全临时解决方案。

更新 Samba

如先前提到的那样,根据你之前安装的方法有两种方式更新:

如果你从发行版的仓库中安装的 Samba

让我们看下在这种情况下你需要做什么:

在 Debian 下修复 SambaCry

添加下面的行到你的源列表中(/etc/apt/sources.list)以确保 apt 能够获得最新的安全更新:

deb http://security.debian.org stable/updates main
deb-src http://security.debian.org/ stable/updates main

接下来,更新可用的软件包:

# aptitude update

最后,确保 samba 软件包的版本符合漏洞修复的版本(见 CVE-2017-7494):

# aptitude show samba

在 Debian 中修复 SambaCry

在 Ubuntu 中修复 SambaCry

要开始修复,如下检查新的可用软件包并更新 Samba 软件包:

$ sudo apt-get update
$ sudo apt-get install samba

已经修复 CVE-2017-7494 的 Samba 版本有下面这些:

  • 17.04: samba 2:4.5.8+dfsg-0ubuntu0.17.04.2

  • 16.10: samba 2:4.4.5+dfsg-2ubuntu5.6

  • 16.04 LTS: samba 2:4.3.11+dfsg-0ubuntu0.16.04.7

  • 14.04 LTS: samba 2:4.3.11+dfsg-0ubuntu0.14.04.8

最后,运行下面命令验证你的 Ubuntu 已经安装了正确的版本。

$ sudo apt-cache show samba

在 CentOS/RHEL 7 中修复 SambaCry

在 EL 7 中打过补丁的 Samba 版本是 samba-4.4.4-14.el7_3。要安装它,这些做:

# yum makecache fast
# yum update samba

像先前那样,确保你已经安装了打补丁的 Samba 版本:

# yum info samba

在 CentOS 中修复 SambaCry

旧支持的 CentOS 以及 RHEL 更老的版本也有修复。参见 RHSA-2017-1270 获取更多。

如果你从源码安装的 Samba

注意:下面的过程假设你先前从源码构建的 Samba。强烈建议你在部署到生产服务器之前先在测试环境尝试。

此外,开始之前确保你备份了 smb.conf 文件。

在这种情况下,我们也会从源码编译并更新 Samba。然而在开始之前,我们必须先确保安装了所有的依赖。注意这也许会花费几分钟。

在 Debian 和 Ubuntu 中:

# aptitude install acl attr autoconf bison build-essential \
debhelper dnsutils docbook-xml docbook-xsl flex gdb krb5-user \
libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev \
libcap-dev libcups2-dev libgnutls28-dev libjson-perl \
libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl \
libpopt-dev libreadline-dev perl perl-modules pkg-config \
python-all-dev python-dev python-dnspython python-crypto xsltproc \
zlib1g-dev libsystemd-dev libgpgme11-dev python-gpgme python-m2crypto

在 CentOS 7 或相似的版本中:

# yum install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \
libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \
perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \
python-crypto gnutls-devel libattr-devel keyutils-libs-devel \
libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \
pam-devel popt-devel python-devel readline-devel zlib-devel

停止服务(LCTT 译注:此处不必要):

# systemctl stop smbd

下载并解压源码(在写作时 4.6.4 是最新的版本):

# wget https://www.samba.org/samba/ftp/samba-latest.tar.gz 
# tar xzf samba-latest.tar.gz
# cd samba-4.6.4

出于了解信息的目的,用以下命令检查可用的配置选项。

# ./configure --help

如果你在先前的版本的构建中有使用到一些选项,你或许可以在上面命令的返回中包含一些选项,或者你可以选择使用默认值:

# ./configure
# make
# make install

最后重启服务。

# systemctl restart smbd

并验证你正在使用的是更新后的版本:

# smbstatus --version

这里返回的应该是 4.6.4。

其它情况

如果你使用的是不受支持的发行版本,并且由于某些原因无法升级到最新版本,你或许要考虑下面这些建议:

  • 如果 SELinux 是启用的,你是处于保护之下的!
  • 确保 Samba 共享是用 noexec 选项挂载的。这会阻止二进制文件从被挂载的文件系统中执行。

还有将:

nt pipe support = no

添加到 smb.conf[global] 字段中。你或许要记住,根据 Samba 项目,这“或许禁用 Windows 客户端的某些功能”。

重要:注意 nt pipe support = no 选项会禁用 Windows 客户端的共享列表。比如:当你在一台 Samba 服务器的 Windows Explorer 中输入 \\10.100.10.2\ 时,你会看到 “permission denied”。Windows 客户端不得不手动执行共享,如 \\10.100.10.2\share_name 来访问共享。

总结

在本篇中,我们已经描述了 SambaCry 漏洞以及如何减轻影响。我们希望你可以使用这个信息来保护你负责的系统。

如果你有关于这篇文章的任何提问以及评论,欢迎使用下面的评论栏让我们知道。


Gabriel Cánepa 是一名 GNU/Linux 系统管理员,阿根廷圣路易斯 Villa Mercedes 的 web 开发人员。他为一家国际大型消费品公司工作,在日常工作中使用 FOSS 工具以提高生产力,并从中获得极大乐趣。


文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/223595.html<

(0)
运维的头像运维
上一篇2025-04-16 01:08
下一篇 2025-04-16 01:09

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注