2021-05-12 14:32:11
Fedora基礎教學:安裝後必須要做的工作
一直以來,Red Hat 系的許多教學,都會建議你關閉 SELinux。確實,啟用 SELinux 可能會造成許多莫名其妙的錯誤。但在實際生產環境,甚至是使用者工作站,Red Hat 都建議將 SELinux 設為 enforcing 模式,因為它在關鍵時候可以成為你系統安全的最後一道防線。
程式是不可信的
技術的發展日新月異,我們的系統安全卻不容樂觀。時不時爆出的各種漏洞,都在提醒我們程式總是存在缺陷的。
傳統的作業系統採用 DAC 機制,它針對使用者進行存取控制,系統會信任使用者執行的所有程式,但往往使用者無法判斷程式是否存在安全問題。
後來,出現了 MAC 機制,它以進程為存取控制的首要目標,通過規則嚴格限制程式執行時可以執行的系統呼叫。
另外,在保密級別較高的地方,根據資源的機密程度結合 MAC 又衍生出了 MLS 多級安全策略。
我們的主角 SELinux 是 MAC+MLS 的實現方案之一,它最初由 NSA 基於 flask 框架開發,目前主要由 Tresys 和 Red Hat 進行維護。
使用者與隱私
自 1987 年 9 月 20 日,CANET 向世界發出第一封 E-mail 為標誌,網際網路正式進入中國大陸。截至 2015 年 6 月,我國網友已達到 6.68 億人。隨著網路的發展,隱私與安全一直是大受關注的話題。現在,隨便什麼應用/網站都需要註冊,各種用戶端都提供網路連線功能。在不知不覺中,你的聯絡人,朋友圈都展示在了網上。可以負責任的說,在網際網路面前,我們每個人都沒有隱私。
保護個人隱私是一個系統工程。它需要可信的硬體/韌體,可信的作業系統,可信的應用程式,可信的網路環境,可信的使用者。
◆硬體方面:X86、Arm 體系就是事實的工業標準,但目前沒有可信的第三方機構進行評估。
◆系統方面:盡量使用開源作業系統,Open Source 可以確保系統沒有惡意行為。
早在 1985 年,美國國防部公布了 可信計算機系統評估標準,該標準將計算機系統分為 A(A1), B(B3 B2 B1), C(C2 C1), D(D1) 四個等級,共7個級別。沒有 SELinux 的 Linux 和 Windows 一樣都處於 C2 級別。
◆應用程式:盡量使用開源軟體,閉源軟體或多或少都會侵犯使用者隱私。
◆網路方面:盡量不存取/註冊來歷不明的網站,盡量不使用公共 Wifi。事實上,個人無法控制運營商的行為。
◆使用者方面:使用者對於隱私保護有最重要的作用。俗話說得好,“機器是死的,人是活的“。只有使用者養成了良好的習慣,才能保護好隱私。切勿抱有”我的資訊並沒有什麼卵用“的僥倖心理。
SELinux 與隱私保護
SELinux 為系統提供了額外的一層保護,能夠在一定程度上防止隱私洩露。這裡提一下基本概念, SELinux 是基於標籤的強制存取控制系統。所有系統資源都包含標籤上下文,只有進程標籤符合存取物件(檔案/socket/dbus…)的標籤,才允許進程存取該資源。而標籤又關聯了一系列角色(role),角色又關聯了一系列 SELinux user。通過將 SELinux user 與 Linux user 關聯,該使用者就具有了這些標籤。此時,使用者執行的程式就都處於這些標籤規則的限制範圍了。
在 Fedora 中,預設使用者關聯 unconfined_t 標籤,該標籤是無限制的,相當於未啟用 SELinux。這主要為了相容性考慮,targeted 規則僅限制網路相關應用。Red Hat 建議使用者關聯非 unconfined_t 標籤來提高安全性。
1.設定賬戶對映 SELinux user。
- $ sudo semanage login -a -s staff_u -r s0:c0.c1023 Jone
2.設定 sudo,指定需要轉換的 ROLE/TYPE。
- $ sudo echo "Jone ALL=(ALL) TYPE=unconfined_t ROLE=unconfined_r ALL" >> /etc/sudoers.d/Jone
3.對 home 目錄重新進行標記,並重新啟動。
- $ restorecon -R -v /home/Jone
4.現在你的登陸 shell 就是以 staff_u 使用者執行。
- $ id -Z
- staff_u:staff_r:staff_t:s0-s0:c0.c1023
5.如果你需要執行系統管理操作,可使用 sudo 進行提權,這和原來一模一樣。
- $ sudo id -Z
- staff_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
安裝 sogoupinyin SELinux 模組,禁止 sogou 存取網路:
- $ sudo dnf install sogoupinyin sogoupinyin-selinux
- $ sudo setsebool -P sogou_access_network=0
Linux系統入門學習:教你在VirtualBox 安裝 Fedora 22 http://www.linuxidc.com/Linux/2015-08/121808.htm
更多Fedora相關資訊見Fedora 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=5
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-11/125192.htm
相關文章