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

Linux包過濾型防火墻技術(shù)的探索

2008-12-31 00:00:00鄧輝燕
電腦知識與技術(shù) 2008年29期

摘要:防火墻是網(wǎng)絡(luò)安全研究的一個重要內(nèi)容。該文通過對Linux數(shù)據(jù)包過濾系統(tǒng)——Netfilter/Iptables的研究和分析,最后利用實例講解了利用 netfilter框架編程實現(xiàn)新功能,這種分析有利于研究人員去開發(fā)新的好的功能,用防火墻去努力保障網(wǎng)絡(luò)和主機的安全。

關(guān)鍵詞:防火墻,Linux,包過濾

中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)29-0361-02

1 防火墻概述

網(wǎng)絡(luò)防火墻技術(shù)是一種用來加強網(wǎng)絡(luò)之間訪問控制,防止外部網(wǎng)絡(luò)用戶以非法手段通過外部網(wǎng)絡(luò)進(jìn)入內(nèi)部網(wǎng)絡(luò),訪問內(nèi)部網(wǎng)絡(luò)資源,保護(hù)內(nèi)部網(wǎng)絡(luò)操作環(huán)境的特殊網(wǎng)絡(luò)互聯(lián)設(shè)備。它對兩個或多個網(wǎng)絡(luò)之間傳輸?shù)臄?shù)據(jù)包按照一定的安全策略來實施檢查,以決定網(wǎng)絡(luò)之間的通信是否被允許,并監(jiān)視網(wǎng)絡(luò)運行狀態(tài)。

根據(jù)防火墻所采用的技術(shù)不同,可以將它分為四種基本類型:包過濾型、網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)、代理型和監(jiān)測型。包過濾型產(chǎn)品是防火墻的初級產(chǎn)品,其技術(shù)依據(jù)是網(wǎng)絡(luò)中的分包傳輸技術(shù)。包過濾技術(shù)的優(yōu)點是簡單實用,實現(xiàn)成本較低,在應(yīng)用環(huán)境比較簡單的情況下,能夠以較小的代價在一定程度上保證系統(tǒng)的安全。網(wǎng)絡(luò)地址轉(zhuǎn)換是一種用于把IP地址轉(zhuǎn)換成臨時的、外部的、注冊的IP地址標(biāo)準(zhǔn)。它允許具有私有IP地址的內(nèi)部網(wǎng)絡(luò)訪問因特網(wǎng)。代理型防火墻也可以被稱為代理服務(wù)器,它的安全性要高于包過濾型產(chǎn)品,并已經(jīng)開始向應(yīng)用層發(fā)展。代理型防火墻的優(yōu)點是安全性較高,可以針對應(yīng)用層進(jìn)行偵測和掃描,對付基于應(yīng)用層的侵入和病毒都十分有效。監(jiān)測型防火墻是新一代的產(chǎn)品,能夠?qū)Ω鲗拥臄?shù)據(jù)進(jìn)行主動的、實時的監(jiān)測,在對這些數(shù)據(jù)加以分析的基礎(chǔ)上,監(jiān)測型防火墻能夠有效地判斷出各層中的非法侵入。本文重點研究Linux的包過濾防火墻。

2 Linux數(shù)據(jù)包過濾系統(tǒng)——Netfilter/Iptables

Linux在其2.4內(nèi)核中內(nèi)置了一個基于網(wǎng)絡(luò)層解決方案的防火墻系統(tǒng)——Netfilter/Iptables,它使得用戶能夠很方便地在網(wǎng)絡(luò)邊界定制對數(shù)據(jù)包的各種控制,如有狀態(tài)或無狀態(tài)的包過濾、各種類型的網(wǎng)絡(luò)地址轉(zhuǎn)換、流量控制及高級的包處理等。Netfilter/Iptables系統(tǒng)采用模塊化的架構(gòu)方式,其主要模塊有:通用框架Netfilter、數(shù)據(jù)包選擇系統(tǒng)、連接跟蹤系統(tǒng)及NAT系統(tǒng)等等。

2.1 Netfilter/Iptables系統(tǒng)工作原理

Netfilter/Iptables系統(tǒng)所提供的數(shù)據(jù)包控制能力(包過濾、網(wǎng)絡(luò)地址轉(zhuǎn)換、包處理等)都是由內(nèi)核模塊通過注冊回調(diào)函數(shù)和“IP表”來實現(xiàn)的。例如,iptable_filter.c模塊通過注冊filter表及3個回調(diào)函數(shù)(NF_IP_LOCAL_IN;NF_IP_FORWARD;NF_IP_LOCAL_OUT)來實現(xiàn)IPV4包的過濾功能。下面以iptable_filter.o模塊的工作流程為例簡單介紹一下Netfilter/Iptables系統(tǒng)是如何工作的。當(dāng)數(shù)據(jù)包進(jìn)入系統(tǒng)時,系統(tǒng)首先根據(jù)路由表決定數(shù)據(jù)包的流向(即將數(shù)據(jù)包發(fā)往那個關(guān)鍵點),則可能有三種情況:

1) 如果數(shù)據(jù)包的目的地址是其它主機或網(wǎng)絡(luò),則系統(tǒng)將該包發(fā)往forward關(guān)鍵點。此時,回調(diào)函數(shù)NF_IP_FORWARD根據(jù)forward鏈 (在 filter表中)中的規(guī)則對數(shù)據(jù)包進(jìn)行檢查,如果規(guī)則匹配,則回調(diào)函數(shù)按規(guī)則所指定的動作來處理該包,否則丟棄該包。

2) 如果數(shù)據(jù)包的目的地址是本機,則系統(tǒng)將數(shù)據(jù)包發(fā)往input關(guān)鍵點。此時,回調(diào)函數(shù)NF_IP_LOCAL_IN根據(jù)input鏈(在filter表中)中的規(guī)則對數(shù)據(jù)包進(jìn)行檢查,如果規(guī)則匹配,則回調(diào)函數(shù)就按規(guī)則所指定的動作來處理該包,否則丟棄該包。

3) 如果該數(shù)據(jù)包的源地址是本機,則系統(tǒng)將該包發(fā)往output關(guān)鍵點。此時,回調(diào)函數(shù)NF_IP_LOCAL_OUT根據(jù)output鏈(在filter表中)中的規(guī)則對數(shù)據(jù)包進(jìn)行檢查,如果規(guī)則匹配,則回調(diào)函數(shù)按規(guī)則所指定的動作來處理該包,否則丟棄該包。

2.2 Netfilter內(nèi)核框架

Netfilter是Linux2.4.x內(nèi)核中用于包處理的抽象、通用化的框架,它為每種網(wǎng)絡(luò)協(xié)議(Ipv4、Ipv6等)定義一套鉤子函數(shù)(hook),其中Ipv4定義了5個鉤子函數(shù).內(nèi)核的模塊可以對每種協(xié)議注冊多個鉤子,這樣當(dāng)某個數(shù)據(jù)包通過Netfilter框架時,Netfilter檢測是否有任何模塊對該協(xié)議和鉤子函數(shù)進(jìn)行了注冊。若有,則將該數(shù)據(jù)包傳給這些模塊處理。Netfilter提供了數(shù)據(jù)包過濾(filter表),網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT表)及數(shù)據(jù)包處理(mangle表)三種數(shù)據(jù)包處理能力.下面以Filter表為例加以簡單介紹。Filter表為系統(tǒng)缺省,其結(jié)構(gòu)如圖1。該表中包含了輸入(INPUT)、輸出(OUTPUT)和轉(zhuǎn)發(fā)(FORWARD)3條鏈.所有目標(biāo)地址指向本機的數(shù)據(jù)包會遍歷INPUT鏈,本地發(fā)出的數(shù)據(jù)包將遍歷OUTPUT鏈,而被轉(zhuǎn)發(fā)的數(shù)據(jù)包將遍歷FORWARD鏈。每一條鏈中都可設(shè)定一條或數(shù)條規(guī)則,每一條規(guī)則都是這樣定義的“如果數(shù)據(jù)包頭符合這樣的條件,就這樣處理這個數(shù)據(jù)包”。當(dāng)一個數(shù)據(jù)包到達(dá)一個鏈時,系統(tǒng)就會從第一條規(guī)則開始檢查,看是否符合該規(guī)則所定義的條件.如果滿足,系統(tǒng)將根據(jù)該條規(guī)則所定義的方法處理該數(shù)據(jù)包;如果不滿足則繼續(xù)檢查下一條規(guī)則。最后,如果該數(shù)據(jù)包不符合該鏈中任何一條規(guī)則的話,系統(tǒng)就會根據(jù)該鏈預(yù)先定義的策略(Policy)來處理該數(shù)據(jù)包。

Netfilter提供了傳遞數(shù)據(jù)包到用戶空間的Hook函數(shù),對數(shù)據(jù)包進(jìn)行處理的代碼不必運行在內(nèi)核空間,大大簡化了編程。Netfilter的框架結(jié)構(gòu),可方便地插入各種模塊,易于擴展。

2.3 內(nèi)核與用戶的交互

防火墻除了內(nèi)核里的機制外,還需要在應(yīng)用層有相應(yīng)的配置工具Iptables,它是從三個默認(rèn)的表Filter、Nat、Mangle而得名,每個表有幾條鏈。一條鏈就是發(fā)生在包L的一系列動作,例如Filter表就有INPUT、FORWARD、OUTPUT三個不同的默認(rèn)鏈。如果包過濾需要檢查IP包,則Netfilter框架在網(wǎng)絡(luò)層截獲IP包,這就需要與用戶定義的規(guī)則做比較。而這些規(guī)則的添加修改是通過內(nèi)核和用戶交互實現(xiàn)的,這就涉及一個如何與內(nèi)核通信的問題。內(nèi)核模塊有三種辦法與進(jìn)程打交道:首先是系統(tǒng)調(diào)用;第二種辦法是通過設(shè)備文件;第三個辦法便是使用proc文件系統(tǒng)。Netfilter采用了第一種修改系統(tǒng)調(diào)用的辦法。Iptables在應(yīng)用層調(diào)用setsockopt進(jìn)入內(nèi)核,然后調(diào)用netfilter.c文件中nbetsockopt()實現(xiàn)交互,這樣通過配置防火墻就可以按需要處理網(wǎng)絡(luò)數(shù)據(jù)包。只有熟悉了iptables提供的眾多命令、選項等,在明白其工作原理的前提下,用戶才能利用它來放心地創(chuàng)建大量的規(guī)則記錄和策略去控制內(nèi)核數(shù)據(jù)包,才能正確有效地使用防火墻。這樣即使在圖形界而下使用防火墻,通過點擊你也明白內(nèi)核里發(fā)生了什么。

3 防火墻配置實例

假設(shè)有一個局域網(wǎng)要連接到Internet上,外部網(wǎng)絡(luò)地址為202.101.2.25。內(nèi)部網(wǎng)的私有地址采用C類地址192.168.0.0~192.168.255.0。具體操作步驟如下:

第一,一臺Linux主機上安裝2塊網(wǎng)卡eth0和eth1,給eth0網(wǎng)卡分配一個內(nèi)部網(wǎng)的私有地址192.168.100.0,用來與局域網(wǎng)相連;給eth1網(wǎng)卡分配一個外部網(wǎng)絡(luò)地址202.101.2.25,用來與Internet相連;第二,Linux主機上設(shè)置進(jìn)入、轉(zhuǎn)發(fā)、外出和用戶自定義鏈。本文采用先允許所有信息可流入和流出,還允許轉(zhuǎn)發(fā)包,但禁止一些危險包,如IP欺騙包、廣播包和ICMP服務(wù)類型攻擊包等的設(shè)置策略。具體設(shè)置如下:

1) 清除所有規(guī)則/sbin/ipchains-F forward /sbin/ipchains-F input/sbin/ipchains-F output

2) 設(shè)置初始規(guī)則/sbin/ipchains-A input-j ACCEPT /sbin/ipchains-A output–j Accept /sbin/ipchains-A forward -j ACCEPT

3) 設(shè)置本地環(huán)路規(guī)則/sbin/ipchains-A input-j ACCEPT-ilo /sbin/ipchains-A output-j ACCEPT-ilo

4) 禁止IP欺騙/sbin/ipchains-A input-j DENY-i eth1-s 192.168.100.0/24 /sbin/ipchains-A input-j DENY-i eth1-d 192.168.100.0/24 /sbin/ipchains-A output-j DENY-i eth1-s 192.168.100.0/24 /sbin/ipchains-A output-j DENY-i eth1-d 192.168.100.0/24 /sbin/ipchains-A input-j DENY- i eth1-s 202.101.2.25/32 /sbin/ipchains-A output-j DENY-i eth1-d 202.101.2.25/32

5) 禁止廣播包/sbin/ipchains-A input-j DENY-Ii eth0-s 255.255.255.255 /sbin/ipchains-A input-j DENY-Ii eth0-d 0.0.0.0 /sbin/ipchains-A output-j DENY-Ii eth0-s 240.0.0.0/3

6) 設(shè)置eth0轉(zhuǎn)發(fā)規(guī)則/sbin/ipchains-A forward-j MASQ-i eth0-s 192.168.100.0/24

7) 設(shè)置eth1轉(zhuǎn)發(fā)規(guī)則/sbin/ipchains-A forward-j ACCEPT-i eth1-s 192.168.100.0/24 /sbin/ipchains-A forward-j ACCEPT-i eth1-d 192.168.100.0/24

通過以上各步驟的配置,可以建立一個基于linux操作系統(tǒng)的包過濾防火墻。它具有配置簡單、安全性高和抵御能力強等優(yōu)點。

4 結(jié)束語

該文通過對Linux數(shù)據(jù)包過濾系統(tǒng)——Netfilter/Iptables的分析和研究,它使得用戶能夠很方便地在網(wǎng)絡(luò)邊界定制對數(shù)據(jù)包的各種控制,如有狀態(tài)或無狀態(tài)的包過濾、各種類型的網(wǎng)絡(luò)地址轉(zhuǎn)換、流量控制及高級的包處理等。在現(xiàn)實網(wǎng)絡(luò)環(huán)境中,安全總是相對和無止境的,防火墻有其固有的局限性。人們必須時刻保持高度警惕去防止新的攻擊,動態(tài)跟蹤系統(tǒng)的安全狀況,開發(fā)新的功能和采取新的策略。本文最后利用實例講解了利用 netfilter框架編程實現(xiàn)新功能,這種分析有利于研究人員去開發(fā)新的好的功能,用防火墻去努力保障主體的安全。

參考文獻(xiàn):

[1] The netfilter framework in linux2.4[EB/OL].http://www.gnumonks.org.

[2] Linux 2.4 netfilter hacking HOWTO [EB/OL].http:/netfilter.kernelnotes.org.

[3] 何海賓.基于Linux包過濾的防火墻技術(shù)及應(yīng)用[J].電子科技大學(xué)學(xué)報,2004.33(1):75-78.

主站蜘蛛池模板: 伊人色在线视频| 国产亚洲欧美在线专区| 尤物亚洲最大AV无码网站| 亚洲一区二区视频在线观看| 欧美a在线| 中国国产A一级毛片| a毛片在线免费观看| 麻豆精品视频在线原创| 精品91视频| 99精品伊人久久久大香线蕉| 亚洲中文字幕久久无码精品A| 天天色综网| 91亚洲国产视频| 色亚洲激情综合精品无码视频 | 美女高潮全身流白浆福利区| 国产91成人| 国产成人综合在线视频| 中文字幕资源站| 美女无遮挡免费网站| 中字无码精油按摩中出视频| 国产成人狂喷潮在线观看2345| 一级做a爰片久久毛片毛片| 精品国产乱码久久久久久一区二区| a级高清毛片| 91精品小视频| 国产精品亚欧美一区二区| 40岁成熟女人牲交片免费| 国产精品私拍在线爆乳| 无码中文字幕乱码免费2| 国产成人欧美| 国产精品制服| 扒开粉嫩的小缝隙喷白浆视频| 亚洲h视频在线| lhav亚洲精品| 国产精品入口麻豆| 亚洲最大情网站在线观看| 在线观看免费国产| 国产一级裸网站| 成年人福利视频| 欧美另类精品一区二区三区| 黄网站欧美内射| 国产区免费| 色婷婷狠狠干| 亚洲乱码在线播放| 又爽又黄又无遮挡网站| 人妖无码第一页| igao国产精品| 国产精品露脸视频| 丰满人妻被猛烈进入无码| 午夜福利视频一区| 国内a级毛片| 一区二区三区在线不卡免费| 亚洲最大看欧美片网站地址| 一级毛片无毒不卡直接观看| 亚洲九九视频| 亚洲国产日韩在线成人蜜芽| 精品国产Av电影无码久久久| 亚洲AV无码不卡无码| 国产91精品调教在线播放| 亚洲国产清纯| a毛片免费观看| 国产哺乳奶水91在线播放| 欧美性爱精品一区二区三区| 亚洲中文字幕无码爆乳| 久久亚洲综合伊人| 久久国产精品夜色| 国产自视频| 日本爱爱精品一区二区| 欧美一区福利| 亚洲伊人久久精品影院| 欧美成人二区| 麻豆国产在线观看一区二区| 亚洲第一黄片大全| aaa国产一级毛片| 日本一区二区三区精品AⅤ| 亚洲三级视频在线观看| 国产精品大尺度尺度视频| 国产精品hd在线播放| 亚洲an第二区国产精品| 中文字幕66页| 国内精品一区二区在线观看| 亚洲无线一二三四区男男|