linux系統中檢視己設定iptables規則
1、iptables -L
檢視filter表的iptables規則,包括所有的鏈。
filter表包含INPUT、OUTPUT、FORWARD三個規則鏈
。
說明:-L是--list的簡寫,作用是列出規則。
2、iptables -L [-t 表名]
只檢視某個表的中的規則。
說明:
表名一共有三個:filter,nat,mangle,如果沒有指定表名,則預設檢視filter表的規則
列表(就相當於第一條命令)。
舉例:iptables -L -t filter
3、iptables -L [-t 表名] [鏈名]
這裡多了個鏈名,就是規則鏈的名稱。
說明:
iptables一共有INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING五個規則鏈
。
舉例:iptables -L INPUT
注意:
鏈名必須大寫
。在Linux系統上,命令的大小寫很敏感。
4、iptables -n -L
說明:以數字形式顯示規則。如果沒有-n,規則中可能會出現anywhere,有了-n,它會變成0.0.0.0/0
5、iptables -nv -L
說明:你也可以使用“iptables -L -nv”來檢視,這個列表看起來更詳細,對技術人員更友好,呵呵。
如果想刪除iptables規則我們可以如下操作
刪除用-D引數
刪除之前新增的規則(iptables -A INPUT -s 192.168.1.5 -j DROP):
[root@test ~]#
iptables -D INPUT -s 192.168.1.5 -j DROP
有時候要刪除的規則太長,刪除時要寫一大串,既浪費時間又容易寫錯,這時我們可以
先使用 –line-number找出該條規則的行號,再透過行號刪除規則。
[root@test ~]# iptables -nv --line-number
iptables v1.4.7: no command specified
Try `iptables -h' or 'iptables --help' for more information.
[root@test ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 192.168.1.1 0.0.0.0/0
2 DROP all -- 192.168.1.2 0.0.0.0/0
3 DROP all -- 192.168.1.3 0.0.0.0/0
刪除第二行規則
[root@test ~]# iptables -D INPUT 2
[root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@tp ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
(注:這個規則,如果你把OUTPUT 設定成DROP的就要寫上這一部,好多人都是忘了寫這一部規則導致,始終無法SSH.在遠端一下,是不是好了.其他的埠也一樣,如果開啟了web伺服器,OUTPUT設定成DROP的話,同樣也要新增一條鏈:
[root@tp ~]# iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT)
如果做了WEB伺服器,開啟80埠.
[root@tp ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
如果做了郵件伺服器,開啟25,110埠.
[root@tp ~]# iptables -A INPUT -p tcp --dport 110 -j ACCEPT
[root@tp ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
如果做了FTP伺服器,開啟21埠
[root@tp ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
[root@tp ~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
如果做了DNS伺服器,開啟53埠
[root@tp ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT
上面主要寫的都是INPUT鏈,凡是不在上面的規則裡的,都DROP
允許icmp包透過,也就是允許ping,
[root@tp ~]# iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT設定成DROP的話)
[root@tp ~]# iptables -A INPUT -p icmp -j ACCEPT (INPUT設定成DROP的話)
允許loopback!(不然會導致DNS無法正常關閉等問題)
IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)
下面寫OUTPUT鏈,OUTPUT鏈預設規則是ACCEPT,所以我們就寫需要DROP(放棄)的鏈.
減少不安全的埠連線
[root@tp ~]# iptables -A OUTPUT -p tcp --sport 31337 -j DROP
[root@tp ~]# iptables -A OUTPUT -p tcp --dport 31337 -j DROP
.
下面寫一下更加細緻的規則,就是限制到某臺機器
如:我們只允許192.168.0.3的機器進行SSH連線
[root@tp ~]# iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT
如果要允許,或 限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的所有IP .
24表示子網掩碼數 .但要記得把 /etc/sysconfig/iptables 裡的這一行刪了.
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 因為它表示所有地址都可以登陸.
或採用命令方式:
[root@tp ~]# iptables -D INPUT -p tcp --dport 22 -j ACCEPT
[root@tp ~]# /etc/rc.d/init.d/iptables save
這樣寫 !192.168.0.3 表示除了192.168.0.3的ip地址
其他的規則連線也一樣這麼設定.
在下面就是FORWARD鏈, FORWARD鏈的預設規則是DROP,所以我們就寫需要ACCETP(透過)的鏈 ,對正在轉發鏈的監控.
開啟轉發功能,(在做NAT時,FORWARD預設規則是DROP時,必須做)
[root@tp ~]# iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
[root@tp ~]# iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT
丟棄壞的TCP包
[root@tp ~]# iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP
處理IP碎片數量,防止攻擊,允許每秒100個
[root@tp ~]# iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
設定ICMP包過濾,允許每秒1個包,限制觸發條件是10個包.
[root@tp ~]# iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
我在前面只所以允許ICMP包透過,就是因為我在這裡有限制.
3、刪除
刪除用-D引數
刪除之前新增的規則(iptables -A INPUT -s 192.168.1.5 -j DROP):
[root@test ~]# iptables -D INPUT -s 192.168.1.5 -j DROP有時候要刪除的規則太長,刪除時要寫一大串,既浪費時間又容易寫錯,這時我們可以先使用–line-number找出該條規則的行號,再透過行號刪除規則。
[root@test ~]# iptables -nv --line-number
iptables v1.4.7: no command specified
Try `iptables -h' or 'iptables --help' for more information.
[root@test ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 192.168.1.1 0.0.0.0/0
2 DROP all -- 192.168.1.2 0.0.0.0/0
3 DROP all -- 192.168.1.3 0.0.0.0/0
刪除第二行規則
[root@test ~]# iptables -D INPUT 24、
不管你在安裝linux時是否啟動了防火牆,如果你想配置屬於自己的防火牆,那就清除現在filter的所有規則.
[root@tp ~]# iptables -F 清除預設表filter中的所有規則鏈的規則
[root@tp ~]# iptables -X 清除預設表filter中使用者自定鏈中的規則
我們在來看一下
[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@tp ~]# /etc/rc.d/init.d/iptables save
這樣就可以寫到/etc/sysconfig/iptables檔案裡了.寫入後記得把防火牆重起一下,才能起作用.
[root@tp ~]# service iptables restart
現在IPTABLES配置表裡什麼配置都沒有了,那我們開始我們的配置吧
(3)設定預設規則
[root@tp ~]# iptables -p INPUT DROP
[root@tp ~]# iptables -p OUTPUT ACCEPT
[root@tp ~]# iptables -p FORWARD DROP
上面的意思是,當超出了IPTABLES裡filter表裡的兩個鏈規則(INPUT,FORWARD)時,不在這兩個規則裡的資料包怎麼處理呢,那就是DROP(放棄).應該說這樣配置是很安全的.我們要控制流入資料包
而對於OUTPUT鏈,也就是流出的包我們不用做太多限制,而是採取ACCEPT,也就是說,不在著個規則裡的包怎麼辦呢,那就是透過.
可以看出INPUT,FORWARD兩個鏈採用的是允許什麼包透過,而OUTPUT鏈採用的是不允許什麼包透過.
修改使用-R引數
先看下當前規則:
[root@test ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 192.168.1.1 0.0.0.0/0
2 DROP all -- 192.168.1.2 0.0.0.0/0
3 DROP all -- 192.168.1.5 0.0.0.0/0
將第三條規則改為ACCEPT:
[root@test ~]# iptables -R INPUT 3 -j ACCEPT 再檢視下:
[root@test ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 192.168.1.1 0.0.0.0/0
2 DROP all -- 192.168.1.2 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
第三條規則的target已改為ACCEPT。
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[: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 [port[, port]]
若源埠和目的埠相等並與某個給定埠相等,則匹配。
mark
這個模組和與netfilter過濾器標記欄位匹配(就可以在下面設定為使用MARK標記)。
--mark value [/mask]
匹配那些無符號標記值的包(如果指定mask,在比較之前會給掩碼加上邏輯的標記)。
owner
此模組試為本地生成包匹配包建立者的不同特徵。只能用於OUTPUT鏈,而且即使這樣一些包(如ICMP ping應答)還可能沒有所有者,因此永遠不會匹配。
--uid-owner userid
如果給出有效的user id,那麼匹配它的程式產生的包。
--gid-owner groupid
如果給出有效的group id,那麼匹配它的程式產生的包。
--sid-owner seessionid
根據給出的會話組匹配該程式產生的包。
state
此模組,當與連線跟蹤結合使用時,允許訪問包的連線跟蹤狀態。
--state state
這裡state是一個逗號分割的匹配連線狀態列表。可能的狀態是:INVALID表示包是未知連線,ESTABLISHED表示是雙向傳送的連線,NEW表示包為新的連線,否則是非雙向傳送的,而RELATED表示包由新連線開始,但是和一個已存在的連線在一起,如FTP資料傳送,或者一個ICMP錯誤。
unclean
此模組沒有可選項,不過它試著匹配那些奇怪的、不常見的包。處在實驗中。
tos
此模組匹配IP包首部的8位tos(服務型別)欄位(也就是說,包含在優先位中)。
--tos tos
這個引數可以是一個標準名稱,(用iptables -m tos -h 察看該列表),或者數值。
TARGET EXTENSIONS
iptables可以使用擴充套件目標模組:以下都包含在標準版中。
LOG
為匹配的包開啟核心記錄。當在規則中設定了這一選項後,linux核心會透過printk()列印一些關於全部匹配包的資訊(諸如IP包頭欄位等)。
--log-level level
記錄級別(數字或參看 syslog.conf(5))。
--log-prefix prefix
在紀錄資訊前加上特定的字首:最多14個字母長,用來和記錄中其他資訊區別。
--log-tcp-sequence
記錄TCP序列號。如果記錄能被使用者讀取那麼這將存在安全隱患。
--log-tcp-options
記錄來自TCP包頭部的選項。
--log-ip-options
記錄來自IP包頭部的選項。
MARK
用來設定包的netfilter標記值。只適用於mangle表。
--set-mark mark
REJECT
作為對匹配的包的響應,返回一個錯誤的包:其他情況下和DROP相同。
此目標只適用於INPUT、FORWARD和OUTPUT鏈,和呼叫這些鏈的使用者自定義鏈。這幾個選項控制返回的錯誤包的特性:
--reject-with type
Type可以是icmp-net-unreachable、icmp-host-unreachable、icmp-port-nreachable、icmp-proto-unreachable、 icmp-net-prohibited 或者 icmp-host-prohibited,該型別會返回相應的ICMP錯誤資訊(預設是port-unreachable)。選項 echo-reply也是允許的;它只能用於指定ICMP ping包的規則中,生成ping的回應。最後,選項tcp-reset可以用於在INPUT鏈中,或自INPUT鏈呼叫的規則,只匹配TCP協議:將回應一個TCP RST包。
TOS
用來設定IP包的首部八位tos。只能用於mangle表。
--set-tos tos
你可以使用一個數值型的TOS 值,或者用iptables -j TOS -h 來檢視有效TOS名列表。
MIRROR
這是一個試驗示範目標,可用於轉換IP首部欄位中的源地址和目標地址,再傳送該包,並只適用於INPUT、FORWARD和OUTPUT鏈,以及只呼叫它們的使用者自定義鏈。
SNAT
這個目標只適用於nat表的POSTROUTING鏈。它規定修改包的源地址(此連線以後所有的包都會被影響),停止對規則的檢查,它包含選項:
--to-source [-][:port-port]
可以指定一個單一的新的IP地址,一個IP地址範圍,也可以附加一個埠範圍(只能在指定-p tcp 或者-p udp的規則裡)。如果未指定埠範圍,源埠中512以下的(埠)會被安置為其他的512以下的埠;512到1024之間的埠會被安置為1024以下的,其他埠會被安置為1024或以上。如果可能,埠不會被修改。
--to-destiontion [-][:port-port]
可以指定一個單一的新的IP地址,一個IP地址範圍,也可以附加一個埠範圍(只能在指定-p tcp 或者-p udp的規則裡)。如果未指定埠範圍,目標埠不會被修改。
MASQUERADE
只用於nat表的POSTROUTING鏈。只能用於動態獲取IP(撥號)連線:如果你擁有靜態IP地址,你要用SNAT。偽裝相當於給包發出時所經過介面的IP地址設定一個映像,當介面關閉連線會終止。這是因為當下一次撥號時未必是相同的介面地址(以後所有建立的連線都將關閉)。它有一個選項:
--to-ports [-port>]
指定使用的源埠範圍,覆蓋預設的SNAT源地址選擇(見上面)。這個選項只適用於指定了-p tcp或者-p udp的規則。
REDIRECT
只適用於nat表的PREROUTING和OUTPUT鏈,和只呼叫它們的使用者自定義鏈。它修改包的目標IP地址來傳送包到機器自身(本地生成的包被安置為地址127.0.0.1)。它包含一個選項:
--to-ports [ ]
指定使用的目的埠或埠範圍:不指定的話,目標埠不會被修改。只能用於指定了-p tcp 或 -p udp的規則。
DIAGNOSTICS
診斷
不同的錯誤資訊會列印成標準錯誤:退出程式碼0表示正確。類似於不對的或者濫用的命令列引數錯誤會返回錯誤程式碼2,其他錯誤返回程式碼為1。
BUGS
臭蟲
Check is not implemented (yet).
檢查還未完成。
COMPATIBILITY WITH IPCHAINS
與ipchains的相容性
iptables和Rusty Russell的ipchains非常相似。主要區別是INPUT 鏈只用於進入本地主機的包,而OUTPUT只用於自本地主機生成的包。因此每個包只經過三個鏈的一個;以前轉發的包會經過所有三個鏈。其他主要區別是 -i 引用進入介面;-o引用輸出介面,兩者都適用於進入FORWARD鏈的包。當和可選擴充套件模組一起使用預設過濾器表時,iptables是一個純粹的包過濾器。這能大大減少以前對IP偽裝和包過濾結合使用的混淆,所以以下選項作了不同的處理:
-j MASQ
-M -S
-M -L
在iptables中有幾個不同的鏈。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25469263/viewspace-2642901/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Ubuntu系統iptables規則的檢視和清除Ubuntu
- Linux 檢視設定系統語言(轉)Linux
- 如何設定與檢視Linux系統中的環境變數?Linux變數
- 25個常用的Linux iptables規則Linux
- Linux IPTables:如何新增防火牆規則Linux防火牆
- 在Linux中,如何設定防火牆規則?Linux防火牆
- Linux設定防火牆iptablesLinux防火牆
- iptables防火牆規則防火牆
- iptables詳解及docker的iptables規則Docker
- Debian使用iptables-persistent持久化iptables規則持久化
- Linux 系統檢視命令Linux
- linux系統檢視防火牆是否開啟並清除防火牆規則的方法步驟Linux防火牆
- 在Linux中,如何檢視系統日誌?Linux
- iptables 常用規則使用例項
- Linux - 檢視系統的版本Linux
- 檢視 Linux 系統資訊Linux
- Linux 系統中如何設定印表機?Linux
- Linux中如何檢視系統是什麼版本?Linux
- Linux系統中的程序和埠檢視命令Linux
- 在Linux系統中如何檢視有哪些組?Linux
- 20條IPTables防火牆規則用法!防火牆
- iptables設定macMac
- Linux系統中如何檢視塊裝置資訊?Linux
- 檢視Linux系統版本資訊Linux
- Linux 如何檢視系統負載Linux負載
- Linux檢視系統版本命令Linux
- Linux 檢視系統檔案命令Linux
- iptables配置-Linux系統安全防火牆Linux防火牆
- 詳解網路知識:iptables規則
- 在Linux中,如何檢視系統資源使用情況?Linux
- 在Linux中,如何檢視系統的磁碟使用情況?Linux
- Linux系統如何檢視版本資訊Linux
- Linux 系統檢視使用者組Linux
- 如何檢視Linux作業系統版本?Linux作業系統
- win10系統ie設定相容性檢視設定方法Win10
- Linux(centos7)檢視和設定ip(DHCP)LinuxCentOS
- linux系統時間設定Linux
- Linux設定系統時間Linux