在系統上準備一個成功的 Novell AppArmor 部署,並謹慎考慮以下項目:
決定要設定的應用程式。請參閱第 48.3.1 節「選擇要建立設定檔的應用程式」以深入瞭解相關資訊。
依照 第 48.3.2 節「建立與修改設定檔」 中概述的說明建立需要的設定檔。檢查結果並視需要調整設定檔。
執行 AppArmor 報告以追蹤系統上發生的問題並處理安全性事件。請參閱 第 48.3.3 節「設定 Novell AppArmor 事件通知報告」。
當環境改變,或者當您需要回應 AppArmor 報告工具所記錄的安全性事件時,請更新設定檔。請參閱 第 48.3.4 節「更新設定檔」。
您只需要保護容易在特殊設定中遭受攻擊的程式,因此只需使用實際執行的應用程式設定檔。請使用以下的清單來決定最有可能的選項:
程式 (伺服器和用戶端) 具有開啟的網路埠。使用者用戶端 (如郵件用戶端和網頁瀏覽器) 擁有調解權限。這些程式執行時具有寫入使用者主目錄的權限,而且它們所處理的輸入來自有潛在風險的遠端來源,例如具潛在風險的網站和以電子郵件傳遞的惡意程式碼。
您可以透過網頁瀏覽器來呼叫 CGI Perl 程序檔、PHP 網頁和其他更複雜的網頁應用程式。
cron 精靈定期執行的程式會從各種來源讀取輸入。
若想知道目前有哪些程序透過開啟的網路連接埠執行,而且需要設定檔來加以限制時,請以 root
身份登入,執行 aa-unconfined 指令。
範例 48.1. aa-unconfined 的輸出
19848 /usr/sbin/cupsd not confined 19887 /usr/sbin/sshd not confined 19947 /usr/lib/postfix/master not confined 29205 /usr/sbin/sshd confined by '/usr/sbin/sshd (enforce)'
以上範例中每個標示 not confined
的程序可能都需要自定設定檔來加以限制。標示 confined by
的程序則已受到 AppArmor 的保護。
![]() | 如需更多資訊 |
---|---|
如需更多關於選擇正確應用程式以建立設定檔的資訊,請參閱第 1.2 節「Determining Programs to Immunize」 (第 1 章「Immunizing Programs」, ↑Novell AppArmor Administration Guide)。 |
SUSE Linux Enterprise 平台的 Novell AppArmor 中也提供了預先設定的設定檔集,適用於大多數的重要應用程式。此外,您也可以使用 AppArmor 來為任何應用程式組建立您自己的設定檔。
共有兩種管理設定檔的方法。一種是使用 YaST Novell AppArmor 模組所提供的圖形前端,另一種是使用 Novell AppArmor 套件本身所提供的指令行工具。基本上兩種方法的運作方式都相同。
依照第 48.3.1 節「選擇要建立設定檔的應用程式」中的說明執行 aa-unconfined,以辨識需要設定檔使其在安全模式中執行的應用程式清單。
請為每個應用程式執行以下步驟來建立設定檔:
以 root
身份執行 aa-genprof programname
來讓 AppArmor 建立應用程式的設定檔大綱。
或
執行
+ + ,並指定要建立設定檔的應用程式完整路徑,進而建立基本設定檔的大綱。系統會列出基本設定檔,並將 AppArmor 置於學習模式,這表示它會記錄您執行的任何程式活動,但還不會進行任何限制。
執行完整的應用程式動作讓 AppArmor 能夠充分瞭解這些活動的運作。
在 aa-genprof 中輸入 s,讓 AppArmor 分析步驟 2中產生的記錄檔案。
或
在
中,按一下 ,並依照精靈提供的指示完成設定檔,來分析記錄。AppArmor 會掃描在應用程式執行期間所進行的記錄,並要求您為每個記錄的事件設定存取權限。為每個檔案進行設定或使用 globbing。
視您應用程式的複雜度而定,可能有必要重複執行步驟 2和步驟 3。對應用程式進行限制,讓它在限制的條件下執行,並處理所有記錄事件。若要適當地限制應用程式功能的整體範圍,您可能需要時常重複執行這項程序。
在設定所有的存取權限之後,您的設定檔會被設為 enforce 模式。系統將套用此設定檔,且 AppArmor 會根據剛才建立的設定檔來限制應用程式。
如果您啟動 aa-genprof 的應用程式中,有個現有的設定檔正處於 complain 模式,則此設定檔在結束此學習循環之後將保持在學習模式。如需更多關於變更設定檔模式的資訊,請參閱第 4.6.3.2 節「aa-complain—Entering Complain or Learning Mode」 (第 4 章「Building Profiles from the Command Line」, ↑Novell AppArmor Administration Guide)和第 4.6.3.3 節「aa-enforce—Entering Enforce Mode」 (第 4 章「Building Profiles from the Command Line」, ↑Novell AppArmor Administration Guide)。
針對受限制之應用程式,執行每項所需任務來測試設定檔設定。正常情況下,封閉程式的執行會相當流暢,而您完全感覺不到 AppArmor 的活動。不過,當您發現應用程式出現一些不正常的行為時,請檢查系統記錄並查看 AppArmor 對於應用程式的限制是否過當。依系統使用的記錄機制而定,您可以在幾個位置尋找 AppArmor 記錄項目:
/var/log/audit/audit.log
如果已安裝 audit
套件,而且 auditd 正在執行中,則 AppArmor 事件會記錄在下列位置:
type=APPARMOR msg=audit(1140325305.502:1407): REJECTING w access to /usr/lib/firefox/update.test (firefox-bin(9469) profile /usr/lib/firefox/firefox-bin active /usr/lib/firefox/firefox-bin)
/var/log/messages
如果未使用 auditd,AppArmor 事件會記錄在 /var/log/messages
底下的標準系統記錄中。項目範例應該看起來如下:
Feb 22 18:29:14 dhcp-81 klogd: audit(1140661749.146:3): REJECTING w access to /dev/console (mdnsd(3239) profile /usr/sbin/mdnsd active /usr/sbin/mdnsd)
dmesg
如果 auditd 不在執行中,則也可以使用 dmesg 指令檢查 AppArmor 事件:
audit(1140661749.146:3): REJECTING w access to /dev/console (mdnsd(3239) profile /usr/sbin/mdnsd active /usr/sbin/mdnsd)
若要調整設定檔,請依步驟 3所述,重新分析有關此應用程式的記錄訊息。在出現提示時,決定存取權限或限制。
![]() | 如需更多資訊 |
---|---|
如需建立和修改設定檔的詳細資訊,請參閱第 2 章「Profile Components and Syntax」 (↑Novell AppArmor Administration Guide)、第 3 章「Building and Managing Profiles with YaST」 (↑Novell AppArmor Administration Guide)和第 4 章「Building Profiles from the Command Line」 (↑Novell AppArmor Administration Guide)。 |
您可以在 Novell AppArmor 中設定事件通知以檢閱安全性事件。事件通知是一種 Novell AppArmor 功能,可通知指定的電子郵件收件者何時會發生系統化 Novell AppArmor 活動 (針對選擇的嚴重程度)。您目前可在 YaST 介面中使用此功能。
若要在 YaST 中設定事件通知,請執行下列步驟:
確認您可在系統中執行郵件伺服器以傳送事件通知。
以 root
身份登入並啟動 YaST。然後選擇 + )。
在
中,選取 。為每種記錄類型 (
、 和 ) 設定報告頻率,然後輸入應接收報告的電子郵件位址並決定要記錄的事件嚴重程度。若要在事件報告中包含未知的事件,請勾選 。![]() | 選取要記錄的事件 |
---|---|
除非您對於 AppArmor 的事件分類非常熟悉,否則請選擇所有安全性層級的事件通知。 |
選擇
+ 離開此對話方塊來套用設定。透過 Novell AppArmor 報告,您可以閱讀記錄中所報告的重要 Novell AppArmor 安全性事件,而不需要手動切換只有 aa-logprof 工具才需要的繁瑣訊息。您可以依照日期範圍或程式名稱進行過濾,以縮減報告的大小。
若要設定 AppArmor 報告,請執行下列步驟:
以 root
身份登入並啟動 YaST。選取 + 。
在
、 和 中選取要檢查或設定的報告類型。選取
並提供要求的資料,來編輯報告產生頻率、電子郵件位址、輸出格式和報告的位置。若要執行已選類型的報告,請按一下
。選取
並指定報告類型來瀏覽該類型的歸檔報告。或
刪除不需要的報告或新增報告。
![]() | 如需更多資訊 |
---|---|
如需在 Novell AppArmor 中設定事件通知的詳細資訊,請參閱第 6.2 節「Configuring Security Event Notification」 (第 6 章「Managing Profiled Applications」, ↑Novell AppArmor Administration Guide)。如需更多有關報告組態的詳細資訊,請參閱第 6.3 節「Configuring Reports」 (第 6 章「Managing Profiled Applications」, ↑Novell AppArmor Administration Guide)。 |
軟體和系統組態會經常變更。因此,AppArmor 的設定檔設定可能得不時進行微調。AppArmor 會檢查系統日誌以查看是否有違反原則或其他的 AppArmor 事件,並讓您隨之調整設定檔設定。您也可以使用
來處理任何設定檔定義以外的應用程式行為。若要更新設定檔集,請執行下列步驟:
以 root
身份登入並啟動 YaST。
啟動
+ 。對任何資源或任何在提示時所記錄的執行檔,調整存取或執行權限。
在回答所有問題後離開 YaST。您的變更會套用至對應的設定檔。
![]() | 如需更多資訊 |
---|---|
如需有關從系統記錄中更新設定檔的詳細資訊,請參閱第 3.5 節「Updating Profiles from Log Entries」 (第 3 章「Building and Managing Profiles with YaST」, ↑Novell AppArmor Administration Guide)。 |