在系統上準備一個成功的 Novell AppArmor 部署,並謹慎考慮以下項目:
決定要設定的應用程式。 請參閱節 43.3.1, 選擇要建立設定檔的應用程式以深入了解相關資訊。
依照 節 43.3.2, 建立與修改設定檔 中概述的說明建立需要的設定檔。 檢查結果並視需要調整設定檔。
執行 AppArmor 報告以追蹤系統上發生的問題並處理安全性事件。 請參閱 節 43.3.3, 設定 Novell AppArmor 事件通知報告。
當環境改變,或者當您需要回應 AppArmor 報告工具所記錄的安全性事件時,請更新設定檔。 請參閱 節 43.3.4, 更新設定檔。
您只需要保護容易在特殊設定中遭受攻擊的程式,因此只需使用實際執行的應用程式設定檔。 請使用以下的清單來決定最有可能的選項:
程式 (伺服器和用戶端) 具有開啟的網路埠。 使用者用戶端 (如郵件用戶端和網頁瀏覽器) 擁有調解權限。這些程式執行時具有寫入使用者主目錄的權限,而且它們所處理的輸入來自有潛在風險的遠端來源,例如具潛在風險的網站和以電子郵件傳遞的惡意程式碼。
您可以透過網頁瀏覽器來呼叫 CGI Perl 程序檔、PHP 網頁和其他更複雜的網頁應用程式。
cron 精靈定期執行的程式會從各種來源讀取輸入。
若想知道目前有哪些程序透過開啟的網路連接埠執行,而且需要設定檔來加以限制時,請以 root 身份登入,執行 aa-unconfined 指令。
範例 43-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,
(↑ Novell AppArmor Administration Guide )。
SUSE Linux Enterprise 平台的 Novell AppArmor 中也提供了預先設定的設定檔集,適用於大多數的重要應用程式。此外,您也可以使用 AppArmor 來為任何應用程式組建立您自己的設定檔。
共有兩種管理設定檔的方法。 一種是使用 YaST Novell AppArmor 模組所提供的圖形前端,另一種是使用 Novell AppArmor 套件本身所提供的指令行工具。 基本上兩種方法的運作方式都相同。
依照節 43.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 模式,則此設定檔在結束此學習循環之後將保持在學習模式。 如需更多關於變更設定檔模式的資訊,請參閱aa-complain—Entering Complain or Learning Mode,
(↑ Novell AppArmor Administration Guide )和aa-enforce—Entering Enforce Mode,
(↑ Novell AppArmor Administration Guide )。
針對受限制之應用程式,執行每項所需工作來測試設定檔設定。 正常情況下,封閉程式的執行會相當流暢,而您完全感覺不到 AppArmor 的活動。 不過,當您發現應用程式出現一些不正常的行為時,請檢查系統記錄並查看 AppArmor 對於應用程式的限制是否過當。依系統使用的記錄機制而定,您可以在幾個位置尋找 AppArmor 記錄項目:
如果已安裝 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)
如果未使用 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)
如果 auditd 不在執行中,則也可以使用 dmesg 指令檢查 AppArmor 事件:
audit(1140661749.146:3): REJECTING w access to /dev/console (mdnsd(3239) profile /usr/sbin/mdnsd active /usr/sbin/mdnsd)
若要調整設定檔,請依步驟 3所述,重新分析有關此應用程式的記錄訊息。在出現提示時,決定存取權限或限制。
您可以在 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,
(↑ Novell AppArmor Administration Guide )。如需更多有關報告組態的詳細資訊,請參閱節 6.3, Configuring Reports,
(↑ Novell AppArmor Administration Guide )。
軟體和系統組態會經常變更。 因此,AppArmor 的設定檔設定可能得不時進行微調。AppArmor 會檢查系統日誌以查看是否有違反原則或其他的 AppArmor 事件,並讓您隨之調整設定檔設定。您也可以使用來處理任何設定檔定義以外的應用程式行為。
若要更新設定檔集,請執行下列步驟:
以 root 身份登入並啟動 YaST。
啟動。
對任何資源或任何在提示時所記錄的執行檔,調整存取或執行權限。
在回答所有問題後離開 YaST。您的變更會套用至對應的設定檔。
提示: 如需更多資訊
如需有關從系統記錄中更新設定檔的詳細資訊,請參閱節 3.5, Updating Profiles from Log Entries,
(↑ Novell AppArmor Administration Guide )。