999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種采用配置文件對Windows Server防火墻進行設置的工具的設計與實現

2020-02-25 07:36:57趙慶明
福建質量管理 2020年19期
關鍵詞:規則設置功能

趙慶明

(成都理工大學 四川 成都 610059)

一、引言

Windows Server在企事業單位中扮演了重要的角色,對于一些保存了重要數據的Windows Server來說,其安全問題尤為突出。雖然可以通過前置的安全設備對這些服務器進行保護以抵御外部網絡上的攻擊,但卻無法抵御內部網絡中的攻擊。而Windows Server自身提供了一個“高級安全Windows防火墻”對自身系統的提供了“安全”防護。該管理界面對用戶“簡單”易用,同時卻顯得“簡陋”。在系統管理員對防火墻規則的設置和檢查的時候,這個“簡陋”的界面難以有效管理“大量”的規則。本文探討一種采用自定義的配置文件,編程的方式來設置Windows防火墻規則,以便系統管理員更高效、便捷地管理Windows Server自身的防火墻。

二、原理

Windows系統是一個友好的系統,其公開的API(應用程序接口)多達一萬個以上,并且每一次發布的新版本都會增加數以千計的新API。除了Windows保留的一些特殊的API的外,對外公開API幾乎包含了Window系統的方方面面。而這些API大多以dll文件存儲在Windows系統相關目錄中,還有不少以COM接口的方式公開了接口。

總體上,這些接口可以分如下幾大類:基礎服務,提供對Windows系統可用的基礎資源的訪問接口。比如文件系統、外部設備、進程、線程以及訪問注冊表和錯誤處理機制等等。圖形設備接口,提供的功能為:輸出圖形內容到顯示器、打印機以及其他外部輸出設備。圖形化用戶界面,提供了創建和管理屏幕和大多數基本控件的功能,比如按鈕和滾動條、接收鼠標和鍵盤輸入以及其他與GUI有關的功能。通用對話框鏈接庫,為應用程序提供標準對話框,比如打開/保存文檔對話框、顏色對畫框和字體對話框等等。通用控件鏈接庫,為應用程序提供接口來訪問操作系統提供的一些高級控件。比如狀態欄、進度條、工具欄和標簽等等。網絡服務,為訪問操作系統提供的多種網絡功能提供接口,包括NetBIOS、Winsock、NetDDE及RPC等等。

三、防火墻相關API

與防火墻相關的API由“C:WindowsSystem32FirewallAPI.dll”文件提供。如果使用Visual Studio 2019進行基于C#的開發,則在項目中引用名為“NetFwTypeLib”的COM組件即可。當然,也可以直接添加對于“FirewallAPI.dll”的引用,Visual Studio會自動將其封裝成一個名為“NetFwTypeLib”的.NET的程序集,同時生成一個可以支持互操作的“Interop.NetFwTypeLib.dll”文件。作為一個工具的開發,無需開發太多功能,開發的功能可以滿足自己需求即可,這樣可以快速完成開發工作,進而快速投入使用。

在Visual Studio 2019的引用中,雙擊“NetFwTypeLib”,可打開“對象瀏覽器”窗口,聚焦在“Interop.NetFwTypeLib”子項之上,點擊該子項可以看到其來自于本項目”Debug”目錄中的“Interop.NetFwTypeLib.dll”之中。展開子項,里面僅僅可見9個枚舉:“NET_FW_ACTION_、NET_FW_IP_PROTOCOL_、NET_FW_IP_VERSION_、NET_FW_MODIFY_STATE_、NET_FW_PROFILE_TYPE2_、NET_FW_PROFILE_TYPE_、NET_FW_RULE_DIRECTION_、NET_FW_SCOPE_、NET_FW_SERVICE_TYPE_”,由字面可以理解其表示的含義。進一步展開這些枚舉,可以根據枚舉成員的字面意思理解其表示的含義。

使用.net程序反編譯器dnSpy打開“Interop.NetFwTypeLib.dll”文件,除了可以看到Visual Studio 2019“對象瀏覽器”可以看到的基本內容外,還能看到這些枚舉中枚舉項的常量值。另外,還可以看到反編譯后的19個接口以及這些接口內部的定義。相關的說明,可以參考MSDN。

四、功能邏輯實現

(一)啟用防火墻

在使用該工具的時候,通常需要啟動防火墻。因此,無需檢查Windows Server防火墻是否已經啟用,調用API直接啟用即可。可分別對“域網絡”、“專用網絡”和“公用網絡”啟用防火墻規則。“域網絡”指工作區域中已加入域的網絡;“專用網絡”指家中或工作單位的網絡;“公共網絡”指如機場或咖啡店等公共場所的網絡。通常無需區分,全部“啟用”防火墻。

(二)刪除指定名稱的規則

防火墻中,以規則名稱來辨認規則,但不同規則可以有相同的名稱。實際使用過程中,盡可能避免不同的規則取相同的名稱。無論是在程序中,還是在“高級安全Windows防火墻”,均可以通過選擇“規則名”的方式來刪除指定規則。雖然在“高級安全Windows防火墻”可以“修改”規則,但在Windows公開的API并無“修改”的功能,那么實現機制則為“讀取+刪除+添加”。

(三)添加一條新規則

刪除指定名稱的規則后,再重新創建一條同名的規則,將其添加至規則列表即可。使用開放的API對規則讀取,無需管理員權限。但修改規則(刪除、添加)則需管理員權限。在C#的項目中添加一個名為“app.manifest”的XML格式的“應用程序清單文件”,修改requestedExecutionLevel元素的level屬性為”requireAdministrator”,編譯好的程序在啟動的時候會自動申請管理員權限。

五、核心代碼實現

在代碼編寫之前,先引用“NetFwTypeLib”命名空間,接下來便可使用與防火墻相關的枚舉和接口。由于設置的功能是通過COM接口來實現的,因此需要在本地創建“遠程”對象的引用,然后對該對象進行相關的操作。

首先取得防火墻規則的COM對象的類型。

Type type=Type.GetTypeFromProgID(“HNetCfg.FwPolicy2”);

接下來,在本地創建該“遠程”對象的引用,并將其強制轉換為INetFwPolicy2類型。

INetFwPolicy2 INetFwPolicy=(INetFwPolicy2)Activator.CreateInstance(type);

在三個“網絡”區域上,全部都啟用防火墻。

INetFwPolicy.FirewallEnabled[NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC]=true;

INetFwPolicy.FirewallEnabled[NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PRIVATE]=true;

INetFwPolicy.FirewallEnabled[NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_DOMAIN]=true;

根據規則名稱刪除舊規則。這句需要管理員權限,否則報錯。如果“規則名”存在,則會刪除此規則,如果“規則名”不存在,執行此行代碼也不會報錯。

INetFwPolicy.Rules.Remove(“規則名”);

接下來創建一條規則,此功能同樣通過COM接口實現,同樣需要在本地創建“遠程”對象的引用,然后對此規則進行相關的操作。

Type type2=Type.GetTypeFromProgID(“HNetCfg.FwRule”);

在本地創建該“遠程”對象的引用,并將其強制轉換為INetFwRule類型。

INetFwRule INetFwRule=(INetFwRule)Activator.CreateInstance(type2);

設置規則名稱:

INetFwRule.Name=“規則名”;

設置規則描述:

INetFwRule.Description=“我的規則名”;

啟用規則:

INetFwRule.Enabled=true;

將規則的“行為”設置為“允許”

INetFwRule.Action=NET_FW_ACTION_.NET_FW_ACTION_ALLOW;

設置數據的流動的方向

INetFwRule.Direction=NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN;

設置協議類型,6代表TCP協議。

INetFwRule.Protocol=6;

設置本地地址,星號”*”代表全部本地地址。

INetFwRule.LocalAddresses=“*”;

設置本地端口,多個端口之間使用逗號分割。

INetFwRule.LocalPorts=“1555”;

設置網絡接口類型,全部。

INetFwRule.InterfaceTypes=“ALL”;

設置允許的某些遠程地址來訪問,各個地址之間使用英文逗號進行分割。

INetFwRule.RemoteAddresses=“10.5.100.29/255.255.255.255,10.5.100.130/255.255.255.255”;

設置遠程端口,星號(“*”)代表全部,或者不限。

INetFwRule.RemotePorts=“*”;

添加規則。這一句需要管理員權限執行,否則會出現異常。解決方法,前文有述。

INetFwPolicy.Rules.Add(INetFwRule);

總結

Windows系統提供了非常簡單易用的圖形化工具來對自身的防火墻進行管理,對于使用者來說,學習難度非常低,很容易上手。但對于需要頻繁改動、或大量改動來說,圖形化界面的工具缺少靈活性。在另一方面,Windows公開了大量的應用程序接口(API),系統管理員使用任意一種腳本語言或者編譯語言即可使用這些API來直接對Windows進行操作和管理,也大大降低了傳統的工作量。

示例項目:您可以訪問網址https://github.com/zmrbak/FireWallAdmin下載本文所述的示例的代碼,稍作修改便可用到你的實際管理工作中,以期簡化您的管理工作。

猜你喜歡
規則設置功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
撐竿跳規則的制定
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
數獨的規則和演變
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
關于非首都功能疏解的幾點思考
TPP反腐敗規則對我國的啟示
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 国产美女91呻吟求| 老色鬼久久亚洲AV综合| 精品成人免费自拍视频| 亚洲国产日韩视频观看| 亚洲人成网站观看在线观看| 婷婷五月在线| 亚洲日韩AV无码一区二区三区人 | 四虎成人精品在永久免费| 粉嫩国产白浆在线观看| 亚洲色图在线观看| 亚洲av片在线免费观看| 欧美日韩国产成人高清视频| 亚洲天堂精品在线| 国产精品专区第一页在线观看| 超清无码一区二区三区| 久久黄色免费电影| 国产第二十一页| 99视频在线精品免费观看6| 亚洲精品不卡午夜精品| 999精品视频在线| 黄色网页在线播放| 日韩小视频在线观看| 五月天婷婷网亚洲综合在线| 免费在线成人网| 午夜无码一区二区三区在线app| 欧美激情福利| 99视频全部免费| 久久国产精品嫖妓| 亚洲综合日韩精品| 伊人丁香五月天久久综合| AV不卡无码免费一区二区三区| 久久a毛片| 欧美 国产 人人视频| 18禁黄无遮挡网站| 91小视频在线| 欧美精品影院| 亚洲人免费视频| 沈阳少妇高潮在线| 亚洲人成电影在线播放| 亚洲欧美日韩中文字幕在线| 国产免费黄| 欧美三級片黃色三級片黃色1| 男女猛烈无遮挡午夜视频| 亚洲视频黄| 亚洲AⅤ综合在线欧美一区| 亚洲a免费| 中字无码av在线电影| 欧美影院久久| 久久久噜噜噜| 国产精品白浆无码流出在线看| 国产美女丝袜高潮| 日日噜噜夜夜狠狠视频| 无码福利日韩神码福利片| 欧美精品啪啪| 国产精品女熟高潮视频| 亚洲欧美h| 亚洲高清无码久久久| 国产精鲁鲁网在线视频| 午夜人性色福利无码视频在线观看| 中文字幕色在线| 亚洲天堂区| 国产jizzjizz视频| 日韩在线永久免费播放| 欧美午夜小视频| 日韩精品高清自在线| 中文字幕乱妇无码AV在线| 特级精品毛片免费观看| 日韩精品一区二区三区免费在线观看| 成人午夜久久| 91破解版在线亚洲| 亚洲成A人V欧美综合| 欧美色视频日本| 女人毛片a级大学毛片免费| 日本三级精品| 中文字幕永久视频| 日韩欧美中文在线| 亚洲最大看欧美片网站地址| 视频国产精品丝袜第一页| 久久精品亚洲中文字幕乱码| 成年午夜精品久久精品| 亚洲天堂777| 欧美一区日韩一区中文字幕页|