這里有一個(gè)很大的問題是:AppArmor怎么保護(hù)企業(yè)應(yīng)用程序呢?最主要是通過白名單white listing的方法,通過定義應(yīng)用程序可以允許采用那些動(dòng)作來實(shí)現(xiàn)的。同樣黑名單Black Listing是通過定義阻止應(yīng)用程序所采用的動(dòng)作來實(shí)現(xiàn)的。黑名單會(huì)工作的很好直到有新的漏洞出現(xiàn)但是你關(guān)心不用知道這一切,你的系統(tǒng)處于無保護(hù)狀態(tài)直到商家發(fā)布新的補(bǔ)丁程序。
白名單是AppArmor中核心的策略,它用來仲裁應(yīng)用程序?qū)ξ募湍夸浀脑L問許可,以及這個(gè)程序的POSIX兼容。POSIX是IEEE標(biāo)準(zhǔn)來把根權(quán)限分成不同的集。換句話說就是即使用應(yīng)用程序需要真正的根權(quán)限才能正確執(zhí)行,AppArmor采取的措施是在內(nèi)核級(jí)別管理應(yīng)用程序?qū)ξ募脑L問和POISIX的兼容性來限制應(yīng)用程序?qū)Y源集和根權(quán)限的使用而不允許應(yīng)用程序直接訪問未受保護(hù)的根權(quán)限。
對(duì)每個(gè)應(yīng)用程序強(qiáng)制訪問使用白名單概念已經(jīng)有一段時(shí)間了,實(shí)際上National Security Agency(國(guó)家安全機(jī)構(gòu))已經(jīng)建立了一個(gè)相似的解決方案叫做Security-Enhanced Linux安全增強(qiáng)型Linux,但是它對(duì)系統(tǒng)性能的影響和難于部署限制了它的發(fā)展。 另外一方面AppArmor對(duì)系統(tǒng)性能的影響很小同時(shí)它集成在SUSE Linux企業(yè)版中使得它更加容易部署。
即開即用的保護(hù)
內(nèi)置在SUSE Linux企業(yè)版內(nèi)部的AppArmor策略是一套預(yù)定的策略包括通常的操作系統(tǒng)服務(wù)和程序,包括Apache網(wǎng)頁(yè)服務(wù)器,Postfix和Sendmai郵件服務(wù)器,Openssh,Squid,ntpd, nscd .這些策略是即開即用不用作修改的,除了Apache會(huì)需要人為指定它存放網(wǎng)頁(yè)的目錄和其它一些信息。
為應(yīng)用程序建立AppArmor策略有四步可以通過在YaST管理控制臺(tái)啟動(dòng)AppArmor程序?qū)崿F(xiàn)。
服務(wù)器分析器
AppArmor提供了一個(gè)工具用來決定你的系統(tǒng)中那個(gè)應(yīng)用程序是和它相關(guān)的。 在YaST下的AppArmor菜單中點(diǎn)擊AppArmor 報(bào)表圖標(biāo)就會(huì)運(yùn)行Application Audit Report 程序?qū)徲?jì)報(bào)表。 這個(gè)進(jìn)程自動(dòng)的掃描運(yùn)行服務(wù)器上打開了端口而沒有在AppArmor策略中定義的應(yīng)用程序。當(dāng)服務(wù)器分析器結(jié)束后它會(huì)提供給你一個(gè)可以從外部訪問并且需要定義策略的應(yīng)用程序列表。
策略模版生成器
啟動(dòng)Profile程序要在AppArmor 主菜單下點(diǎn)擊添加Profile向?qū)D標(biāo),選擇你要建立Profile的程序,AppArmor 將會(huì)建立一個(gè)快速靜態(tài)分析然后建立這個(gè)應(yīng)用程序的模版。
學(xué)習(xí)模式
一旦策略模版建立,profile 向?qū)⒆詣?dòng)進(jìn)入學(xué)習(xí)模式,大部分的策略將在這個(gè)模式中產(chǎn)生。 在這個(gè)階段AppArmor 架構(gòu)監(jiān)視程序的運(yùn)行,那些目錄和文件需要訪問,那些類型的訪問是必須的。當(dāng)然如果讓學(xué)習(xí)模式工作必須要讓你的應(yīng)用程序處在正常運(yùn)行的狀態(tài)。 根據(jù)程序的復(fù)雜度這個(gè)過程持續(xù)幾個(gè)小時(shí)到幾天不等。
在學(xué)習(xí)模式期間沒有策略規(guī)則被強(qiáng)制應(yīng)用在程序上,因此確信你的系統(tǒng)運(yùn)行在隔離的環(huán)境中。這個(gè)環(huán)境應(yīng)能保證系統(tǒng)正在試圖進(jìn)行學(xué)習(xí)的時(shí)候?qū)⒉粫?huì)受到攻擊。
AppArmor管理應(yīng)用程序在內(nèi)核級(jí)別的文件訪問和POSIX兼容性來限制應(yīng)用程序所需要的資源和根權(quán)限。
交互的優(yōu)化器
在學(xué)習(xí)期間AppArmor 建立了大量與正常和可接受的行為相關(guān)聯(lián)的事件日志。AppArmor中的交互優(yōu)化器解釋所有這些事件,通過Profile向?qū)г儐栆幌盗袉栴}的方式使得用戶可以快速的定義合理的策略。
例如:在學(xué)習(xí)的模式下應(yīng)用程序會(huì)訪問某些目錄或文件,因此Profile向?qū)⒆尶蛻魪囊韵碌倪x項(xiàng)中選擇來決定策略是如何管理訪問的。
允許:它將給應(yīng)用程序完全的目錄文件訪問控制,就像程序所期望的那樣。訪問能夠包括和排除讀寫和執(zhí)行模式。
拒絕:它拒絕對(duì)目錄文件的訪問也許會(huì)阻止程序的正常運(yùn)行。
全局Glob:它應(yīng)用通配符到路徑的最后一個(gè)條目,使得此目錄的應(yīng)用程序訪問遵循定義好的訪問模式。當(dāng)你確切知道應(yīng)用程序訪問在目錄中的其它文件并不是我們所關(guān)心的主要問題的時(shí)候是很有意義的。建立通配符策略定義使得大大減少交互的進(jìn)程因?yàn)榻换?yōu)化器將識(shí)別那些不用詢問你就可以訪問其它文件,,,,你通過兩次點(diǎn)擊Glob按鈕來建立兩個(gè)全局訪問策略。這樣就可以使得在目錄下的所有文件和子文件夾的文件訪問應(yīng)用程序。
圖1
全局?jǐn)U展Glob w/Ext:與全局Glob相似它不是把普通的通配符應(yīng)用到路徑的最后一個(gè)條目,而是應(yīng)用一個(gè)帶有擴(kuò)展的通配符。例如:你可以指定所有帶有擴(kuò)展的文件。這樣在這個(gè)目錄就能就能被應(yīng)用程序訪問。(圖1)
Edit:彈出的對(duì)話框窗口將允許根據(jù)你的需要來改變目錄路徑和文件名。
正像前面提到的那樣,每次你回答完關(guān)于程序事件日志問題的時(shí)候,Profile向?qū)檫@個(gè)事件建立一個(gè)策略規(guī)則。如果這個(gè)規(guī)則符合其它的日志事件向?qū)г诮换サ倪^程中將會(huì)跳過這些事件。Profile向?qū)А?BR>
當(dāng)你回答完這些問題,Profile向?qū)⒁圆噬姆绞皆试S你瀏覽和修改它,策略以高亮的黃色顯示引起你高度關(guān)注同時(shí)使得你能夠快速分析策略。(圖2)
一旦你完成基于文本文件的策略,你就可以很容易的把它部署到也能夠用應(yīng)用相同程序并且需要相同策略的其它服務(wù)器。同時(shí)AppArmor包括Profile向?qū)Э梢允鼓爿p松升級(jí)已經(jīng)存在的程序策略這樣就可以應(yīng)用你的策略變化或者增加新的規(guī)則。 一旦實(shí)施了程序的策略AppArmor將會(huì)記錄被測(cè)率拒絕事件的日志。就像Profile向?qū)б粯?,升?jí)Profile向?qū)Ы忉屓罩静⑶彝ㄟ^詢問你關(guān)于事件的行為取代已存在的策略。(參看 AppArmor 社區(qū))。
更加健壯,更容易擴(kuò)展,更有價(jià)值的存儲(chǔ)系統(tǒng)
全新SUSE Linux 企業(yè)版的存儲(chǔ)基礎(chǔ)架構(gòu)將會(huì)為企業(yè)服務(wù)器成立處理的更多。它的健壯的和可管理的系統(tǒng)基礎(chǔ)架構(gòu)支持小文件系統(tǒng)和TB級(jí)別的存儲(chǔ)。它擁有更加靈活的基礎(chǔ)架構(gòu)支持從Web應(yīng)用服務(wù)器到數(shù)據(jù)庫(kù)應(yīng)用。它還擁有增強(qiáng)的集群高可用性。它將是一個(gè)支持并行集群文件系統(tǒng)的擴(kuò)展性基礎(chǔ)架構(gòu)。
所有這些功能都基于3個(gè)緊密集成在存儲(chǔ)基礎(chǔ)架構(gòu)平臺(tái)中的特性:HA 集群資源管理器、集群卷管理器、集群并行文件系統(tǒng)。
HA集群資源管理器
存儲(chǔ)基礎(chǔ)架構(gòu)的HA集群資源管理器就是我們經(jīng)常所說的高可用性故障轉(zhuǎn)移集群。 換句話說就是集群軟件識(shí)別服務(wù)或服務(wù)器故障,然后切換服務(wù)到另外一個(gè)存活節(jié)點(diǎn)使得繼續(xù)提供服務(wù)的高可用性。HA集群資源管理器的主要部件是集成的全新eartbeat2。
Heatbeat2,一個(gè)高可用性Linux項(xiàng)目,比它的以前版本Heartbeat1在集群的可擴(kuò)展性上有很大的提升。不在局限于2個(gè)節(jié)點(diǎn)的集群,集群節(jié)點(diǎn)可以增加到16個(gè)。實(shí)際上支持節(jié)點(diǎn)的數(shù)目是沒有限制的,在超過16節(jié)點(diǎn)的環(huán)境中也曾經(jīng)測(cè)試過。
新的資源監(jiān)控功能也已經(jīng)被加入到Heartbeat2中,這就允許應(yīng)用程序開發(fā)商在其程序中加入監(jiān)控代理,它可以當(dāng)程序工作不正常的時(shí)候通知HA集群資源管理器。這對(duì)那些沒有真正崩潰而是停止響應(yīng)或者延遲的時(shí)間是很重要的。資源監(jiān)測(cè)代理能發(fā)現(xiàn)這些不正常的行為然后通知HA集群資源管理器這些程序需要重新啟動(dòng)或者把它切換到集群中其它的服務(wù)器上。
Heartbeat2和其它的存儲(chǔ)基礎(chǔ)架構(gòu)組件的集成也是很緊密的,這樣它就可以更好的交互。例如:如果HA集群資源管理器故障轉(zhuǎn)移了一個(gè)資源它也同時(shí)會(huì)轉(zhuǎn)移其中的文件系統(tǒng)。如果變化發(fā)生在卷上集群卷管理將識(shí)別這個(gè)變化并且確認(rèn)在集群之間應(yīng)用。另外一個(gè)關(guān)于集成的主要方面是可管理性已經(jīng)包括在存儲(chǔ)基礎(chǔ)架構(gòu)中。SUSE Linux企業(yè)版應(yīng)用基于標(biāo)準(zhǔn)的通用信息模型CIM使得存儲(chǔ)基礎(chǔ)架構(gòu)的管理更加方便。