李勇
(甘肅新網通科技信息有限公司 甘肅省蘭州市 730020)
近些年來,信息技術得到快速發展和普及的同時,計算機安全問題也在日益突出。在此背景下,如何保障計算機正常運行的同時,提高系統安全性已經成為當前研究的重點內容[1]。結合實際情況來看,雖然當前市面上各類防火墻軟件相對較多,但大多數防火墻軟件優先考慮系統檢測效率,而非保障系統安全。針對此種情況,本文將基于當前市面上主流防火墻技術,提出一款分布式防火墻技術,從而對當前防火墻技術進行補充和完善。
分布式防火墻系統主要分為客戶端和服務端兩部分,其中服務端主要用戶向客戶端提供防火墻過濾規則,實現客戶端防火墻系統更新升級;客戶端主要用于對計算機系統及網絡數據檢測和過濾、應用程序訪問網絡中的監測及過濾,并從服務端獲取防火墻過濾規則。
1.1.1 客戶端功能需求
分布式防火墻系統的客戶端功能結構如圖1所示。

圖1:分布式防火墻系統的客戶端功能結構
(1)網絡過濾:分布式防火墻系統的核心功能,可以根據服務端提供的防火墻過濾規則進行網絡訪問攔截和網絡事件過濾。其中應用層過濾是指對符合防火墻過濾規則的網絡訪問進行限制,并記錄系統日志,允許其他網絡訪問正常訪問等;協議級過濾式則是根據網絡協議過濾規則,自動判斷TCP 數據包等網絡數據包是否可以通過防火墻,此過程中防火墻會對內外兩方面數據包進行監測管理,并在發現符合過濾規則的內容后記錄日志信息。
(2)規則管理:規則管理主要用于實現防火墻過濾規則的查詢、導入、導出及維護。其中規則查詢可以為用戶提供當前過濾規則的全面查詢;規則導入可以從服務端中更新規則[2];規則導出可以從系統數據庫中導出過濾規則,以此來為其他功能模塊提升過濾規則支持;規則維護可以為用戶提供規則的增、刪、改等功能。
(3)日志管理:日志管理主要用于日志的生成、查詢及維護。其中,日志生成主要用于記錄系統日志信息,此過程中涉及到應用層過濾日志、協議級過濾日志兩部分內容;日志查詢可以為用戶提供根據時間、應用程序、網址、處理方式等分類方式的攔截日志查詢;日志維護可以為用戶提供日志清除等維護功能。
(4)報警管理:報警管理功能可以為系統提供消息提示、聲音報警、郵件報警等功能支持。其中消息提示可以根據規則管理中的報警條件,在發現出現符合報警條件情況時,會及時發出報警消息,并對觸發報警條件的行為條件的完整路徑、IP 地址以及處理方式進行詳細記錄[3];聲音報警通常伴隨消息報警一同進行,可以及時通過用戶及時停止和處理危險行為;郵件管理主要用于防火墻關閉后系統向用戶郵箱自動發送郵件,并在其中向用戶匯報防火墻過濾情況。
(5)配置管理:配置管理主要包括查看狀態、狀態值以及系統配置等功能。其中查看狀態可以方便用戶實時查看防火墻工作狀態信息,其中涉及的信息包括防火墻啟動狀態、本次啟動中攔截數量等;狀態控制則可以為用戶提供啟停防火墻過濾功能支持;系統配置可以管理防火墻及各類應用是否在計算機啟動時自啟動。
1.1.2 服務端功能需求
分布式防火墻系統的服務端功能結構如圖2所示。

圖2:分布式防火墻系統的服務端功能結構
(1)規則管理:服務端配置管理主要包括規則導出、規則查詢、規則維護以及規則導入等功能。其中規則導出是指將服務器數據庫中的過濾規則導出,為其他功能模塊提供過濾規則支持;規則查詢可以為用戶提供現有過濾規則;規則維護可以為用戶提供規則的增、刪、改等功能;規則導入則可以將更新后的過濾規則導入到服務器數據庫,完善服務端過濾規則。
(2)通信管理:通信管理主要包括規則發送、詢問應答、選擇統計等功能,其中規則發送可知在客戶端向服務端發出防火墻過濾規則更新請求后,服務端向客戶端發送更新過濾規則;詢問應答可以在客戶端無法判斷程序上網請求的情況下,接收客戶端發出的詢問請求后,對服務端數據庫進行全面檢索,進而根據檢索結果向客戶端作出反饋[6];選擇統計在用戶作出自主選擇以后,客戶端會將選擇結果上傳給服務端,此時服務端需要將用戶作出的選擇結果進行統計分析,用作后續過濾規則完善的依據。
分布式防火墻系統應滿足以下性能需求:
(1)防火墻系統需要具備良好的可移植性和可拓展性,為系統的后續移植和拓展作出良好保障;
(2)防火墻系統需要在Windows XP/7/10 等系統環境下正常運行;
(3)防火墻系統人機交互界面設計應遵循“以人為本”的要求,方便用戶的操控使用;
(4)防火墻系統的各項功能、程序及數據庫均可以進行維護及管理。
2.1.1 Filter Hook Driver 過濾技術
Filter Hook Driver 過濾技術作為一種內核狀態過濾技術,其自Windows 2000 系統便開始向計算機提供過濾支持,可以通過Ipfilrdrv.sys 的各類功能實現網絡數據包的過濾、判斷及攔截。同時,相對于其他過濾技術來說,Filter Hook Driver 過濾技術整體結構更為簡單、有利于操作及實現,再加上技術發展時間較長,功能較為完善,所以在綜合分析考慮后,最終選用此技術作為分布式防火墻的過濾技術。
2.1.2 SQlite 技術
SQlite 技術支持市面上各類常見操作系統,并且還可以同各類常見程序語言及開源數據庫結合,再加上SQlite 技術技術具有資源占用率低、數據處理數據快、無需安裝及額外管理等優勢,更符合防火墻系統的實際要求,所以對市面上各類技術進行綜合分析后,最終選擇SQlite 技術作為客戶端數據技術。
在具體設計中,SQlite 技術主要負責防火墻系統客戶端數據庫運行,即連接數據庫、執行數據庫相關事務內容、斷開數據庫連接,并關閉數據庫附加各類文件[7]。
2.1.3 SQL Server 技術
SQL Server 技術主要用于分布式防火墻系統服務端的數據庫開發。由于客戶端數據庫中所存在的數據信息無需保證完整性,其內部也無需存儲所有系統過濾規則,所以,數據量較小,可以采用輕量化的Qlite 數據庫。而服務端需要保障系統過濾規則信息的完整性和正確性,所以,輕量化設計將難以滿足相關要求,所以在綜合選擇后選用SQL Server 技術作為服務端數據庫。
分布式防火墻系統主要分為客戶端和用戶端兩部分,其中客戶端的核心功能在于應用層網絡過濾和協議級網絡過濾兩部分,本設計中的其他功能均以實現以上兩種功能為前提進行配置和實現。具體分布式防火墻系統總體設計架構如圖3所示。

圖3:分布式防火墻系統總體設計架構
如圖3所示,在分布式防火墻系統中,應用層網絡過濾模塊主要用于實現網絡過濾功能中的應用層網絡過濾子功能,而協議級網絡過濾模塊則是負責網絡協議數據包相關的過濾和攔截;規則與日志過濾模塊主要用于系統過濾規則以及阻攔日志的分析及管理;報警管理模塊則可以在發現符合過濾規則要求的問題后,通過消息提示、聲音報警、郵件報警等多種方式向用戶提供報警信息,促使用戶可以第一時間對問題進行發現和處理;通信管理主要負責對系統網絡通信相關的功能實現。此外,用戶的人機交互界面可以通過界面中的功能來控制對應系統功能模塊工作運行。
由于本設計中采用了內部狀態過濾技術,所以實際設計中的過濾模塊也將是內部驅動過濾模塊。具體設計過程中過濾模塊的驅動程序入口將會設置為DriverEntry()函數,此函數與常規的Main()函數相類似,可以幫助系統自動初始化和調用系統存儲日志和過濾條件等數據結構,之后再創建系統邏輯設備,此設備不會與系統物理設備相關聯。
在完成邏輯設備創建后,還需要實現邏輯設備與符號連接工作,即實施符號連接。此過程中可以符號連接的設備可供系統應用程序調用,但調用需要CreateFile()函數作為驅動支持,在應用程序與邏輯程序達成通信連接后,實現程序調用及控制。
最后,設計中還需要制作函數指針,在系統卸載驅動模塊時,為保障卸載效果,需要調用提前設計的函數指針以及現有函數列表中的函數指針,根據預設的卸載函數指針及其他指針參數項,完成系統驅動模塊卸載后,對系統驅動模塊進行自動初始化處理。
此外,驅動模塊的各項功能發揮均需要通過IRP 由上層程序分配驅動功能,并在完成功能分配后,具體功能實現則會交由函數指針通過確定函數來實現。在驅動程序模塊初始化后,系統需要重新制定各類驅動模塊所需函數,在此過程中,驅動模塊中的函數會采用先操作類函數,再根據操作類函數確定執行任務類函數的處理過程。
綜上所述,本文基于現有防火墻技術,提出一種分布式防火墻設計架構方案。此設計采用了B/S架構、Filter Hook Driver 過濾技術、SQlite 技術以及SQL Server 技術,相對于傳感防火墻設計來說,所構建系統具有輕量化、可拓展、可維護、可移植等特征,不僅符合當前市場對防火墻技術的相關要求,適用于包括家庭使用、小型辦公等多種應用場景,而且還能夠提高防火墻攔截效率及效果,提高用戶個人計算機的整體安全性,充分發揮出防火墻系統的基本功能,避免用戶計算機被網絡攻擊,所以總體來說具有一定的研究價值和應用價值,值得在后續研究及應用中進行參考。