Linux netfilter/iptables知識點詳解
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)卡進行處理,即匹配不通的鏈。
- 由網(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ù)鏈來進行的,但是實際的使用過程中,是通過表來作為操作入口,來對規(guī)則進行定義的。
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)核的一部分,所以,如果我們想要防火墻能夠達到"防火"的目的,則需要在內(nèi)核中設(shè)置關(guā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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux特殊權(quán)限使用(suid、sgid、sbit)
這篇文章主要介紹了linux特殊權(quán)限使用(suid、sgid、sbit),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08Linux下一個智能重啟Apache服務(wù)器的腳本分享
這篇文章主要介紹了Linux下一個智能重啟Apache服務(wù)器的腳本分享,當(dāng)檢測到腳本中所設(shè)定的服務(wù)器異常情況下便可執(zhí)行自動重啟,需要的朋友可以參考下2015-07-07使用反向ssh從外網(wǎng)訪問內(nèi)網(wǎng)主機的方法詳解
這篇文章主要給大家介紹了使用反向ssh從外網(wǎng)訪問內(nèi)網(wǎng)主機的方法,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下來要起看看吧。2017-04-04詳解如何在Linux(CentOS)下重置MySQL根(Root)密碼
本篇文章主要介紹了詳解如何在Linux(CentOS)下重置MySQL根(Root)密碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03如何解決win10與Ubuntu16.04時間不同步的問題的方法
本篇文章主要介紹了如何解決win10與Ubuntu16.04時間不同步的問題的方法,非常具有實用價值,需要的朋友可以參考下2017-05-05CentOS 安裝軟件出現(xiàn)錯誤:/lib/ld-linux.so.2: bad ELF interpreter 解決
這篇文章主要介紹了CentOS 安裝軟件出現(xiàn)錯誤:/lib/ld-linux.so.2: bad ELF interpreter 解決的相關(guān)資料,需要的朋友可以參考下2017-03-03