Netfilter
Netfilter是Linux內(nèi)核中的一個數(shù)據(jù)包處理模塊,它可以提供數(shù)據(jù)包的過濾、轉(zhuǎn)發(fā)、地址轉(zhuǎn)換NAT功能。Iptables是一個工具,可以用來在Netfilter中增加、修改、刪除數(shù)據(jù)包處理規(guī)則。
Netfilter是位于網(wǎng)卡和內(nèi)核協(xié)議棧之間的一堵墻,是一種免費的軟件防火墻。
Netfilter中有三個主要的概念:規(guī)則、表、鏈,等級依次遞增。
- 規(guī)則是對特定報文的處理說明,包括匹配字段和action。
- 鏈?zhǔn)且唤M規(guī)則的集合。
- 表是鏈中相同功能的規(guī)則集合。
規(guī)則
鏈
鏈可以看作網(wǎng)卡和內(nèi)核協(xié)議棧之前的多道關(guān)卡,對于不通類型的報文,走不通的關(guān)卡進(jìn)行處理,即匹配不通的鏈。
- 由網(wǎng)卡上送到內(nèi)核協(xié)議棧的報文:PREROUTING -> INPUT
- 由網(wǎng)卡出來不能上送到內(nèi)核協(xié)議棧的報文:PREROUTING -> FORWARD -> POSTROUTING
- 由內(nèi)核協(xié)議棧送往網(wǎng)卡的報文:OUTPUT -> POSTROUTING
表
為了管理方便,鏈中相同功能的規(guī)則被組織在了一張表中,iptables已經(jīng)為我們定義了四張表。
表的優(yōu)先級次序(由高到低):raw -> mangle -> nat -> filter
表鏈關(guān)系
一張鏈中可以有多張表,但是不一定擁有全部的表。
數(shù)據(jù)包的處理是根據(jù)鏈來進(jìn)行的,但是實際的使用過程中,是通過表來作為操作入口,來對規(guī)則進(jìn)行定義的。
iptables
iptables介紹
linux的包過濾功能,即linux防火墻,它由netfilter 和 iptables 兩個組件組成。
netfilter 組件也稱為內(nèi)核空間,是內(nèi)核的一部分,由一些信息包過濾表組成,這些表包含內(nèi)核用來控制信息包過濾處理的規(guī)則集。
iptables 組件是一種工具,也稱為用戶空間,它使插入、修改和除去信息包過濾表中的規(guī)則變得容易。
iptables基礎(chǔ)
我們知道iptables是按照規(guī)則來辦事的,規(guī)則其實就是網(wǎng)絡(luò)管理員預(yù)定義的條件,規(guī)則一般的定義為"如果數(shù)據(jù)包頭符合這樣的條件,就這樣處理這個數(shù)據(jù)包"。規(guī)則存儲在內(nèi)核空間的信息包過濾表中,這些規(guī)則分別指定了源地址、目的地址、傳輸協(xié)議(如TCP、UDP、ICMP)和服務(wù)類型(如HTTP、FTP和SMTP)等。當(dāng)數(shù)據(jù)包與規(guī)則匹配時,iptables就根據(jù)規(guī)則所定義的方法來處理這些數(shù)據(jù)包,如放(accept)、拒絕(reject)和丟棄(drop)等。配置防火墻的主要工作就是添加、修改和刪除這些規(guī)則。
當(dāng)客戶端訪問服務(wù)器的web服務(wù)時,客戶端發(fā)送報文到網(wǎng)卡,而tcp/ip協(xié)議棧是屬于內(nèi)核的一部分,所以,客戶端的信息會通過內(nèi)核的TCP協(xié)議傳輸?shù)接脩艨臻g中的web服務(wù)中,而此時,客戶端報文的目標(biāo)終點為web服務(wù)所監(jiān)聽的套接字(IP:Port)上,當(dāng)web服務(wù)需要響應(yīng)客戶端請求時,web服務(wù)發(fā)出的響應(yīng)報文的目標(biāo)終點則為客戶端,這個時候,web服務(wù)所監(jiān)聽的IP與端口反而變成了原點,我們說過,netfilter才是真正的防火墻,它是內(nèi)核的一部分,所以,如果我們想要防火墻能夠達(dá)到"防火"的目的,則需要在內(nèi)核中設(shè)置關(guān)卡,所有進(jìn)出的報文都要通過這些關(guān)卡,經(jīng)過檢查后,符合放行條件的才能放行,符合阻攔條件的則需要被阻止,于是,就出現(xiàn)了input關(guān)卡和output關(guān)卡,而這些關(guān)卡在iptables中不被稱為"關(guān)卡",而被稱為"鏈"。
到此這篇關(guān)于Linux netfilter/iptables知識點詳解的文章就介紹到這了,更多相關(guān)Linux - netfilter/iptables內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!