Linux中國

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

Fix Sambacry in Debian

在 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

Fix Sambacry in CentOS

在 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.2share_name 來訪問共享。

總結

在本篇中,我們已經描述了 SambaCry 漏洞以及如何減輕影響。我們希望你可以使用這個信息來保護你負責的系統。

如果你有關於這篇文章的任何提問以及評論,歡迎使用下面的評論欄讓我們知道。

作者簡介:

Gabriel Cánepa 是一名 GNU/Linux 系統管理員,阿根廷聖路易斯 Villa Mercedes 的 web 開發人員。他為一家國際大型消費品公司工作,在日常工作中使用 FOSS 工具以提高生產力,並從中獲得極大樂趣。

via: https://www.tecmint.com/fix-sambacry-vulnerability-cve-2017-7494-in-linux/

作者:Gabriel Cánepa 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國