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

自編防火墻控制圖書館查詢機

2017-06-30 20:50:11黃金春梁爽
科技視界 2017年5期

黃金春 梁爽

【摘 要】針對圖書館查詢機在使用過程中出現的普遍問題,結合廣西中醫藥大學圖書館工作人員的工作經驗和多次實驗嘗試,提出一種以自編防火墻程序為核心并結合Windows系統服務來實現系統保護、瀏覽器控制訪問等功能的解決方案,同時詳細闡述該解決方案設計過程中的各個關鍵步驟。

【關鍵詞】防火墻;查詢機;Windows服務

Design the Firewall to Control the Library Inquiry Machine

【Abstract】Library inquiry machine has its special use requirements and several common problems during normal use.Combining the staff experience of GuangXi University of Chinese Medicine Library and their experiments,In this paper, we proposed a new method to control the Library inquiry machine.This paper discusses every step in this design.

【Key words】Firewall; Library inquiry machine; Windows Servers

0 引言

圖書館查詢機是提供給讀者方便地檢索館藏資源、查看或辦理個人圖書借閱情況和續借手續等服務的工具,是圖書館日常活動中最常用的工具之一,并且其數量也隨著圖書館的擴大而增加。在其使用過程中,常常因為數量較大、分布較散、讀者使用中較為隨意、網絡設置較為簡單等原因,時常出現很多問題而損壞,給讀者日常使用和工作人員的維護造成了很大的困擾。

1 目前控制查詢機的常用方法

基于以上的原因,許多管理人員使用到了各種辦法來加強對查詢機的控制,同時又由于圖書館的OPAC系統在使用時用瀏覽器來操作,因此也使用各種辦法加強對瀏覽器的控制。從本質上來看這些控制分為兩大核心控制,一是對操作系統的控制,另一個是對網絡訪問的控制。

1.1 常用控制操作系統的方法

控制操作系統主要是對系統修改,刪除,格式化等破壞性操作進行控制。在控制上有多種方法,(1)通過配置計算機的組策略實現[1]。(2)通過第三方軟件如:360等機器管理軟件[2]。(3)使用無盤工作,使用還原卡,或者自動還原軟件等辦法[3]。這些方法雖然都可以控制系統,但也各有不足,如使用的是第三方軟件實現的辦法,在實際使用中發現許多第三方的軟件都附帶有其它程序,如各種廣告、彈窗等,使用起來不勝其煩。采用組策略的辦法配置較為麻煩,如配置錯誤還會出現其它問題,而采用還原卡的辦法會提高維護成本。因此都不是很好的辦法。

1.2 常用控制網絡訪問的方法

控制網絡訪問的辦法主要有,(1)通過劃分子網,交換機隔離的辦法在機器的ip地址做限制實現。(2)通過設置單計算機的“路由和遠程訪問”的辦法[4]。(3)利用webbrower控件自設計瀏覽器的辦法[5]。(4)使用第三方網絡管理軟件,如美萍電腦安全衛士或超級兔子實現的辦法[6]。這些方法有的需要硬件配合如方法1,有的因為第三方軟件附帶程序而出現其它問題,雖然自設計瀏覽器沒有附帶程序,但是因為使用的控件缺陷而出現功能不足,影響opac查詢系統的使用。

1.3 其他方法

使用影子系統[7]。是基于虛擬機原理的一種保護系統,它可以產生出一個和原來系統一模一樣的虛擬系統(影子),所有的操作都針對這個影子,不會對真實系統產生影響。該方法比較實用但是安裝起來較為麻煩。

2 自寫防火墻方法的原理

2.1 Filter-hook驅動技術

從Windows 2000開始微軟公司在操作系統里提供了一個可以進行ip數據包過濾的驅動就是IP過濾驅動,其對應即是ipfltdrv.sys文件。它擴展了IP過濾驅動(IP Filter Driver)的功能。Filter-Hook 驅動并不是網絡驅動,它是一種內核模式驅動(Kernel Mode Driver),它提供回調函數(callback)。這樣當數據包發送和接收時,允許用戶注冊自己的ip數據報處理函數(鉤子驅動程序)判斷ip數據包的處理方式[8]。為了說明是如何實現的過濾,先看下Windows下IP數據包發送過程,如圖1所示發送過程主要有3個步驟,

圖1 Windows下IP數據包發送過程

1)IP 數據包形成后,系統就會將其傳遞給防火墻掛鉤驅動程序 (Ipnat.sys) 進行處理。

2)系統將數據包傳遞給ip篩選器驅動程序 (Ipfltdrv.sys) 進行處理。

3)系統將該數據包傳遞給 Ipsec.sys 進行處理。

從該過程可以看出,數據包發送的第2步要通過ipfltdrv進行控制。編寫程序自定義過濾規則掛鉤在其上就可實現對ip數據包的過濾處理。

3 自寫防火墻方法的具體實現

3.1 設計鉤子驅動程序

鉤子驅動程序為系統程序,用C++開發,首先必須安裝與windows對應系統DDK開發工具包,然后選擇為標準的sys項目。一個鉤子驅動程序是按照PacketFilterExtensionPtr數據類型定義的函數,這個函數本質上是ip數據包過濾器驅動。然后在系統提供的IP過濾驅動程序(ipfltdry.sys)中注冊該函數的實體指針。當注冊成功后,ip數據包將會被IP過濾驅動程序發送給鉤子驅動程序來進行過濾檢查,以便決定怎樣進一步處理數據包。它的返回值有[8]:

(1)PF-FORWARD表示IP過濾器驅動立即把ip數據包轉發到IP協議棧中,如果該數據包是本機需要的數據包,IP協議將其轉發給上層協議處理,否則,如果路由功能被打開,IP將路由該數據包。

(2)PF-DROP表示IP過濾驅動將立刻向IP協議棧發出丟棄響應,IP協議將丟棄該ip數據包。

(3)PF-PASS表示IP過濾驅動處理該ip數據包,并將結果動作回復給IP協議棧。 IP過濾器驅動如何過濾數據包由它本身和包過濾API接口的設置方式來決定;如果過濾器鉤子認為自己不需要處理該數據包,而是讓IP過濾器驅動過濾包,則應該返回該PF-PASS。

設計該程序實質為設計兩大部分,一為設計按照PacketFilterExtensionPtr數據類型定義的函數,其說明如下:

Type PF_FORWARD_ACTION(*PacketFilterExtensionPtr)

usigned char *PacketHeader, //數據包頭指針

usigned char *Packet, //數據包緩沖區指針

usigned int PacketLength, //緩沖區長度

usigned int RecvInterfaceIndex,//接收數據包網卡序號

usigned int SebdInterfaceIndex,//發送數據包網卡序號

IPAddr RecvLinkNextHop, //多網卡使用

IPAddr SendLinkNextHop, //多網卡使用

);

通過如下類似代碼設計過濾函數

PF_FORWARD_ACTION FP(……)

{……

if(某個條件滿足){……

return PF-FORWARD

if() ……

return PF-DROP

if() ……

return PF-PASS

}

}

另一部分設計在系統提供的IP過濾驅動程序(ipfltdry.sys)中注冊該函數的函數指針。通過PF_SET_EXTENSION_HOOK_INFO結構完成,它的定義如下,其中包含回調函數的指針ExtensionPointer:

typedef struct _PF_SET_EXTENSION_HOOK_INFO

{

PacketFilterExtensionPtr ExtensionPointer;

}PF_SET_EXTENSION_HOOK_INFO,*PPF_SET_EXTENSION_

HOOK_INFO;

3.2 設置驅動的I/O命令

前面完成設計是系統程序,沒有控制界面,需要設計應用程序來完成控制。當應用程序要控制驅動程序去操作時,通過使用Windows API的 ioctl函數(ioctl是設備驅動程序中對設備的I/O通道進行管理的函數)來控制驅動的操作功能,并且它們之間的通訊是通過IRP(I/O request package是操作系統內核的一個數據結構)來完成,因此必須分兩步實現:

(1)先設定驅動程序的ioctl自定義操作命令,使用CTL_CODE宏來創建。函數原型如下:

#define CTL_CODE(DeviceType設備類型, Function功能, Method I/O訪問內存使用方式, Access訪問限制);

例如:

#define START_IP_HOOK CTL_CODE(0x3000, 0x900, METHOD_

BUFFERED, FILE_ANY_ACCESS)

(2)使用IoBuildDeviceIoControlRequest函數建立所需的IRP。然后應用程序及可對驅動程序進行控制。

3.3 控制網絡訪問的設置

設計好鉤子驅動程序后,還要設計具體的網絡訪問控制內容,即對數據包的控制內容,如協議號、ip地址、子網掩碼、端口號及對其的處理等等。為了方便操作,可設計一個結構來存儲這些內容。

如:struct IPFilter {

USHORT protocol; // 協議號

ULONG sourceIP; // 源IP地址

ULONG destinationIP; // 目標IP地址

ULONG sourceMask; // 源地址子網掩碼

ULONG destinationMask; // 目的地址子網掩碼

USHORT sourcePort; // 源端口號

USHORT destinationPort; // 目的端口號

BOOLEAN drop; // 包處理

};

如果有多個訪問控制那么就需要填寫多個結構,然后把這些結構串成一個鏈表。在系統工作時,對的數據包和此結構的匹配是從鏈表頭開始比較的。因此如何排列這些結構就非常重要了,正確做法是把允許通過的放在前面,最后一個是拒絕所有的數據包。在此以我校圖書館為例來說明,我校圖書館的查詢機要求可以訪問內網(172.16.0.0/16),還要求可以訪問學校主頁(210.36.99.12),除此之外均不能訪問。

1)允許內網段訪問

pf2.protocol = 6;

主站蜘蛛池模板: 996免费视频国产在线播放| 啪啪免费视频一区二区| 国产精品主播| 成人国产三级在线播放| 日韩在线中文| 91麻豆精品国产91久久久久| 国产精品自拍露脸视频| 亚洲最大看欧美片网站地址| www.91在线播放| 国产精品视频导航| 伊人久久婷婷| 中文精品久久久久国产网址 | 经典三级久久| 在线观看欧美精品二区| 色偷偷综合网| 一级毛片中文字幕| 91在线激情在线观看| 在线色国产| 国产区精品高清在线观看| 国产青青草视频| 国产精品理论片| 国产精品手机在线播放| 日韩精品一区二区深田咏美| 天堂av综合网| 国产h视频免费观看| 国产在线小视频| 日韩毛片在线视频| 91小视频在线观看免费版高清| 免费黄色国产视频| 午夜少妇精品视频小电影| 美女免费精品高清毛片在线视| 亚洲欧美一区二区三区图片| 国产欧美网站| 9966国产精品视频| 国产精品jizz在线观看软件| 在线视频一区二区三区不卡| 久久综合婷婷| 国产啪在线91| 国产激爽大片在线播放| 精品免费在线视频| 色综合天天娱乐综合网| www.亚洲国产| 538国产在线| 老司国产精品视频91| 激情在线网| 亚洲AV无码乱码在线观看代蜜桃| 无码专区国产精品第一页| 伊人久久福利中文字幕| 美女一级毛片无遮挡内谢| 精品久久777| 久久国产精品77777| 黄片一区二区三区| 亚洲福利视频一区二区| 欧美精品成人| 手机在线国产精品| 国产福利在线免费观看| 男女精品视频| 国产免费福利网站| 亚洲第一天堂无码专区| 四虎成人在线视频| 国产精品亚洲片在线va| 久久婷婷五月综合色一区二区| 亚洲国产欧美目韩成人综合| AV不卡无码免费一区二区三区| 国产麻豆永久视频| 欧美精品伊人久久| 最新国产你懂的在线网址| 无码综合天天久久综合网| 自慰网址在线观看| 国内精品九九久久久精品 | 国产成人精彩在线视频50| 午夜视频日本| 欧美午夜小视频| 久久大香香蕉国产免费网站| 亚洲二区视频| 国产精品男人的天堂| 成人av专区精品无码国产| 嫩草国产在线| 久久久91人妻无码精品蜜桃HD| 香港一级毛片免费看| 九色综合伊人久久富二代| 青青草原国产|