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