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框架;任何一個數據包要經由本主機,都將經過這五個鏈中某鏈;

數據包過濾匹配流程圖

wKioL1VQqcTwxv97AAJG6pegVrU691.jpg

鏈上的規則次序即爲檢查次序

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 。不同類規則,匹配報文機率較大的放上面;


規則匹配流程

  1.   防火牆是層層過濾的。實際按照規則的順序從上到下,從前到後進行過濾的。(按照規則順序依次匹配的)

  2.  如果匹配上規則,明確表明是阻止還是通過,數據包就不在向下匹配新規則了

  3. 如果規則中沒有明確表明是阻止還是通過,也就是沒有匹配規則,向下進行匹配直到 匹配默認規則得到明確的阻止還是通過。

    

防火牆的策略

通:默認門是關着的,必須要定義誰能進

堵:大門是洞開的,但是你必須有身份認證,否則不能進。










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章