亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2017-06-30 20:50:11黃金春梁爽
        科技視界 2017年5期
        關(guān)鍵詞:防火墻

        黃金春 梁爽

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

        【關(guān)鍵詞】防火墻;查詢機;Windows服務(wù)

        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 引言

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

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

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

        1.1 常用控制操作系統(tǒng)的方法

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

        1.2 常用控制網(wǎng)絡(luò)訪問的方法

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

        1.3 其他方法

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

        2 自寫防火墻方法的原理

        2.1 Filter-hook驅(qū)動技術(shù)

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

        圖1 Windows下IP數(shù)據(jù)包發(fā)送過程

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

        2)系統(tǒng)將數(shù)據(jù)包傳遞給ip篩選器驅(qū)動程序 (Ipfltdrv.sys) 進行處理。

        3)系統(tǒng)將該數(shù)據(jù)包傳遞給 Ipsec.sys 進行處理。

        從該過程可以看出,數(shù)據(jù)包發(fā)送的第2步要通過ipfltdrv進行控制。編寫程序自定義過濾規(guī)則掛鉤在其上就可實現(xiàn)對ip數(shù)據(jù)包的過濾處理。

        3 自寫防火墻方法的具體實現(xiàn)

        3.1 設(shè)計鉤子驅(qū)動程序

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

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

        (2)PF-DROP表示IP過濾驅(qū)動將立刻向IP協(xié)議棧發(fā)出丟棄響應,IP協(xié)議將丟棄該ip數(shù)據(jù)包。

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

        設(shè)計該程序?qū)嵸|(zhì)為設(shè)計兩大部分,一為設(shè)計按照PacketFilterExtensionPtr數(shù)據(jù)類型定義的函數(shù),其說明如下:

        Type PF_FORWARD_ACTION(*PacketFilterExtensionPtr)

        usigned char *PacketHeader, //數(shù)據(jù)包頭指針

        usigned char *Packet, //數(shù)據(jù)包緩沖區(qū)指針

        usigned int PacketLength, //緩沖區(qū)長度

        usigned int RecvInterfaceIndex,//接收數(shù)據(jù)包網(wǎng)卡序號

        usigned int SebdInterfaceIndex,//發(fā)送數(shù)據(jù)包網(wǎng)卡序號

        IPAddr RecvLinkNextHop, //多網(wǎng)卡使用

        IPAddr SendLinkNextHop, //多網(wǎng)卡使用

        );

        通過如下類似代碼設(shè)計過濾函數(shù)

        PF_FORWARD_ACTION FP(……)

        {……

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

        return PF-FORWARD

        if() ……

        return PF-DROP

        if() ……

        return PF-PASS

        }

        }

        另一部分設(shè)計在系統(tǒng)提供的IP過濾驅(qū)動程序(ipfltdry.sys)中注冊該函數(shù)的函數(shù)指針。通過PF_SET_EXTENSION_HOOK_INFO結(jié)構(gòu)完成,它的定義如下,其中包含回調(diào)函數(shù)的指針ExtensionPointer:

        typedef struct _PF_SET_EXTENSION_HOOK_INFO

        {

        PacketFilterExtensionPtr ExtensionPointer;

        }PF_SET_EXTENSION_HOOK_INFO,*PPF_SET_EXTENSION_

        HOOK_INFO;

        3.2 設(shè)置驅(qū)動的I/O命令

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

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

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

        例如:

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

        BUFFERED, FILE_ANY_ACCESS)

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

        3.3 控制網(wǎng)絡(luò)訪問的設(shè)置

        設(shè)計好鉤子驅(qū)動程序后,還要設(shè)計具體的網(wǎng)絡(luò)訪問控制內(nèi)容,即對數(shù)據(jù)包的控制內(nèi)容,如協(xié)議號、ip地址、子網(wǎng)掩碼、端口號及對其的處理等等。為了方便操作,可設(shè)計一個結(jié)構(gòu)來存儲這些內(nèi)容。

        如:struct IPFilter {

        USHORT protocol; // 協(xié)議號

        ULONG sourceIP; // 源IP地址

        ULONG destinationIP; // 目標IP地址

        ULONG sourceMask; // 源地址子網(wǎng)掩碼

        ULONG destinationMask; // 目的地址子網(wǎng)掩碼

        USHORT sourcePort; // 源端口號

        USHORT destinationPort; // 目的端口號

        BOOLEAN drop; // 包處理

        };

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

        1)允許內(nèi)網(wǎng)段訪問

        pf2.protocol = 6;

        猜你喜歡
        防火墻
        筑牢防火墻 系緊安全帶
        全民總動員,筑牢防火墻
        水上消防(2020年1期)2020-07-24 09:26:12
        構(gòu)建防控金融風險“防火墻”
        當代陜西(2019年15期)2019-09-02 01:52:08
        智慧防火墻
        海南新農(nóng)合有了“防火墻”
        在舌尖上筑牢抵御“僵尸肉”的防火墻
        IT時代周刊(2015年7期)2015-11-11 05:49:50
        下一代防火墻要做的十件事
        自動化博覽(2014年6期)2014-02-28 22:32:13
        新漢 HENGETM工業(yè)防火墻
        自動化博覽(2014年5期)2014-02-28 22:31:38
        筑起網(wǎng)吧“防火墻”
        中國火炬(2010年10期)2010-07-25 07:43:49
        自己選擇十大免費防火墻
        国产免费看网站v片不遮挡| 成人特黄a级毛片免费视频| 鲁鲁鲁爽爽爽在线视频观看| 国产欧美日韩午夜在线观看| 少妇极品熟妇人妻高清| 视频一区二区三区黄色| 国产一区内射最近更新| 国产成人无码一二三区视频| 久久青青草视频免费观看| 国产成人国产三级国产精品| 性猛交╳xxx乱大交| 岛国AV一区二区三区在线观看| 久久国产精品男人的天堂av| 国产亚洲91精品色在线| 国产又色又爽又黄的| 欧美日韩电影一区| 久久伊人中文字幕有码久久国产 | 国产美女主播视频一二三区| 国産精品久久久久久久| 野外三级国产在线观看| 国产自拍视频一区在线| 日本丰满熟妇videossexhd| 亚洲综合无码一区二区| 日本在线免费精品视频| 国产精品国产三级国产av18| 成年免费视频黄网站zxgk| 国产国拍亚洲精品午夜不卡17| 亚洲一区二区三区免费av| 国产精品一区二区av麻豆| 国产三级在线观看免费| 男女激情床上视频网站| 日本人妻免费一区二区三区| 男人靠女人免费视频网站| 亚洲国产精品国语在线| 国产二区中文字幕在线观看| 永久免费人禽av在线观看| 国模私拍福利一区二区| 天堂av在线播放观看| 午夜精品久久久久久久| 免费av片在线观看网站| 亚洲国产精一区二区三区性色|