概況
Linux系統(tǒng)中,防火墻(Firewall),網(wǎng)址轉(zhuǎn)換(NAT),數(shù)據(jù)包(package)記錄,流量統(tǒng)計,這些功能是由Netfilter子系統(tǒng)所提供
Netfilter
|
Firewall NAT Package
Netfilter和iptables
Linux提供的所有包過濾和包修改設(shè)施的官方項目稱為Netfilter;Netfilter是一個框架,用于在不同階段將函數(shù)hook進網(wǎng)絡(luò)棧,iptables在它之上建立了防火墻功能;
同時,iptables還是同名的用戶層工具,將防火墻策略傳遞給內(nèi)核,表table、鏈chain、匹配match、目標target只在iptables上下文中有意義。
iptables結(jié)構(gòu)和應(yīng)用場景


以本地為目的地址的數(shù)據(jù)包
數(shù)據(jù)包經(jīng)過的表和鏈,按step順序:

以本地為源地址的數(shù)據(jù)包

被轉(zhuǎn)發(fā)的數(shù)據(jù)包

iptables應(yīng)用場景

表
按處理優(yōu)先級:raw>mangle>nat>filter
鏈
iptables中filter表的INPUT/FORWARD/OUTPUT鏈,nat表的PREROUTING/POSTROUTING鏈

匹配
每個iptables規(guī)則都包含一組匹配以及一個目標
--source(-s) 匹配源ip地址或網(wǎng)絡(luò)
--destination(-d) 匹配目標ip地址或網(wǎng)絡(luò)
--protocol(-p) 匹配ip值
--in-interface(-i) 流入接口
--out-interface(-o) 流出接口
--state 匹配一組連接狀態(tài)
--string 匹配應(yīng)用層數(shù)據(jù)字節(jié)序列
--comment 注釋數(shù)據(jù)
目標
ACCEPT 允許數(shù)據(jù)包通過
DROP 丟棄數(shù)據(jù)包
LOG 將數(shù)據(jù)包信息記錄到syslog
REJECT 拒絕數(shù)據(jù)包,丟棄
RETURN 在調(diào)用鏈中繼續(xù)處理數(shù)據(jù)包