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