<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > Linux iptables命令詳解

Linux iptables命令詳解

發(fā)布人:電子禪石 時(shí)間:2023-03-15 來(lái)源:工程師 發(fā)布文章

iptables 是 Linux 防火墻系統的重要組成部分,iptables 的主要功能是實(shí)現對網(wǎng)絡(luò )數據包進(jìn)出設備及轉發(fā)的控制。當數據包需要進(jìn)入設備、從設備中流出或者由該設備轉發(fā)、路由時(shí),都可以使用 iptables 進(jìn)行控制。下面良許小編就將從幾個(gè)方面對于Linux iptables命令進(jìn)行詳述,希望對大家有所幫助。


iptables簡(jiǎn)介

iptables 是集成在 Linux 內核中的包過(guò)濾防火墻系統。使用 iptables 可以添加、刪除具體的過(guò)濾規則,iptables 默認維護著(zhù) 4 個(gè)表和 5 個(gè)鏈,所有的防火墻策略規則都被分別寫(xiě)入這些表與鏈中。


“四表”是指 iptables 的功能,默認的 iptable s規則表有 filter 表(過(guò)濾規則表)、nat 表(地址轉換規則表)、mangle(修改數據標記位規則表)、raw(跟蹤數據表規則表):


filter 表:控制數據包是否允許進(jìn)出及轉發(fā),可以控制的鏈路有 INPUT、FORWARD 和 OUTPUT。

nat 表:控制數據包中地址轉換,可以控制的鏈路有 PREROUTING、INPUT、OUTPUT 和 POSTROUTING。

mangle:修改數據包中的原數據,可以控制的鏈路有 PREROUTING、INPUT、OUTPUT、FORWARD 和 POSTROUTING。

raw:控制 nat 表中連接追蹤機制的啟用狀況,可以控制的鏈路有 PREROUTING、OUTPUT。

————————————————

Linux 防火墻的過(guò)濾框架,如圖 1 所示。


Linux命令



可以看出,如果是外部主機發(fā)送數據包給防火墻本機,數據將會(huì )經(jīng)過(guò) PREROUTING 鏈與 INPUT 鏈;如果是防火墻本機發(fā)送數據包到外部主機,數據將會(huì )經(jīng)過(guò) OUTPUT 鏈與 POSTROUTING 鏈;如果防火墻作為路由負責轉發(fā)數據,則數據將經(jīng)過(guò) PREROUTING 鏈、FORWARD 鏈以及 POSTROUTING 鏈。

————————————————

iptables語(yǔ)法格式

iptables 命令的基本語(yǔ)法格式如下:


[root@liangxu ~]# iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION


各參數的含義為:


-t:指定需要維護的防火墻規則表 filter、nat、mangle或raw。在不使用 -t 時(shí)則默認使用 filter 表。

COMMAND:子命令,定義對規則的管理。

chain:指明鏈表。

CRETIRIA:匹配參數。

ACTION:觸發(fā)動(dòng)作。

————————————————

iptables 命令常用的選項及各自的功能如表 2 所示


選 項功 能



-A添加防火墻規則
-D刪除防火墻規則
-I插入防火墻規則
-F清空防火墻規則
-L列出添加防火墻規則
-R替換防火墻規則
-Z清空防火墻數據表統計信息
-P設置鏈默認規則

iptables 命令常用匹配參數及各自的功能如表 3 所示。


參 數功 能

[!]-p匹配協(xié)議,! 表示取反

[!]-s匹配源地址

[!]-d匹配目標地址

[!]-i匹配入站網(wǎng)卡接口

[!]-o匹配出站網(wǎng)卡接口

[!]--sport匹配源端口

[!]--dport匹配目標端口

[!]--src-range匹配源地址范圍

[!]--dst-range匹配目標地址范圍

[!]--limit四配數據表速率

[!]--mac-source匹配源MAC地址

[!]--sports匹配源端口

[!]--dports匹配目標端口

[!]--stste匹配狀態(tài)(INVALID、ESTABLISHED、NEW、RELATED)

[!]--string匹配應用層字串

iptables 命令觸發(fā)動(dòng)作及各自的功能如表 4 所示。


觸發(fā)動(dòng)作功 能

ACCEPT允許數據包通過(guò)

DROP丟棄數據包

REJECT拒絕數據包通過(guò)

LOG將數據包信息記錄 syslog 曰志

DNAT目標地址轉換

SNAT源地址轉換

MASQUERADE地址欺騙

REDIRECT重定向

內核會(huì )按照順序依次檢查 iptables 防火墻規則,如果發(fā)現有匹配的規則目錄,則立刻執行相關(guān)動(dòng)作,停止繼續向下查找規則目錄;如果所有的防火墻規則都未能匹配成功,則按照默認策略處理。使用 -A 選項添加防火墻規則會(huì )將該規則追加到整個(gè)鏈的最后,而使用 -I 選項添加的防火墻規則則會(huì )默認插入到鏈中作為第一條規則。


注意,在 Linux CentOS 系統中,iptables 是默認安裝的,如果系統中沒(méi)有 iptables 工具,可以先進(jìn)行安裝。


規則的查看與清除

使用 iptables 命令可以對具體的規則進(jìn)行查看、添加、修改和刪除


1) 查看規則


對規則的查看需要使用如下命令:


[root@liangxu ~]# iptables -nvL


各參數的含義為:


-L 表示查看當前表的所有規則,默認查看的是 filter 表,如果要查看 nat 表,可以加上 -t nat 參數。

-n 表示不對 IP 地址進(jìn)行反查,加上這個(gè)參數顯示速度將會(huì )加快。

-v 表示輸出詳細信息,包含通過(guò)該規則的數據包數量、總字節數以及相應的網(wǎng)絡(luò )接口。

【例 1】查看規則。 首先需要使用 su 命令,切換當前用戶(hù)到 root 用戶(hù)。然后在終端頁(yè)面輸入命令如下:



root@liangxu ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere           
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

復制代碼

2) 添加規則


添加規則有兩個(gè)參數分別是 -A 和 -I。其中 -A 是添加到規則的末尾;-I 可以插入到指定位置,沒(méi)有指定位置的話(huà)默認插入到規則的首部。


【例 2】查看當前規則。首先需要使用 su 命令,切換當前用戶(hù)到 root 用戶(hù),然后在終端頁(yè)面輸入命令如下:



[root@liangxu ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination        
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0          
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
......


【例 3】添加一條規則到尾部。 首先需要使用 su 命令,切換當前用戶(hù)到 root 用戶(hù),然后在終端頁(yè)面輸入如下命令:


[root@liangxu ~]# iptables -A INPUT -s 192.168.1.5 -j DROP
[root@liangxu ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination        
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0          
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
6    DROP       all  --  192.168.1.5          0.0.0.0/0


3) 修改規則


在修改規則時(shí)需要使用-R參數。 【例 4】把添加在第 6 行規則的 DROP 修改為 ACCEPT。首先需要使用 su 命令,切換當前用戶(hù)到 root 用戶(hù),然后在終端頁(yè)面輸入如下命令:


[root@liangxu ~]# iptables -R INPUT 6 -s 194.168.1.5 -j ACCEPT
[root@liangxu ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination        
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0          
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
6    ACCEPT     all  --  194.168.1.5          0.0.0.0/0


對比發(fā)現,第 6 行規則的 target 已修改為 ACCEPT。


4) 刪除規則


刪除規則有兩種方法,但都必須使用 -D 參數。 【例 5】刪除添加的第 6 行的規則。首先需要使用su命令,切換當前用戶(hù)到 root 用戶(hù),然后在終端頁(yè)面輸入如下命令:


[root@liangxu ~]# iptables -D INPUT 6 -s 194.168.1.5 -j ACCEPT



[root@liangxu ~]# iptables -D INPUT 6


注意,有時(shí)需要刪除的規則較長(cháng),刪除時(shí)需要寫(xiě)一大串的代碼,這樣比較容易寫(xiě)錯,這時(shí)可以先使用 -line-number 找出該條規則的行號,再通過(guò)行號刪除規則。


防火墻的備份與還原

默認的 iptables 防火墻規則會(huì )立刻生效,但如果不保存,當計算機重啟后所有的規則都會(huì )丟失,所以對防火墻規則進(jìn)行及時(shí)保存的操作是非常必要的。


iptables 軟件包提供了兩個(gè)非常有用的工具,我們可以使用這兩個(gè)工具處理大量的防火墻規則。這兩個(gè)工具分別是 iptables-save 和 iptables-restore,使用該工具可以實(shí)現防火墻規則的保存與還原。這兩個(gè)工具的最大優(yōu)勢是處理龐大的規則集時(shí)速度非???。


CentOS 7 系統中防火墻規則默認保存在 /etc/sysconfig/iptables 文件中,使用 iptables-save 將規則保存至該文件中可以實(shí)現保存防火墻規則的作用,計算機重啟后會(huì )自動(dòng)加載該文件中的規則。如果使用 iptables-save 將規則保存至其他位置,可以實(shí)現備份防火墻規則的作用。當防火墻規則需要做還原操作時(shí),可以使用 iptables-restore 將備份文件直接導入當前防火墻規則。


1、iptables-save命令


iptables-save 命令用來(lái)批量導出 Linux 防火墻規則,語(yǔ)法介紹如下:


保存在默認文件夾中(保存防火墻規則): [root@liangxu ~]# iptables-save > /etc/sysconfig/iptables


保存在其他位置(備份防火墻規則): [root@liangxu ~]# iptables-save > 文件名稱(chēng)


直接執行 iptables-save 命令:顯示出當前啟用的所有規則,按照 raw、mangle、nat、filter 表的順序依次列出,如下所示:

[root@liangxu ~]# iptables-save # Generated by iptables-save v1.4.7 on Thu Aug 27 07:06:36 2020 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [602:39026] ....... COMMIT # Completed on Thu Aug 27 07:06:36 2020


其中:


“#”號開(kāi)頭的表示注釋?zhuān)?/p>

“*filter”表示所在的表;

“:鏈名默認策略”表示相應的鏈及默認策略,具體的規則部分省略了命令名“iptables”;

在末尾處“COMMIT”表示提交前面的規則設置。

備份到其他文件中。例如文件:text,如下所示:

[root@liangxu ~]# iptables-save > test [root@liangxu ~]# ls test [root@bogon ~]# cat test # Generated by iptables-save v1.4.7 on Thu Aug 27 07:09:47 2020 *filter ......


列出nat表的規則內容,命令如下:

[root@liangxu ~]# iptables-save -t nat


“-t表名”:表示列出某一個(gè)表。


2、iptables-restore命令


iptables-restore 命令可以批量導入Linux防火墻規則,同時(shí)也需要結合重定向輸入來(lái)指定備份文件的位置。命令如下:


[root@liangxu ~]# iptables-restore < 文件名稱(chēng)


注意,導入的文件必須是使用 iptables-save工具導出來(lái)的才可以。


先使用 iptables-restore 命令還原 text 文件,然后使用 iptables -t nat -nvL 命令查看清空的規則是否已經(jīng)還原,如下所示:


[root@liangxu ~]# iptables-restore < test [root@liangxu ~]# iptables -t nat -nvL Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination


Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination


Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination

————————————————


原文鏈接:https://blog.csdn.net/daocaokafei/article/details/115091313



*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: iptables

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>