Netfilter簡(jiǎn)介
Linux下的包過(guò)濾防火墻,可以運(yùn)行在2.4,2.6內(nèi)核上;集成在內(nèi)核中,不是系統(tǒng)的一個(gè)守護(hù)進(jìn)程;對(duì)OSI模型中2,3,4層進(jìn)行處理;只能對(duì)數(shù)據(jù)包頭進(jìn)行處理;可以用iptables命令來(lái)進(jìn)行規(guī)則的配置;代替了ipchains;可以從http://www.netfilter.org查到更多資源。
基本的Netfilter編譯選項(xiàng)
為了運(yùn)行iptables,需要在內(nèi)核配置期間,選擇以下一些選項(xiàng),不管你用make config或其他命令。
在內(nèi)核配置文件中要啟用一些較重要的選項(xiàng)包括Netfilter連接跟蹤、日志記錄和包過(guò)濾。(請(qǐng)記住iptables通過(guò)用由Netfilter提供的內(nèi)核中框架來(lái)建立一個(gè)策略)。
在Network Packet Filtering Framework(Netfilter)中還有兩個(gè)額外的配置選項(xiàng)――Core Netfilter Configuration(核心Netfilter配置)和IP:Netfilter Configuration(IP:Netfilter配置)。
核心Netfilter配置
核心Netfilter配置選項(xiàng)中包含的一些得要選項(xiàng)都應(yīng)該被啟用:
Comment match support(comment匹配支持);
FTP support(FTP協(xié)議支持);
Length match support(數(shù)據(jù)包長(zhǎng)度匹配支持);
Limit match support(Limit匹配支持);
MAC address match support(MAC地址匹配支持);
MARK target support(MARK目標(biāo)支持);
Netfilter connection tracking support(Netfilter連接跟蹤支持);
Netfilter LOG over NFNETLINK interface(Netfilter通過(guò)NFNETLINK接口記錄日志);
Netfilter netlink interface(Netfilter netlink接口);
Netfilter Xtables support(Netfilter Xtables支持);
State match support(state匹配支持);
String match support(string匹配支持);
IP:Netfilter配置
ECN target support(ECN目標(biāo)支持);
Full NAT(完整NAT支持);
IP address range match support(ip地址范圍匹配支持);
IP tables support(IP tables支持,filtering/masq/NAT需要);
IPv4 connection tracking support(IPv4連接跟蹤支持,NAT需要);
LOG target support(LOG目標(biāo)支持);
MASQUERAD target support(MASQUERAD目標(biāo)支持);
Owner match support(owner匹配支持);
Packet filtering(包過(guò)濾支持);
Packet mangling(包修改支持,常用于改變包的路由);
Raw table support(RAW表支持,NOTRACK/TRACE需要);
Recent match support(recent匹配支持);
REJECT target support(REJECT目標(biāo)支持);
TOS match support(TOS匹配支持);
TOS target support(TOS目標(biāo)支持);
TTL match support(TTL匹配支持);
TTL target support(TTL目標(biāo)支持);
ULOG target support(ULOG目標(biāo)支持);
Netfilter工作的位置
Netfilter是以模塊的方式存在于Linux中,每當(dāng)Linux多一個(gè)Netfilter的模塊就代表著Linux防火墻的功能多了一項(xiàng),當(dāng)然其功能也隨之增加。其中/lib/modules/2.6.18-164.el5/kernel/net/ipv4/netfilter目錄下所存放的模塊只能工作在IPv4的網(wǎng)絡(luò)環(huán)境下;如下圖所示:
/lib/modules/2.6.18-164.el5/kernel/net/ipv6/netfilter目錄下所存放的模塊只能工作在IPv6的網(wǎng)絡(luò)環(huán)境下,如下圖所示:
以上的兩個(gè)目錄的模塊有個(gè)共同的特性, 都與“協(xié)議”有關(guān), 因此,在使用這些模塊時(shí),必須特別留意哪些模塊只能使用在哪個(gè)協(xié)議下。Linux自2.6.14版本開(kāi)始, 其內(nèi)含的Netfilter模塊在設(shè)計(jì)上有了重大的改變,Netfilter組織希望模塊與“協(xié)議”無(wú)關(guān),所以就目前情況看來(lái)已有部份模塊可以達(dá)到這樣的要求其路徑為/lib/modules/2.6.18-164.el5/kernel/net/netfilter如下圖所示:
Netfilter的命令結(jié)構(gòu)
了解了Netfilter的結(jié)構(gòu)后應(yīng)該清楚以上的模塊只是提供了某些過(guò)濾匹配的功能而已,如果我們希望Netfilter能為我們做些事,那我們就需給Netfilter執(zhí)行“規(guī)則”,有了規(guī)則后,Netfilter才會(huì)知道哪些封包是可以被接受的,哪些封包是必須除掉的, 又有哪些封包是必須以特殊方式來(lái)處理的。而給予Netfilter規(guī)則的方式則是將規(guī)則填入到一塊有結(jié)構(gòu)性的內(nèi)存中,這樣,Netfilter就會(huì)依照防火墻管理人員所給的命令來(lái)執(zhí)行。該內(nèi)存就是俗稱的表,表是防火墻的最大集合,包含鏈和規(guī)則;表包括filter table過(guò)濾表;nat用于地址轉(zhuǎn)換;mangle俗稱矯正表和RAW表。鏈則是規(guī)則的集合。
匹配:滿足的條件,如源地址,端口等。
方法:對(duì)條件做出處理,accept,drop等。
Filter表是Netfilter內(nèi)最為重要的機(jī)制,其任務(wù)為執(zhí)行數(shù)據(jù)包的過(guò)濾動(dòng)作,也就是防火墻的功能;包含INPUT、OUTPUT和FORWARD鏈,用于處理輸入、輸出和轉(zhuǎn)發(fā)包。filter表是缺省的表。
NAT(Network Address Translation)也是防火墻上一個(gè)不可或缺的重要機(jī)制,它的功能類(lèi)似于IP分享器,只是相應(yīng)功能更加強(qiáng)大。用于處理網(wǎng)絡(luò)地址翻譯。(包含與masquerading 相關(guān)的功能);包含PREROUTING(路由前);POSTROUTING(路由后)OUTPUT 輸出(很少用到)共3個(gè)鏈。
Mangle表用于處理特殊包的矯正,包含兩個(gè)鏈PREROUTING (路由前),POSTROUTING(路由后)。在流量控制和Qos應(yīng)用中,經(jīng)常會(huì)用到mangle表。
RAW表負(fù)責(zé)加快數(shù)據(jù)包穿越防火墻機(jī)制的速度,借此提高防火墻的性能。
Netfilter的Filter機(jī)制
Filter作為Netfilter中的防火墻分類(lèi),首先需明確“數(shù)據(jù)包的分類(lèi)”,以下圖所示,假設(shè)在計(jì)算機(jī)上裝有兩片網(wǎng)卡,并且在計(jì)算機(jī)上分別執(zhí)行Httpd及Firefox兩個(gè)程序。
INPUT類(lèi)型:所謂INPUT類(lèi)型是指網(wǎng)絡(luò)上其它主機(jī)送給本機(jī)處理(Local Process)的數(shù)據(jù)包,例如當(dāng)網(wǎng)絡(luò)上的其它使用都來(lái)訪問(wèn)本的的HTTPD服務(wù)時(shí)就會(huì)產(chǎn)生這種類(lèi)型的數(shù)據(jù)包。
OUTPUT類(lèi)型:如果是本機(jī)Process所產(chǎn)生的數(shù)據(jù)包,即為OUTPUT類(lèi)型的數(shù)據(jù)包。例如,當(dāng)使用者在本機(jī)上啟用Firefox去訪問(wèn)網(wǎng)絡(luò)上的其它主機(jī)時(shí)就會(huì)產(chǎn)生這種類(lèi)型的封包。
FORWARD類(lèi)型:如果數(shù)據(jù)包對(duì)本機(jī)而言只是“路過(guò)”,那么這就屬于FORWARD類(lèi)型的數(shù)據(jù)包。當(dāng)本機(jī)執(zhí)行Router的角色就會(huì)有FORWARD類(lèi)型的數(shù)據(jù)包。
億恩科技地址(ADD):鄭州市黃河路129號(hào)天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206
本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|