iptables基础篇
iptables的起源
?? netfilter工作于 kernel的framework(框架)
iptables的前身叫ipfirewall (內(nèi)核1.x時(shí)代),這是一個(gè)作者從freeBSD上移植過(guò)來(lái)的,能夠工作在內(nèi)核當(dāng)中的,對(duì)數(shù)據(jù)包進(jìn)行檢測(cè)的一款簡(jiǎn)易訪問(wèn)控制工具。但是ipfirewall工作功能極其有限(它需要將所有的規(guī)則都放進(jìn)內(nèi)核當(dāng)中,這樣規(guī)則才能夠運(yùn)行起來(lái),而放進(jìn)內(nèi)核,這個(gè)做法一般是極其困難的)。當(dāng)內(nèi)核發(fā)展到2.x系列的時(shí)候,軟件更名為ipchains,它可以定義多條規(guī)則,將他們串起來(lái),共同發(fā)揮作用,而現(xiàn)在,它叫做iptables
iptable是工作在用戶(hù)空間中,編寫(xiě)規(guī)則的工具,不能算是真正意義上的防火墻,它定義的規(guī)則需要送至工作于在內(nèi)核空間中netfilter,并且通過(guò)實(shí)現(xiàn)netfilter實(shí)現(xiàn)防火墻功能。而放入內(nèi)核的地方必須要是特定的位置,必須是tcp/ip的協(xié)議棧經(jīng)過(guò)的地方。而這個(gè)tcp/ip協(xié)議棧必須經(jīng)過(guò)的地方,可以實(shí)現(xiàn)讀取規(guī)則的地方就叫做 netfilter.(網(wǎng)絡(luò)過(guò)濾器)
作者在內(nèi)核的tcp/ip協(xié)議棧上選擇的參考點(diǎn)
prerouting: 進(jìn)入本機(jī)后,路由功能發(fā)生之前
input:到達(dá)本機(jī)內(nèi)部
output: 由本機(jī)發(fā)出
forward: 由本機(jī)轉(zhuǎn)發(fā)
postrouting:路由功能發(fā)生之后(進(jìn)入網(wǎng)卡發(fā)送隊(duì)列之前),即將離開(kāi)本機(jī)之前
????這五個(gè)參考點(diǎn)又叫 hooks function: 鉤子函數(shù)?也叫五個(gè)規(guī)則鏈?組成了netfilter框架;任何一個(gè)數(shù)據(jù)包要經(jīng)由本主機(jī),都將經(jīng)過(guò)這五個(gè)鏈中某鏈;
數(shù)據(jù)包過(guò)濾匹配流程圖
鏈上的規(guī)則次序即為檢查次序
netfilter 規(guī)則的功能
(1). 過(guò)濾:firewall,
(2). 地址轉(zhuǎn)換:NAT Server
(3). mangle:修改報(bào)文首部中的某些信息(能夠?qū)崿F(xiàn)將數(shù)據(jù)包的元數(shù)據(jù)拆開(kāi),在里面做標(biāo)記/修改內(nèi)容的。如防火墻標(biāo)記,TTL)
(4). raw:關(guān)閉nat表上啟用的連接追蹤功能(對(duì)nat的功能的一些補(bǔ)充)
功能生效的位置
filter功能:input, forward, output
nat功能可:prerouting, output(很少用到), postrouting
mangle功能:prerouting,input, forward, output, postrouting
raw:prerouting,output #只能發(fā)生在nat功能的前半段
規(guī)則編寫(xiě)注意
注意:規(guī)則的次序非常關(guān)鍵,而檢查規(guī)則的時(shí)候,是按照從上往下的方式進(jìn)行檢查的。所以在編寫(xiě)規(guī)則的時(shí)候應(yīng)該 :?
1 。同類(lèi)規(guī)則,匹配范圍小的放上面;
2 。不同類(lèi)規(guī)則,匹配報(bào)文幾率較大的放上面;
規(guī)則匹配流程
??防火墻是層層過(guò)濾的。實(shí)際按照規(guī)則的順序從上到下,從前到后進(jìn)行過(guò)濾的。(按照規(guī)則順序依次匹配的)
?如果匹配上規(guī)則,明確表明是阻止還是通過(guò),數(shù)據(jù)包就不在向下匹配新規(guī)則了
如果規(guī)則中沒(méi)有明確表明是阻止還是通過(guò),也就是沒(méi)有匹配規(guī)則,向下進(jìn)行匹配直到 匹配默認(rèn)規(guī)則得到明確的阻止還是通過(guò)。
? ??
防火墻的策略
通:默認(rèn)門(mén)是關(guān)著的,必須要定義誰(shuí)能進(jìn)
堵:大門(mén)是洞開(kāi)的,但是你必須有身份認(rèn)證,否則不能進(jìn)。
轉(zhuǎn)載于:https://blog.51cto.com/1066875821/1650397
總結(jié)
以上是生活随笔為你收集整理的iptables基础篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c# WinForm英雄联盟挂机源码及实
- 下一篇: HihoCoder#1051:补提交卡