3.4. 使用指令行介面建立 Novell AppArmor 設定檔

Novell AppArmor 可提供使用指令行介面的功能,取代 GUI 來管理並設定系統安全性。

3.4.1. 檢查 AppArmor 模組狀態

AppArmor 模組共有以下三種狀態:

卸載

AppArmor 模組未載入至核心中。

執行中

AppArmor 模組已載入至核心並強制執行 Novell AppArmor 程式原則。

停止

AppArmor 模組已載入至核心,但未強制執行任何原則。

您可以檢查 /sys/kernel/security/apparmor/profiles,來偵測 AppArmor 模組正處於哪一種狀態。如果 cat /sys/kernel/security/apparmor/profiles 報告設定檔的清單,表示正在執行 Novell AppArmor。如果其為空白且未傳回任何資料,表示 AppArmor 已停止。如果檔案不存在,表示沒有載入 AppArmor。

您可以使用標準 Linux 模組指令來載入或卸載 AppArmor 模組,例如 modprobeinsmodlsmodrmmod,但是不建議使用此方法。建議您可透過 rcsubdomain 程序檔來管理 Novell AppArmor,這個程序檔會執行以下作業:

rcapparmor start

根據 AppArmor 模組狀態而有不同的行為。如果其為卸載,start 會載入並啟動模組,使其處於執行中狀態。若其已停止,start 將使模組在經常出現 Novell AppArmor 設定檔的 /etc/apparmor.d 重新掃描,並使模組處於執行中狀態。如果模組正在執行,start 會發出警告且不會採取任何行動。

rcapparmor stop

移除核心記憶體中的所有設定檔以停止執行中的 AppArmor 模組,可有效停用所有的存取控制,使模組處於停止狀態。如果 AppArmor 模組已卸載或停止,stop 會嘗試再次卸載設定檔,但不會有任何作用。

rcapparmor restart

使 AppArmor 模組在設定檔經常出現的 /etc/apparmor.d 中重新掃描,而不釋放執行中的程序、新增新設定檔,也不移除所有已從 /etc/apparmor.d 刪除的設定檔。

rcapparmor kill

無條件移除核心中的 AppArmor 模組。這是不安全的,因為從 Linux 核心卸載模組是不安全的。此指令只適用於在進行偵錯或在發生緊急事件時移除模組。

[Note]

Novell AppArmor 是一種強大的存取控制系統,您可以將自己封鎖在自己的機器之外,使您能夠從救援媒體 (例如 的 CD 1) 來啟動機器以重新取得控制。

若要避免類似的問題,當您重新啟動 AppArmor 模組時,請務必確認您在設定的機器上擁有執用中且未受限的 root 登入。當您的系統已損壞而無法再進行登入時 (例如,中斷設定檔與 SHH 精靈的關聯),您可以使用執行中的根提示並重新啟動 AppArmor 模組以修復損壞。

3.4.2. 建立 Novell AppArmor 設定檔

AppArmor 模組設定檔定義會以純文字檔格式儲存在 /etc/apparmor.d/ 目錄中。

[Warning]警告

/etc/apparmor.d/ 目錄中的所有檔案都會解譯成設定檔以載入。重新命名目錄中的檔案並不是防止載入設定檔的有效方法。您必須移除該目錄中的設定檔以進行有效管理。

您可以使用 vim 等文字編輯器來存取和變更這些設定檔。以下選項中包含建立設定檔的詳細步驟:

在終端機視窗中鍵入 vim,以便使用 vim 來檢視和編輯設定檔。若您在 vim 中編輯 Novell AppArmor 設定檔時需要啟用語法色彩顯示,請使用 :syntax on:set syntax=apparmor 指令。如需更多關於 vim 和語法色彩顯示的資訊,請參閱節 3.5.3.8, "apparmor.vim" (↑Novell AppArmor 2.0 管理指南)

[Note]

在變更設定檔之後,請參閱前面小節來使用 rcapparmor restart 指令。此指令檔可讓 Novell AppArmor 重新讀取設定檔。如需關於這些檔案語法的詳細說明,請參閱章 3, 建立 Novell AppArmor 設定檔 (↑Novell AppArmor 2.0 管理指南)

3.4.3. 新增或建立 Novell AppArmor 設定檔

若要新增或建立應用程式的 Novell AppArmor 設定檔,您可以視需要使用系統化或獨立的設定方法。

獨立設定方法

適用於設定執行時間有限的小型應用程式,例如郵件用戶端等使用者用戶端伺服器。請參閱節 3.5.1, "獨立設定方法" (↑Novell AppArmor 2.0 管理指南)

系統化設定方法

適用於一次設定大量的程式,或設定執行數天、數週或開機時連續執行的應用程式,例如網頁伺服器和郵件伺服器等網路伺服器應用程式。請參閱節 3.5.2, "系統化設定方法" (↑Novell AppArmor 2.0 管理指南)

3.4.4. 編輯 Novell AppArmor 設定檔

以下步驟將描述編輯 Novell AppArmor 設定檔的程序。若要進一步了解設定檔的構成,請參閱節 3.1, "設定檔元件和語法" (↑Novell AppArmor 2.0 管理指南)

  1. 如果您目前不是以 root 身份登入,請在終端機視窗中鍵入 su

  2. 提示時輸入 root 密碼。

  3. 若要移至該目錄,請輸入 cd /etc/apparmor.d/

  4. 輸入 ls 以檢視目前安裝的所有設定檔。

  5. 在 vim 等文字編輯器中開啟設定檔以進行編輯。

  6. 進行必要的變更,然後儲存設定檔。

  7. 在終端機視窗中輸入 rcapparmor restart 以重新啟動 Novell AppArmor。

3.4.5. 刪除 Novell AppArmor 設定檔

以下步驟將描述刪除 Novell AppArmor 設定檔的程序。

  1. 如果您目前不是以 root 身份登入,請在終端機視窗中輸入 su

  2. 提示時輸入 root 密碼。

  3. 若要移至 Novell AppArmor 目錄,請輸入 cd /etc/apparmor.d/

  4. 輸入 ls 以檢視目前安裝的所有 Novell AppArmor 設定檔。

  5. 刪除設定檔以離開含 rm profilename 的設定檔。

  6. 在終端機視窗中輸入 rcapparmor restart 以重新啟動 Novell AppArmor。