iptables中文man文档
用用iptables-ADC?來指定鏈的規則,-A添加?-D刪除?-C?修改
iptables-?[RI]?chain?rule?num?rule-specification[option]
用iptables-?RI?通過規則的順序指定
iptables-D?chain?rule?num[option]
刪除指定規則
iptables-[LFZ]?[chain][option]
用iptables-LFZ?鏈名?[選項]
iptables-[NX]?chain
用?-NX?指定鏈
iptables-P?chain?target[options]
指定鏈的默認目標
iptables-E?old-chain-name?new-chain-name
-E?舊的鏈名?新的鏈名
用新的鏈名取代舊的鏈名
說明
Iptalbes?是用來設置、維護和檢查Linux內核的IP包過濾規則的。
可以定義不同的表,每個表都包含幾個內部的鏈,也能包含用戶定義的鏈。每個鏈都是一個規則列表,對對應的包進行匹配:每條規則指定應當如何處理與之相匹配的包。這被稱作'target'(目標),也可以跳向同一個表內的用戶定義的鏈。
TARGETS
防火墻的規則指定所檢查包的特征,和目標。如果包不匹配,將送往該鏈中下一條規則檢查;如果匹配,那么下一條規則由目標值確定.該目標值可以是用戶定義的鏈名,或是某個專用值,如ACCEPT[通過],?DROP[刪除],?QUEUE[排隊],?或者?RETURN[返回]。
ACCEPT?表示讓這個包通過。DROP表示將這個包丟棄。QUEUE表示把這個包傳遞到用戶空間。RETURN表示停止這條鏈的匹配,到前一個鏈的規則重新開始。如果到達了一個內建的鏈(的末端),或者遇到內建鏈的規則是RETURN,包的命運將由鏈準則指定的目標決定。
TABLES
當前有三個表(哪個表是當前表取決于內核配置選項和當前模塊)。
-t?table
這個選項指定命令要操作的匹配包的表。如果內核被配置為自動加載模塊,這時若模塊沒有加載,(系統)將嘗試(為該表)加載適合的模塊。這些表如下:filter,這是默認的表,包含了內建的鏈INPUT(處理進入的包)、FORWORD(處理通過的包)和OUTPUT(處理本地生成的包)。nat,這個表被查詢時表示遇到了產生新的連接的包,由三個內建的鏈構成:PREROUTING?(修改到來的包)、OUTPUT(修改路由之前本地的包)、POSTROUTING(修改準備出去的包)。mangle?這個表用來對指定的包進行修改。它有兩個內建規則:PREROUTING(修改路由之前進入的包)和OUTPUT(修改路由之前本地的包)。
OPTIONS
這些可被iptables識別的選項可以區分不同的種類。
COMMANDS
這些選項指定執行明確的動作:若指令行下沒有其他規定,該行只能指定一個選項.對于長格式的命令和選項名,所用字母長度只要保證iptables能從其他選項中區分出該指令就行了。
-A?-append
在所選擇的鏈末添加一條或更多規則。當源(地址)或者/與?目的(地址)轉換為多個地址時,這條規則會加到所有可能的地址(組合)后面。
-D?-delete
從所選鏈中刪除一條或更多規則。這條命令可以有兩種方法:可以把被刪除規則指定為鏈中的序號(第一條序號為1),或者指定為要匹配的規則。
-R?-replace
從選中的鏈中取代一條規則。如果源(地址)或者/與?目的(地址)被轉換為多地址,該命令會失敗。規則序號從1開始。
-I?-insert
根據給出的規則序號向所選鏈中插入一條或更多規則。所以,如果規則序號為1,規則會被插入鏈的頭部。這也是不指定規則序號時的默認方式。
-L?-list
顯示所選鏈的所有規則。如果沒有選擇鏈,所有鏈將被顯示。也可以和z選項一起使用,這時鏈會被自動列出和歸零。精確輸出受其它所給參數影響。
-F?-flush
清空所選鏈。這等于把所有規則一個個的刪除。
--Z?-zero
把所有鏈的包及字節的計數器清空。它可以和?-L配合使用,在清空前察看計數器,請參見前文。
-N?-new-chain
根據給出的名稱建立一個新的用戶定義鏈。這必須保證沒有同名的鏈存在。
-X?-delete-chain
刪除指定的用戶自定義鏈。這個鏈必須沒有被引用,如果被引用,在刪除之前你必須刪除或者替換與之有關的規則。如果沒有給出參數,這條命令將試著刪除每個非內建的鏈。
-P?-policy
設置鏈的目標規則。
-E?-rename-chain
根據用戶給出的名字對指定鏈進行重命名,這僅僅是修飾,對整個表的結構沒有影響。TARGETS參數給出一個合法的目標。只有非用戶自定義鏈可以使用規則,而且內建鏈和用戶自定義鏈都不能是規則的目標。
-h?Help.
幫助。給出當前命令語法非常簡短的說明。
PARAMETERS
參數
以下參數構成規則詳述,如用于add、delete、replace、append?和?check命令。
-p?-protocal?[!]protocol
規則或者包檢查(待檢查包)的協議。指定協議可以是tcp、udp、icmp中的一個或者全部,也可以是數值,代表這些協議中的某一個。當然也可以使用在/etc/protocols中定義的協議名。在協議名前加上"!"表示相反的規則。數字0相當于所有all。Protocol?all會匹配所有協議,而且這是缺省時的選項。在和check命令結合時,all可以不被使用。
-s?-source?[!]?address[/mask]
指定源地址,可以是主機名、網絡名和清楚的IP地址。mask說明可以是網絡掩碼或清楚的數字,在網絡掩碼的左邊指定網絡掩碼左邊"1"的個數,因此,mask值為24等于255.255.255.0。在指定地址前加上"!"說明指定了相反的地址段。標志?--src?是這個選項的簡寫。
-d?--destination?[!]?address[/mask]
指定目標地址,要獲取詳細說明請參見?-s標志的說明。標志?--dst?是這個選項的簡寫。
-j?--jump?target
-j?目標跳轉
指定規則的目標;也就是說,如果包匹配應當做什么。目標可以是用戶自定義鏈(不是這條規則所在的),某個會立即決定包的命運的專用內建目標,或者一個擴展(參見下面的EXTENSIONS)。如果規則的這個選項被忽略,那么匹配的過程不會對包產生影響,不過規則的計數器會增加。
-i?-in-interface?[!]?[name]
i?-進入的(網絡)接口?[!][名稱]
這是包經由該接口接收的可選的入口名稱,包通過該接口接收(在鏈INPUT、FORWORD和PREROUTING中進入的包)。當在接口名前使用"!"說明后,指的是相反的名稱。如果接口名后面加上"+",則所有以此接口名開頭的接口都會被匹配。如果這個選項被忽略,會假設為"+",那么將匹配任意接口。
-o?--out-interface?[!][name]
-o?--輸出接口[名稱]
這是包經由該接口送出的可選的出口名稱,包通過該口輸出(在鏈FORWARD、OUTPUT和POSTROUTING中送出的包)。當在接口名前使用"!"說明后,指的是相反的名稱。如果接口名后面加上"+",則所有以此接口名開頭的接口都會被匹配。如果這個選項被忽略,會假設為"+",那么將匹配所有任意接口。
[!]?-f,?--fragment
[!]?-f?--分片
這意味著在分片的包中,規則只詢問第二及以后的片。自那以后由于無法判斷這種把包的源端口或目標端口(或者是ICMP類型的),這類包將不能匹配任何指定對他們進行匹配的規則。如果"!"說明用在了"-f"標志之前,表示相反的意思。
OTHER?OPTIONS
其他選項
還可以指定下列附加選項:
-v?--verbose
-v?--詳細
詳細輸出。這個選項讓list命令顯示接口地址、規則選項(如果有)和TOS(Type?of?Service)掩碼。包和字節計數器也將被顯示,分別用K、M、G(前綴)表示1000、1,000,000和1,000,000,000倍(不過請參看-x標志改變它),對于添加,插入,刪除和替換命令,這會使一個或多個規則的相關詳細信息被打印。
-n?--numeric
-n?--數字
數字輸出。IP地址和端口會以數字的形式打印。默認情況下,程序試顯示主機名、網絡名或者服務(只要可用)。
-x?-exact
-x?-精確
擴展數字。顯示包和字節計數器的精確值,代替用K,M,G表示的約數。這個選項僅能用于?-L?命令。
--line-numbers
當列表顯示規則時,在每個規則的前面加上行號,與該規則在鏈中的位置相對應。
MATCH?EXTENSIONS
對應的擴展
iptables能夠使用一些與模塊匹配的擴展包。以下就是含于基本包內的擴展包,而且他們大多數都可以通過在前面加上!來表示相反的意思。
tcp
當?--protocol?tcp?被指定,且其他匹配的擴展未被指定時,這些擴展被裝載。它提供以下選項:
--source-port?[!]?[port[]]
源端口或端口范圍指定。這可以是服務名或端口號。使用格式端口:端口也可以指定包含的(端口)范圍。如果首端口號被忽略,默認是"0",如果末端口號被忽略,默認是"65535",如果第二個端口號大于第一個,那么它們會被交換。這個選項可以使用?--sport的別名。
--destionation-port?[!]?[port:[port]]
目標端口或端口范圍指定。這個選項可以使用?--dport別名來代替。
--tcp-flags?[!]?mask?comp
匹配指定的TCP標記。第一個參數是我們要檢查的標記,一個用逗號分開的列表,第二個參數是用逗號分開的標記表,是必須被設置的。標記如下:SYN?ACK?FIN?RST?URG?PSH?ALL?NONE。因此這條命令:iptables-A?FORWARD?-p?tcp?--tcp-flags?SYN,?ACK,?FIN,?RST?SYN只匹配那些SYN標記被設置而ACK、FIN和RST標記沒有設置的包。
[!]?--syn
只匹配那些設置了SYN位而清除了ACK和FIN位的TCP包。這些包用于TCP連接初始化時發出請求;例如,大量的這種包進入一個接口發生堵塞時會阻止進入的TCP連接,而出去的TCP連接不會受到影響。這等于?--tcp-flags?SYN,?RST,?ACK?SYN。如果"--syn"前面有"!"標記,表示相反的意思。
--tcp-option?[!]?number
匹配設置了TCP選項的。
udp
當protocol?udp?被指定,且其他匹配的擴展未被指定時,這些擴展被裝載,它提供以下選項:
--source-port?[!]?[port:[port]]
源端口或端口范圍指定。詳見?TCP擴展的--source-port選項說明。
--destination-port?[!]?[port:[port]]
目標端口或端口范圍指定。詳見?TCP擴展的--destination-port選項說明。
icmp
當protocol?icmp被指定,且其他匹配的擴展未被指定時,該擴展被裝載。它提供以下選項:
--icmp-type?[!]?typename
這個選項允許指定ICMP類型,可以是一個數值型的ICMP類型,或者是某個由命令iptables-p?icmp?-h所顯示的ICMP類型名。
mac
--mac-source?[!]?address
匹配物理地址。必須是XX:XX:XX:XX:XX這樣的格式。注意它只對來自以太設備并進入PREROUTING、FORWORD和INPUT鏈的包有效。
limit
這個模塊匹配標志用一個標記桶過濾器一一定速度進行匹配,它和LOG目標結合使用來給出有限的登陸數.當達到這個極限值時,使用這個擴展包的規則將進行匹配.(除非使用了"!"標記)
--limit?rate
最大平均匹配速率:可賦的值有'/second',?'/minute',?'/hour',?or?'/day'這樣的單位,默認是3/hour。
--limit-burst?number
待匹配包初始個數的最大值:若前面指定的極限還沒達到這個數值,則概數字加1.默認值為5
multiport
這個模塊匹配一組源端口或目標端口,最多可以指定15個端口。只能和-p?tcp?或者?-p?udp?連著使用。
--source-port?[port[,?port]]
如果源端口是其中一個給定端口則匹配
--destination-port?[port[,?port]]
如果目標端口是其中一個給定端口則匹配
--port?%5
轉載于:https://blog.51cto.com/zhangcz/1343906
總結
以上是生活随笔為你收集整理的iptables中文man文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Easyui入门视频教程 第01集---
- 下一篇: 第三部分:Android 应用程序接口指