iptables規則
規則--顧名思義就是規矩和原則,和現實生活中的事情是一樣的,國有國法,家有家規,所以要遵紀守法的嘛。當然在防火牆上的規則,在內核看來,規則就是決定如何處理一個包的語句。如果一個包符合所有的條件,我們就用相應的處理動作來處理。書寫規則的語法格式爲:
iptables [-t table] command chains [creteria] -j action
-t table就是表名,filter/nat/mangle三個表中的一個,默認是filter表
command告訴程序如何做,比如:插入一個規則,還是刪除等
chains 鏈,有五個,PREROUTING POSTROUTING INPUT OUTPUT FORWARD
action 處理動作,有ACCEPT DENY DROP REJECT SNAT DNAT
理一下思路
下面一點點的說
一、Tables
選項-t用來指定用哪個表,它可以是下面的任何一個,默認的是filter表
二、COMMANDS
command指定iptables對我們提交的規則要做什麼樣的操作。這些操作可能是在某個表裏增加或刪除一些東西,或其他的動作。一下是iptables可用的command(如不做說明,默認表是filter)
和命令結合常用的選項
三、chains
簡單說一下五個鏈的作用:
PREROUTING 是在包進入防火牆之後、路由決策之前做處理
POSTROUTING 是在路由決策之後,做處理
INPUT 在包被路由到本地之後,但在出去用戶控件之前做處理
OUTPUT在去頂包的目的之前做處理
FORWARD在最初的路由決策之後,做轉發處理
四、匹配條件
4.1 基本匹配
4.2 隱含擴展匹配
這種匹配操作是自動的或隱含的裝入內核的。例如使用-p tcp時,不需要再裝入任何東西就可以匹配只有IP包纔有的特點。隱含匹配針對三種不同的協議,即TCP UDP ICMP。它們分別有一套適用於相應協議的判斷標準
TCP匹配 只能匹配TCP包的細節,必須有-p tcp作爲前提
--sport port 基於TCP包的源端口來匹配包
--dport port 基於TCP包的目的端口來匹配包
--tcp-flags tcp標誌位 有兩個參數列表。第一個是指定要檢查的標識位;第二個是指定爲1的標識位
UDP匹配
--sprot port
--dport port
ICMP匹配
--icmp-type
8 request 請求
0 reply 回覆 響應