新聞中心
Samba 很久以來(lái)一直是為 *nix 系統(tǒng)上的 Windows 客戶端提供共享文件和打印服務(wù)的標(biāo)準(zhǔn)。家庭用戶,中型企業(yè)和大型公司都在使用它,它作為最佳解決方案在多種操作系統(tǒng)共存的環(huán)境中脫穎而出。

創(chuàng)新互聯(lián)自成立以來(lái),一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、成都做網(wǎng)站、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開(kāi)發(fā)等基于互聯(lián)網(wǎng)的全面整合營(yíng)銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開(kāi)發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開(kāi)發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。
由于廣泛使用的工具很可能發(fā)生這種情況,大多數(shù) Samba 安裝都面臨著可能利用已知漏洞的攻擊的風(fēng)險(xiǎn),這個(gè)漏洞直到 WannaCry 勒索軟件攻擊的新聞出來(lái)之前都被認(rèn)為是不重要的。
在本文中,我們將解釋這個(gè) Samba 漏洞是什么以及如何保護(hù)你負(fù)責(zé)的系統(tǒng)。根據(jù)你的安裝類型(從倉(cāng)庫(kù)或者源碼),你需要采取不同的方法。
如果你目前有在任何環(huán)境中使用 Samba 或者知道有人在使用,請(qǐng)繼續(xù)閱讀!
漏洞
過(guò)時(shí)和未修補(bǔ)的系統(tǒng)容易受到遠(yuǎn)程代碼執(zhí)行漏洞的攻擊。簡(jiǎn)單來(lái)說(shuō),這意味著訪問(wèn)可寫共享的人可以上傳一段任意代碼,并使用服務(wù)器中的 root 權(quán)限執(zhí)行該代碼。
這個(gè)問(wèn)題在 Samba 網(wǎng)站上被描述為 CVE-2017-7494,并且已知會(huì)影響 Samba v3.5(2010 年 3 月初發(fā)布)及以后版本。由于與 WannaCry 有相似之處,它被非官方地被命名為 SambaCry:它們均針對(duì) SMB 協(xié)議,并且可能是蠕蟲(chóng)病毒 - 這可能導(dǎo)致其從一個(gè)系統(tǒng)傳播到另一個(gè)系統(tǒng)中。
Debian、Ubuntu、CentOS 和 Red Hat 已采取快速的行動(dòng)來(lái)保護(hù)它們的用戶,并為其支持的版本發(fā)布了補(bǔ)丁。另外,還提供了不受支持的安全臨時(shí)解決方案。
更新 Samba
如先前提到的那樣,根據(jù)你之前安裝的方法有兩種方式更新:
如果你從發(fā)行版的倉(cāng)庫(kù)中安裝的 Samba
讓我們看下在這種情況下你需要做什么:
在 Debian 下修復(fù) SambaCry
添加下面的行到你的源列表中(/etc/apt/sources.list)以確保 apt 能夠獲得最新的安全更新:
deb http://security.debian.org stable/updates main
deb-src http://security.debian.org/ stable/updates main
接下來(lái),更新可用的軟件包:
# aptitude update
最后,確保 samba 軟件包的版本符合漏洞修復(fù)的版本(見(jiàn) CVE-2017-7494):
# aptitude show samba
在 Debian 中修復(fù) SambaCry
在 Ubuntu 中修復(fù) SambaCry
要開(kāi)始修復(fù),如下檢查新的可用軟件包并更新 Samba 軟件包:
$ sudo apt-get update
$ sudo apt-get install samba
已經(jīng)修復(fù) 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
最后,運(yùn)行下面命令驗(yàn)證你的 Ubuntu 已經(jīng)安裝了正確的版本。
$ sudo apt-cache show samba
在 CentOS/RHEL 7 中修復(fù) SambaCry
在 EL 7 中打過(guò)補(bǔ)丁的 Samba 版本是 samba-4.4.4-14.el7_3。要安裝它,這些做:
# yum makecache fast
# yum update samba
像先前那樣,確保你已經(jīng)安裝了打補(bǔ)丁的 Samba 版本:
# yum info samba
在 CentOS 中修復(fù) SambaCry
舊支持的 CentOS 以及 RHEL 更老的版本也有修復(fù)。參見(jiàn) RHSA-2017-1270 獲取更多。
如果你從源碼安裝的 Samba
注意:下面的過(guò)程假設(shè)你先前從源碼構(gòu)建的 Samba。強(qiáng)烈建議你在部署到生產(chǎn)服務(wù)器之前先在測(cè)試環(huán)境嘗試。
此外,開(kāi)始之前確保你備份了 smb.conf 文件。
在這種情況下,我們也會(huì)從源碼編譯并更新 Samba。然而在開(kāi)始之前,我們必須先確保安裝了所有的依賴。注意這也許會(huì)花費(fèi)幾分鐘。
在 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
停止服務(wù)(LCTT 譯注:此處不必要):
# systemctl stop smbd
下載并解壓源碼(在寫作時(shí) 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
出于了解信息的目的,用以下命令檢查可用的配置選項(xiàng)。
# ./configure --help
如果你在先前的版本的構(gòu)建中有使用到一些選項(xiàng),你或許可以在上面命令的返回中包含一些選項(xiàng),或者你可以選擇使用默認(rèn)值:
# ./configure
# make
# make install
最后重啟服務(wù)。
# systemctl restart smbd
并驗(yàn)證你正在使用的是更新后的版本:
# smbstatus --version
這里返回的應(yīng)該是 4.6.4。
其它情況
如果你使用的是不受支持的發(fā)行版本,并且由于某些原因無(wú)法升級(jí)到最新版本,你或許要考慮下面這些建議:
- 如果 SELinux 是啟用的,你是處于保護(hù)之下的!
- 確保 Samba 共享是用
noexec選項(xiàng)掛載的。這會(huì)阻止二進(jìn)制文件從被掛載的文件系統(tǒng)中執(zhí)行。
還有將:
nt pipe support = no
添加到 smb.conf 的 [global] 字段中。你或許要記住,根據(jù) Samba 項(xiàng)目,這“或許禁用 Windows 客戶端的某些功能”。
重要:注意 nt pipe support = no 選項(xiàng)會(huì)禁用 Windows 客戶端的共享列表。比如:當(dāng)你在一臺(tái) Samba 服務(wù)器的 Windows Explorer 中輸入 \\10.100.10.2\ 時(shí),你會(huì)看到 “permission denied”。Windows 客戶端不得不手動(dòng)執(zhí)行共享,如 \\10.100.10.2\share_name 來(lái)訪問(wèn)共享。
總結(jié)
在本篇中,我們已經(jīng)描述了 SambaCry 漏洞以及如何減輕影響。我們希望你可以使用這個(gè)信息來(lái)保護(hù)你負(fù)責(zé)的系統(tǒng)。
如果你有關(guān)于這篇文章的任何提問(wèn)以及評(píng)論,歡迎使用下面的評(píng)論欄讓我們知道。
Gabriel Cánepa 是一名 GNU/Linux 系統(tǒng)管理員,阿根廷圣路易斯 Villa Mercedes 的 web 開(kāi)發(fā)人員。他為一家國(guó)際大型消費(fèi)品公司工作,在日常工作中使用 FOSS 工具以提高生產(chǎn)力,并從中獲得極大樂(lè)趣。
標(biāo)題名稱:Linux系統(tǒng)中修復(fù)SambaCry漏洞(CVE-2017-7494)
網(wǎng)址分享:http://www.dlmjj.cn/article/dhhiopp.html


咨詢
建站咨詢
