在 Linux 環境中,系統安全設定至關重要,特別是針對 Debian 衍生發行版。本文探討如何強化 Debian 系統的安全性,涵蓋檔案系統組態、分割區規劃以及 /tmp 和 /var/tmp 等關鍵目錄的防護。我們將詳細說明如何設定 nodev、nosuid 和 noexec 等掛載選項,以限制潛在的惡意活動,並提供實際操作範例和檢查方法,確保系統管理員能有效提升系統的安全性。
Debian 衍生 Linux 系統安全設定概述
本檔案提供了針對在 x86 和 x64 平台上執行的 Debian 衍生 Linux 系統建立安全組態姿勢的規範性指導。文中提供的命令和指令碼應適用於大多數 Debian 衍生 Linux 發行版,但可能需要在某些地方進行本地化調整。
預期讀者
本基準主要針對系統和應用管理員、安全專家、稽核人員、幫助台以及計劃開發、佈署、評估或保護在 x86 或 x64 平台上整合 Debian 衍生 Linux 系統的平台佈署人員。
共識指導過程
本基準是透過由相關領域專家組成的共識審查過程建立的。共識參與者來自多元化的背景,包括諮詢、軟體開發、稽核和合規、安全研究、營運、政府和法律。
共識審查流程分為兩個階段:
- 初始基準開發階段:在這一階段,相關領域專家聚集討論、建立和測試基準草案,直到達成共識。
- 基準發布後階段:在這一階段,共識團隊會審查網路社群提供的所有反饋,以確定是否將其納入基準中。
檔案中使用到的版面格式慣例
- 程式碼區塊:使用特殊樣式的等寬字型表示,內容應按照所呈現的精確格式進行解讀。
- 內嵌程式碼或命令:使用等寬字型表示,同樣需要按照所呈現的精確格式進行解讀。
- 變數:使用斜體字並置於尖括號中,表示需要替換為真實值的變數。
- 出版物標題:使用斜體字表示。
設定檔規範定義
本基準定義了以下幾種設定檔規範:
- Level 1 - Server:適用於伺服器,旨在提供清晰的安全效益,同時不過度限制技術的可用性。
- Level 2 - Server:擴充套件了「Level 1 - Server」設定檔,適用於對安全性要求極高的環境或使用案例,可能會對技術的效用或效能產生負面影響。
- Level 1 - Workstation:適用於工作站,同樣旨在提供清晰的安全效益,同時不過度限制技術的可用性。
- Level 2 - Workstation:擴充套件了「Level 1 - Workstation」設定檔,同樣適用於對安全性要求極高的環境或使用案例,可能會對技術的效用或效能產生負面影響。
評估狀態
每項建議都包含評估狀態,用於指示該建議是否可以自動化評估或需要手動步驟來實施。評估狀態分為「自動化」和「手動」兩種。
自動化
代表可以完全透過自動化方式評估技術控制措施並驗證其是否透過或失敗的建議。
手動
代表無法完全透過自動化方式評估技術控制措施,需要全部或部分手動步驟來驗證組態狀態是否符合預期的建議。
重點整理與未來趨勢
根據檔案內容,未來 Linux 系統的安全設定將更加趨向於自動化與客製化。系統管理員需要更深入地瞭解不同設定檔規範之間的差異,以選擇最適合其組織需求的安全組態。同時,隨著新興技術的發展,如何在保持系統安全性的同時兼顧其可用性和效能,將成為未來的重要挑戰。
內容解密:
本段落主要闡述了檔案的主要內容和結構,包括預期讀者、共識指導過程、版面格式慣例、設定檔規範定義和評估狀態等。同時,也對未來 Linux 系統的安全設定趨勢進行了分析和預測。這些資訊對於系統管理員和安全專家來說具有重要的參考價值,可以幫助他們更好地理解和實施 Debian 衍生 Linux 系統的安全組態。
加強 Linux 系統安全:檔案系統組態與最佳實踐
在現代 IT 環境中,Linux 系統因其穩定性、安全性和靈活性而被廣泛應用於伺服器和工作站。為了確保系統的安全性,正確組態檔案系統至關重要。本文將探討 Linux 檔案系統組態的最佳實踐,並提供具體的安全強化措施。
為何檔案系統組態如此重要?
將系統目錄和使用者資料分開存放在不同的分割區(partition)上,可以有效防止資源耗盡攻擊,並允許根據不同目錄的使用目的採用適當的掛載選項。這種做法不僅提高了系統的安全性,也增強了資料管理的靈活性。
1.1.1 停用未使用的檔案系統
Linux 支援多種檔案系統,但並非所有系統都需要這些檔案系統。停用不必要的檔案系統型別可以減少系統的本地攻擊面。對於非原生 Linux 檔案系統,應謹慎使用,因為它們可能導致意外的安全和功能問題。
1.1.1.1 確保停用 cramfs 檔案系統的掛載
描述:
cramfs 是一種壓縮的唯讀 Linux 檔案系統,常用於嵌入式系統。
安全理由:
移除對不必要檔案系統型別的支援可以減少伺服器的本地攻擊面。
稽核方法:
# modprobe -n -v cramfs | grep -E '(cramfs|install)'
install /bin/true
# lsmod | grep cramfs
<No output>
修復措施:
- 編輯或建立
/etc/modprobe.d/cramfs.conf檔案,並新增以下行:install cramfs /bin/true - 執行以下命令解除安裝 cramfs 模組:
# rmmod cramfs
1.1.1.2 確保停用 freevxfs 檔案系統的掛載
描述:
freevxfs 是 Veritas 檔案系統的免費版本,主要用於 HP-UX 系統。
安全理由:
停用不必要的檔案系統型別可減少系統的本地攻擊面。
稽核方法:
# modprobe -n -v freevxfs | grep -E '(freevxfs|install)'
install /bin/true
# lsmod | grep freevxfs
<No output>
修復措施:
- 編輯或建立
/etc/modprobe.d/freevxfs.conf檔案,並新增以下行:install freevxfs /bin/true - 執行以下命令解除安裝 freevxfs 模組:
# rmmod freevxfs
1.1.1.3 確保停用 jffs2 檔案系統的掛載
描述:
jffs2 是一種用於快閃記憶體裝置的日誌結構檔案系統。
安全理由:
移除不必要的檔案系統支援可降低系統的本地攻擊風險。
稽核方法:
# modprobe -n -v jffs2 | grep -E '(jffs2|install)'
install /bin/true
# lsmod | grep jffs2
<No output>
修復措施:
- 編輯或建立
/etc/modprobe.d/jffs2.conf檔案,並新增以下行:install jffs2 /bin/true - 執行以下命令解除安裝 jffs2 模組:
# rmmod jffs2
安全組態的最佳實踐
根據 CIS Controls v7 的建議,維護標準化的安全組態對於所有授權的作業系統和軟體至關重要。這包括但不限於:
- 建立安全組態基準: 為所有授權的作業系統和軟體定義並維護標準的安全組態。
- 定期稽核和更新: 定期檢查系統組態,確保其符合安全最佳實踐,並根據需要進行更新。
加強 Linux 系統安全:停用不必要的檔案系統型別與組態 /tmp
在 Linux 系統安全加固過程中,停用不必要的檔案系統型別以及正確組態某些目錄(如 /tmp)是至關重要的步驟。本文將詳細闡述停用 hfs、hfsplus、squashfs 和 udf 檔案系統的必要性及其具體操作方法,並介紹如何安全地組態 /tmp 目錄。
停用不必要的檔案系統型別
Linux 支援多種檔案系統,但並非所有檔案系統在每個系統上都是必要的。保留不必要的檔案系統可能會增加系統的攻擊面。以下四種檔案系統型別通常不被大多數 Linux 系統使用,因此建議停用它們。
1. 停用 hfs 和 hfsplus 檔案系統
hfs 和 hfsplus 是蘋果電腦使用的檔案系統型別。如果您的 Linux 系統不需要與 Mac OS 進行檔案分享或讀取 Mac OS 磁碟,那麼就沒有必要啟用這些檔案系統。
檢查與停用方法:
使用以下命令檢查目前的設定:
modprobe -n -v hfs | grep -E '(hfs|install)' modprobe -n -v hfsplus | grep -E '(hfsplus|install)'預期輸出應為
install /bin/true。檢查目前是否已載入相關模組:
lsmod | grep hfs lsmod | grep hfsplus預期輸出為空白,表示未載入。
若未停用,則編輯或建立
/etc/modprobe.d/hfs.conf和/etc/modprobe.d/hfsplus.conf檔案,並加入以下內容:install hfs /bin/true install hfsplus /bin/true解除安裝相關模組:
rmmod hfs rmmod hfsplus
2. 停用 squashfs 檔案系統
squashfs 是一種壓縮的唯讀檔案系統,通常用於嵌入式系統或 Live CD。如果您的系統不使用 Snap 套件管理器,那麼可以停用 squashfs。
檢查與停用方法:
檢查目前的設定:
modprobe -n -v squashfs | grep -E '(squashfs|install)'預期輸出為
install /bin/true。檢查目前是否已載入
squashfs模組:lsmod | grep squashfs預期輸出為空白。
編輯或建立
/etc/modprobe.d/squashfs.conf檔案,並加入以下內容:install squashfs /bin/true解除安裝
squashfs模組:rmmod squashfs
3. 停用 udf 檔案系統
udf 是通用光碟格式,主要用於寫入 DVD 和其他光碟。如果您的系統不需要寫入光碟,可以停用此檔案系統。
檢查與停用方法:
檢查目前的設定:
modprobe -n -v udf | grep -E '(udf|install)'預期輸出為
install /bin/true。檢查目前是否已載入
udf模組:lsmod | grep udf預期輸出為空白。
編輯或建立
/etc/modprobe.d/udf.conf檔案,並加入以下內容:install udf /bin/true解除安裝
udf模組:rmmod udf
正確組態 /tmp
/tmp 目錄是所有使用者和某些應用程式使用的暫存目錄。為了提高安全性,建議將 /tmp 組態為獨立的檔案系統或使用 tmpfs,並設定 noexec、nodev 和 nosuid 等選項,以防止在該目錄中執行可執行檔、建立裝置節點和使用 setuid 程式。
組態方法:
使用
tmpfs:編輯/etc/fstab檔案,加入以下內容:tmpfs /tmp tmpfs rw,noexec,nodev,nosuid,size=2G 0 0組態
tmp.mount:編輯/etc/systemd/system/tmp.mount檔案(或相應的tmp.mount檔案),加入以下內容:[Mount] What=tmpfs Where=/tmp Type=tmpfs Options=mode=1777,strictatime,size=2G,noexec,nodev,nosuid
加強 /tmp 分割槽的安全性組態
在 Linux 系統中,/tmp 分割槽用於存放臨時檔案。由於其預設為全域可寫,因此需要特別的安全措施來避免潛在的安全風險。本文將介紹如何透過組態 /tmp 分割槽的掛載選項來提高系統安全性。
1. 將 /tmp 掛載到獨立的分割槽或使用 tmpfs
將 /tmp 掛載到獨立的分割槽或使用 tmpfs 可以有效防止資源耗盡的風險。如果 /tmp 使用的是 tmpfs,則其大小是有限的,可以透過調整 size 引數來設定其大小。
檢查 /tmp 是否正確掛載
執行以下命令檢查 /tmp 是否已正確掛載:
mount | grep -E '\s/tmp\s'
預期輸出:
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noexec,relatime)
檢查 /tmp 的掛載組態
執行以下命令檢查 /tmp 的掛載組態是否正確:
grep -E '\s/tmp\s' /etc/fstab | grep -E -v '^\s*#'
預期輸出:
tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev 0 0
或者檢查 tmp.mount 是否啟用:
systemctl is-enabled tmp.mount
預期輸出:
enabled
2. 加強 /tmp 分割槽的安全選項
2.1 設定 nodev 選項
nodev 選項可以防止在 /tmp 分割槽中建立特殊裝置檔案。
檢查 nodev 選項是否設定
執行以下命令檢查 nodev 選項是否已設定:
mount | grep -E '\s/tmp\s' | grep -v nodev
若無輸出,則表示 nodev 選項已設定。
設定 nodev 選項
編輯 /etc/fstab 或 /etc/systemd/system/local-fs.target.wants/tmp.mount 檔案,在掛載選項中新增 nodev。
若使用 /etc/fstab:
# 將 nodev 新增到掛載選項中
tmpfs /tmp tmpfs defaults,rw,nosuid,nodev,noexec,relatime 0 0
# 重新掛載 /tmp
mount -o remount,nodev /tmp
若使用 systemd:
# 編輯 tmp.mount 檔案
[Mount]
Options=mode=1777,strictatime,noexec,nodev,nosuid
# 重啟 systemd daemon 和 tmp.mount
systemctl daemon-reload
systemctl restart tmp.mount
2.2 設定 nosuid 選項
nosuid 選項可以防止在 /tmp 分割槽中執行具有 setuid 位的檔案。
檢查 nosuid 選項是否設定
執行以下命令檢查 nosuid 選項是否已設定:
mount | grep -E '\s/tmp\s' | grep -v nosuid
若無輸出,則表示 nosuid 選項已設定。
設定 nosuid 選項
編輯 /etc/fstab 或 /etc/systemd/system/local-fs.target.wants/tmp.mount 檔案,在掛載選項中新增 nosuid。
若使用 /etc/fstab:
# 將 nosuid 新增到掛載選項中並重新掛載 /tmp
mount -o remount,nosuid /tmp
若使用 systemd,同樣在 tmp.mount 中新增 nosuid 並重啟服務。
2.3 設定 noexec 選項
noexec 選項可以防止在 /tmp 分割槽中執行任何可執行檔。
檢查 noexec 選項是否設定
執行以下命令檢查 noexec 選項是否已設定:
mount | grep -E '\s/tmp\s' | grep -v noexec
若無輸出,則表示 noexec 選項已設定。
設定 noexec 選項
編輯 /etc/fstab 或 /etc/systemd/system/local-fs.target.wants/tmp.mount 檔案,在掛載選項中新增 noexec。
若使用 /etc/fstab:
# 將 noexec 新增到掛載選項中並重新掛載 /tmp
mount -o remount,noexec /tmp
若使用 systemd,同樣在 tmp.mount 中新增 noexec 並重啟服務。
最終檢查與維護
完成上述組態後,務必進行最終檢查以確保所有設定正確生效。建議定期進行安全稽核和系統檢查,以維護系統的安全性和穩定性。
加強Linux系統安全性:獨立分割區與掛載選項的最佳實踐
在Linux系統管理中,確保系統的安全性和穩定性是首要任務。其中一個關鍵的安全措施是為特定的目錄建立獨立的分割區,並設定適當的掛載選項。本文將探討為什麼需要為 /var 和 /var/tmp 建立獨立分割區,以及如何設定 nodev、nosuid 和 noexec 掛載選項來增強系統安全性。
為 /var 建立獨立分割區的重要性
/var 目錄用於存放系統服務和守護程式產生的動態資料。由於某些程式可能會建立全域可寫的檔案和目錄,因此將 /var 掛載在獨立分割區可以有效防止資源耗盡攻擊。
風險與影響
- 如果
/var不在獨立分割區,可能會因為過度使用而導致根目錄空間耗盡,影響系統穩定性。 - 在雲端伺服器中,獨立分割區可能會干擾磁碟重設大小的操作,或需要額外的工具來進行調整。
審核與修復
- 審核: 執行
mount | grep -E '\s/var\s'命令,確認/var已被掛載。 - 修復:
- 新安裝系統時,在安裝過程中自定義分割區設定,為
/var指定獨立分割區。 - 已安裝系統,則需建立新分割區並適當組態
/etc/fstab檔案。
- 新安裝系統時,在安裝過程中自定義分割區設定,為
為 /var/tmp 建立獨立分割區並設定安全掛載選項
/var/tmp 目錄是一個全域可寫的目錄,用於臨時儲存檔案。將其掛載在獨立分割區並設定適當的掛載選項,可以有效提高系統安全性。
風險與影響
- 未在獨立分割區可能導致資源耗盡。
- 攻擊者可能利用
/var/tmp執行惡意程式或建立硬連結到具suid許可權的系統程式。
審核與修復
- 審核: 執行
mount | grep -E '\s/var/tmp\s'命令,確認/var/tmp已被掛載且具備適當的掛載選項。 - 修復:
- 在安裝過程中為
/var/tmp建立獨立分割區。 - 對已安裝系統,編輯
/etc/fstab檔案並新增nodev、nosuid和noexec選項至/var/tmp的掛載設定中。
- 在安裝過程中為
設定 nodev、nosuid 和 noexec 掛載選項
這些掛載選項能夠進一步限制在 /var/tmp 中可能發生的惡意行為。
nodev: 禁止在該檔案系統中建立特殊裝置檔案。nosuid: 禁止該檔案系統中的suid檔案生效。noexec: 禁止在該檔案系統中執行二進位檔案。
實作步驟
- 編輯
/etc/fstab檔案,為/var/tmp新增上述掛載選項。 - 執行
mount -o remount,<option> /var/tmp命令,使變更生效。