Fedora安裝后需要做的第一件事
一直以來(lái),Red Hat 系的許多教程,都會(huì)建議你關(guān)閉 SELinux。確實(shí),啟用 SELinux 可能會(huì)造成許多莫名其妙的錯(cuò)誤。但在實(shí)際生產(chǎn)環(huán)境,甚至是用戶工作站,Red Hat 都建議將 SELinux 設(shè)為 enforcing 模式,因?yàn)樗陉P(guān)鍵時(shí)候可以成為你系統(tǒng)安全的***一道防線。
程序是不可信的
技術(shù)的發(fā)展日新月異,我們的系統(tǒng)安全卻不容樂(lè)觀。wooyun.org時(shí)不時(shí)爆出的各種漏洞,都在提醒我們程序總是存在缺陷的。
傳統(tǒng)的操作系統(tǒng)采用 DAC 機(jī)制,它針對(duì)用戶進(jìn)行訪問(wèn)控制,系統(tǒng)會(huì)信任用戶執(zhí)行的所有程序,但往往用戶無(wú)法判斷程序是否存在安全問(wèn)題。
后來(lái),出現(xiàn)了 MAC 機(jī)制,它以進(jìn)程為訪問(wèn)控制的首要目標(biāo),通過(guò)規(guī)則嚴(yán)格限制程序運(yùn)行時(shí)可以執(zhí)行的系統(tǒng)調(diào)用。
另外,在保密級(jí)別較高的地方,根據(jù)資源的機(jī)密程度結(jié)合 MAC 又衍生出了 MLS 多級(jí)安全策略。
我們的主角 SELinux 是 MAC+MLS 的實(shí)現(xiàn)方案之一,它最初由 NSA 基于 flask 框架開(kāi)發(fā),目前主要由 Tresys 和 Red Hat 進(jìn)行維護(hù)。
用戶與隱私
自 1987 年 9 月 20 日,CANET 向世界發(fā)出***封 E-mail 為標(biāo)志,互聯(lián)網(wǎng)正式進(jìn)入中國(guó)大陸。截至 2015 年 6 月,我國(guó)網(wǎng)民已達(dá)到 6.68 億人。隨著網(wǎng)絡(luò)的發(fā)展,隱私與安全一直是大受關(guān)注的話題?,F(xiàn)在,隨便什么應(yīng)用/網(wǎng)站都需要注冊(cè),各種客戶端都提供網(wǎng)絡(luò)連接功能。在不知不覺(jué)中,你的聯(lián)系人,朋友圈都展示在了網(wǎng)上??梢载?fù)責(zé)任的說(shuō),在互聯(lián)網(wǎng)面前,我們每個(gè)人都沒(méi)有隱私。
保護(hù)個(gè)人隱私是一個(gè)系統(tǒng)工程。它需要可信的硬件/固件,可信的操作系統(tǒng),可信的應(yīng)用程序,可信的網(wǎng)絡(luò)環(huán)境,可信的用戶。
◆硬件方面:X86、Arm 體系就是事實(shí)的工業(yè)標(biāo)準(zhǔn),但目前沒(méi)有可信的第三方機(jī)構(gòu)進(jìn)行評(píng)估。
◆系統(tǒng)方面:盡量使用開(kāi)源操作系統(tǒng),Open Source 可以確保系統(tǒng)沒(méi)有惡意行為。
早在 1985 年,美國(guó)國(guó)防部公布了 可信計(jì)算機(jī)系統(tǒng)評(píng)估標(biāo)準(zhǔn),該標(biāo)準(zhǔn)將計(jì)算機(jī)系統(tǒng)分為 A(A1), B(B3 B2 B1), C(C2 C1), D(D1) 四個(gè)等級(jí),共7個(gè)級(jí)別。沒(méi)有 SELinux 的 Linux 和 Windows 一樣都處于 C2 級(jí)別。
◆應(yīng)用程序:盡量使用開(kāi)源軟件,閉源軟件或多或少都會(huì)侵犯用戶隱私。
◆網(wǎng)絡(luò)方面:盡量不訪問(wèn)/注冊(cè)來(lái)歷不明的網(wǎng)站,盡量不使用公共 Wifi。事實(shí)上,個(gè)人無(wú)法控制運(yùn)營(yíng)商的行為。
◆用戶方面:用戶對(duì)于隱私保護(hù)有最重要的作用。俗話說(shuō)得好,“機(jī)器是死的,人是活的“。只有用戶養(yǎng)成了良好的習(xí)慣,才能保護(hù)好隱私。切勿抱有”我的信息并沒(méi)有什么卵用“的僥幸心理。
SELinux 與隱私保護(hù)
SELinux 為系統(tǒng)提供了額外的一層保護(hù),能夠在一定程度上防止隱私泄露。這里提一下基本概念, SELinux 是基于標(biāo)簽的強(qiáng)制訪問(wèn)控制系統(tǒng)。所有系統(tǒng)資源都包含標(biāo)簽上下文,只有進(jìn)程標(biāo)簽符合訪問(wèn)對(duì)象(文件/socket/dbus…)的標(biāo)簽,才允許進(jìn)程訪問(wèn)該資源。而標(biāo)簽又關(guān)聯(lián)了一系列角色(role),角色又關(guān)聯(lián)了一系列 SELinux user。通過(guò)將 SELinux user 與 Linux user 關(guān)聯(lián),該用戶就具有了這些標(biāo)簽。此時(shí),用戶執(zhí)行的程序就都處于這些標(biāo)簽規(guī)則的限制范圍了。
在 Fedora 中,默認(rèn)用戶關(guān)聯(lián) unconfined_t 標(biāo)簽,該標(biāo)簽是***制的,相當(dāng)于未啟用 SELinux。這主要為了兼容性考慮,targeted 規(guī)則僅限制網(wǎng)絡(luò)相關(guān)應(yīng)用。Red Hat 建議用戶關(guān)聯(lián)非 unconfined_t 標(biāo)簽來(lái)提高安全性。
1.配置賬戶映射 SELinux user。
- $ sudo semanage login -a -s staff_u -r s0:c0.c1023 Jone
2.配置 sudo,指定需要轉(zhuǎn)換的 ROLE/TYPE。
- $ sudo echo "Jone ALL=(ALL) TYPE=unconfined_t ROLE=unconfined_r ALL" >> /etc/sudoers.d/Jone
3.對(duì) home 目錄重新進(jìn)行標(biāo)記,并重啟。
- $ restorecon -R -v /home/Jone
4.現(xiàn)在你的登陸 shell 就是以 staff_u 用戶運(yùn)行。
- $ id -Z
- staff_u:staff_r:staff_t:s0-s0:c0.c1023
5.如果你需要執(zhí)行系統(tǒng)管理操作,可使用 sudo 進(jìn)行提權(quán),這和原來(lái)一模一樣。
- $ sudo id -Z
- staff_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
廣告
***,插播廣告。Fedora 社區(qū)源正在使用 SELinux 加固軟件,目前已完成了 sogoupinyin。
安裝 sogoupinyin SELinux 模塊,禁止 sogou 訪問(wèn)網(wǎng)絡(luò):
- $ sudo dnf install sogoupinyin sogoupinyin-selinux
- $ sudo setsebool -P sogou_access_network=0
【編輯推薦】