概況
Linux系統(tǒng)中,防火墻(Firewall),網(wǎng)址轉(zhuǎn)換(NAT),數(shù)據(jù)包(package)記錄,流量統(tǒng)計(jì),這些功能是由Netfilter子系統(tǒng)所提供
Netfilter
|
Firewall NAT Package
Netfilter和iptables
Linux提供的所有包過濾和包修改設(shè)施的官方項(xiàng)目稱為Netfilter橡卤;Netfilter是一個(gè)框架,用于在不同階段將函數(shù)hook進(jìn)網(wǎng)絡(luò)棧驰贷,iptables在它之上建立了防火墻功能虹钮;
同時(shí),iptables還是同名的用戶層工具而姐,將防火墻策略傳遞給內(nèi)核腊凶,表table、鏈chain拴念、匹配match钧萍、目標(biāo)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鏈
匹配
每個(gè)iptables規(guī)則都包含一組匹配以及一個(gè)目標(biāo)
--source(-s) 匹配源ip地址或網(wǎng)絡(luò)
--destination(-d) 匹配目標(biāo)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ù)
目標(biāo)
ACCEPT 允許數(shù)據(jù)包通過
DROP 丟棄數(shù)據(jù)包
LOG 將數(shù)據(jù)包信息記錄到syslog
REJECT 拒絕數(shù)據(jù)包,丟棄
RETURN 在調(diào)用鏈中繼續(xù)處理數(shù)據(jù)包