張 璐
(國家電網有限公司信息通信分公司,北京 100761)
Internet的迅速發展在給人們的生產和生活帶來前所未有的便捷的同時,也給人們帶來了日益嚴峻的網絡安全問題。這種會導致危害的可能性使得用來保護Internet資源的安全措施和設備變得不可或缺[1],其中不可不提的就是防火墻,它幾乎是維護網絡安全必不可少的一個組成部分[2]。
防火墻通常部署在一個網絡的出入口處,它是不同網絡或網絡安全域之間信息的唯一出入口,通過執行一定的規則來控制內外網絡的數據流,從而控制用戶對網絡資源的訪問。在邏輯上,防火墻是一個分離器、一個限制器,同時也是一個分析器,能有效地監控內部網和Internet之間的任何活動,保證內部網絡的安全[3]。
防火墻具有如下特性:所有的通信都經過防火墻,防火墻只放行經過授權的網絡流量,防火墻能經受得起對其本身的攻擊[4]。
狀態檢測防火墻(Stateful Inspection Firewall)也叫自適應防火墻或動態包過濾防火墻(Dynamic Packet Filter Firewall),是最新一代的防火墻,稱為第三代防火墻。每個網絡連接通常包括以下信息:源IP地址、目的IP地址、源端口號和目的端口號、協議類型、連接狀態(適用于TCP)、協議相關信息(如TCP/UDP端口號) 和超時時間等。防火墻把這些信息叫做狀態[5]。
狀態檢測防火墻使用最典型的是通過TCP連接建立會話,以會話為單位進行檢測,將屬于同一連接的所有包作為一個整體的數據流來看待,構成狀態表,通過安全規則表與狀態表的共同配合,對表中的各個連接狀態進行快速識別,以此提高數據傳輸的效率。
圖1是狀態檢測防火墻的工作原理圖。由圖1可知,數據包到達狀態檢測防火墻的接口時,會執行以下步驟:檢查數據包是否是一個已經建立并且正在使用的數據流的一部分,若是,通過匹配防火墻狀態表中的信息,快速傳送數據包;若不是,通過三次握手建立TCP連接,防火墻通過安全策略進行判斷,并將該連接的源IP地址、目的IP地址、源端口號和目的端口號等信息記入狀態表。持續有屬于該連接的數據請求時,直接與防火墻狀態表中的信息進行匹配,方便數據快速通過。
需要注意的是:狀態檢測防火墻中的狀態表存在失效時間問題,若在一段時間內無會話通過,該狀態表的會話便會失效,數據再次請求通過時需要重新建立TCP連接。

圖1 狀態檢測防火墻工作原理
1.2.1 系統跨網絡區域多防火墻的運行隱患
圖2為電子郵件系統的網絡架構圖。圖2顯示,架構中存在2個不同的網絡二級區域,多一道防火墻無形中就為系統增加了一道隱患,在系統業務請求數據量過大的情況下,如果出現防火墻中斷,就無法獲取到業務數據,會導致業務不可用的情況發生。正是由于電子郵件系統的特殊性和業務量大,此項優化顯得尤為重要。
2017年就出現過由于防火墻導致系統業務不可用的情況。應用服務連接存儲進行收取信件時,出現無法正常建立會話連接的情況:系統獲取存儲數據是通過操作系統NFS(network file sysytem)與存儲之間通信的,NFS是通過網絡讓不同的機器之間可以彼此共享文件和目錄;在數據傳輸過程中,NFS不會主動探測防火墻現在是否能夠正常允許數據通過,只有請求到來的時候才會觸發NFS請求,建立連接。
當出現數據被丟棄的情況,防火墻不會反饋給請求方,因此NFS會不斷請求嘗試重連,直到數據允許通過。如果NFS持續無法連接到存儲,用戶獲取信件的請求無法響應,長時間無法連接,就會觸發系統后端取信模塊(MS)發生高可用切換。在實際情況下,MS取信模塊服務與存儲連接異常,程序主動退出(試圖重啟)的時候,發生了死鎖故障,程序一直退出失敗,資源釋放不成功,程序處于僵死狀態,無法完成高可用切換;在業務高峰期,進一步導致電子郵件系統前端模塊癱瘓,進而無法正常收發郵件。因此,為了將防火墻的潛在隱患降到最低,需將網絡區合并,盡可能減少多余的防火墻,減少不必要的外部影響。

圖2 電子郵件系統網絡架構圖
1.2.2 電子郵件系統應用程序運行情況及分析
若防火墻存在的隱患被觸發,系統后端模塊由于無法請求到后端存儲導致業務不可用,前面所述問題顯示出來系統后端模塊應用程序脆弱。因此,仍需從系統應用層面對系統架構進行優化。
電子郵件系統后端模塊是通過部署REDHAT CLUSTER集群,實現HA高可用切換的,后端模塊出現瓶頸時,高可用無法進行切換而僵死堵塞,對后續業務產生巨大影響。電子郵件系統的服務需求是大批量的用戶請求能夠無延遲地獲取信件,而后端模塊(MS)主要負責郵件提取。當出現異常時,業務請求量逐漸增大會導致后端模塊堵塞,無法正常獲取郵件;防火墻恢復后,后端堵塞現象無法立刻恢復。因此,在合并優化網絡區的同時還需要將應用集群形式進行優化,防止外部情況發生時,后端應用堵塞并僵死無法正常收取信件的隱患發生。
如圖3所示,將兩個網絡二級區合并之后,現在存在2個基本的網絡區域,減少了防火墻,很大程度上減少了跨網絡區域多防火墻帶來的隱患,為其他信息系統運行提供了有效的幫助和指導。

圖3 電子郵件系統網絡架構圖
為了緩解由于后端模塊在業務高峰期出現故障時無法進行高可用切換的問題,在進行后端應用優化過程中,將取信模塊(MS模塊)從高可用切換模式中脫離出來,變為負載均衡模式,即如果MS出現故障,讀取郵件的請求也會發送到備節點(備節點存儲與主節點存儲相同的信件內容),不影響信件正常收發。每個MS節點掛接一定數量的存儲卷,一個存儲卷只掛接在一個MS節點下面。當前的分區規則是:前端服務模塊訪問MS節點時,向與MS節點號對應的服務節點發送請求。每1到2個MS節點劃分為一組,同一分組的MS節點掛接完全一樣的存儲卷,同一分組內部的所有MS節點同時提供服務。
前端模塊訪問MS時,根據MS分組號,通過選舉算法得到MS分組內部可用MS節點列表,對照郵件關鍵字,按照MS節點數量進行哈希,得到對應的MS節點。
圖4為后端應用優化示例圖。圖4中,MS節點組1內部有2個節點1_A和1_B,2個節點同時提供服務。在節點1_B恢復后,請求切換到節點1_B;節點組2內,節點通過分布式選舉算法,新增加MS節點后,節點可自行加入分組內可用MS節點列表中,在節點故障后,前端請求會無縫切換到分組內其他MS節點。

圖4 后端應用優化示例
本文通過對電子郵件系統跨網絡區域多防火墻情況的優化,降低了防火墻對系統運行的影響,同時對系統應用架構進行了改進,大大減少了故障頻次,強化了信息系統健壯性。這兩方面優化為其他信息系統穩定運行提供了有效的技術參考,為信息系統運行減少了外部影響因素,為保證系統可靠運行奠定了堅實的基礎。