iptables 命令解析

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

iptables簡介
iptables 是集成在 Linux 內(nèi)核中的包過濾防火墻系統(tǒng)洋措。使用 iptables 可以添加、刪除具體的過濾規(guī)則杰刽,iptables 默認(rèn)維護(hù)著 4 個(gè)表和 5 個(gè)鏈菠发,所有的防火墻策略規(guī)則都被分別寫入這些表與鏈中。

“四表”是指 iptables 的功能贺嫂,默認(rèn)的 iptable s規(guī)則表有 filter 表(過濾規(guī)則表)滓鸠、nat 表(地址轉(zhuǎn)換規(guī)則表)、mangle(修改數(shù)據(jù)標(biāo)記位規(guī)則表)第喳、raw(跟蹤數(shù)據(jù)表規(guī)則表):

filter 表:控制數(shù)據(jù)包是否允許進(jìn)出及轉(zhuǎn)發(fā)糜俗,可以控制的鏈路有 INPUT、FORWARD 和 OUTPUT曲饱。
nat 表:控制數(shù)據(jù)包中地址轉(zhuǎn)換悠抹,可以控制的鏈路有 PREROUTING、INPUT扩淀、OUTPUT 和 POSTROUTING锌钮。
mangle:修改數(shù)據(jù)包中的原數(shù)據(jù),可以控制的鏈路有 PREROUTING引矩、INPUT梁丘、OUTPUT、FORWARD 和 POSTROUTING旺韭。
raw:控制 nat 表中連接追蹤機(jī)制的啟用狀況氛谜,可以控制的鏈路有 PREROUTING、OUTPUT区端。
“五鏈”是指內(nèi)核中控制網(wǎng)絡(luò)的 NetFilter 定義的 5 個(gè)規(guī)則鏈值漫。每個(gè)規(guī)則表中包含多個(gè)數(shù)據(jù)鏈:INPUT(入站數(shù)據(jù)過濾)、OUTPUT(出站數(shù)據(jù)過濾)织盼、FORWARD(轉(zhuǎn)發(fā)數(shù)據(jù)過濾)杨何、PREROUTING(路由前過濾)和POSTROUTING(路由后過濾),防火墻規(guī)則需要寫入到這些具體的數(shù)據(jù)鏈中沥邻。

Linux 防火墻的過濾框架危虱,如圖 1 所示。

可以看出唐全,如果是外部主機(jī)發(fā)送數(shù)據(jù)包給防火墻本機(jī)埃跷,數(shù)據(jù)將會(huì)經(jīng)過 PREROUTING 鏈與 INPUT 鏈蕊玷;如果是防火墻本機(jī)發(fā)送數(shù)據(jù)包到外部主機(jī),數(shù)據(jù)將會(huì)經(jīng)過 OUTPUT 鏈與 POSTROUTING 鏈弥雹;如果防火墻作為路由負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù)垃帅,則數(shù)據(jù)將經(jīng)過 PREROUTING 鏈、FORWARD 鏈以及 POSTROUTING 鏈剪勿。

iptables語法格式
iptables 命令的基本語法格式如下:

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

各參數(shù)的含義為:

-t:指定需要維護(hù)的防火墻規(guī)則表 filter贸诚、nat、mangle或raw厕吉。在不使用 -t 時(shí)則默認(rèn)使用 filter 表酱固。
COMMAND:子命令,定義對(duì)規(guī)則的管理赴涵。
chain:指明鏈表媒怯。
CRETIRIA:匹配參數(shù)。
ACTION:觸發(fā)動(dòng)作髓窜。

iptables 命令常用的選項(xiàng)及各自的功能如下所示

選 項(xiàng) 功 能
-A  添加防火墻規(guī)則
-D  刪除防火墻規(guī)則
-I  插入防火墻規(guī)則
-F  清空防火墻規(guī)則
-L  列出添加防火墻規(guī)則
-R  替換防火墻規(guī)則
-Z  清空防火墻數(shù)據(jù)表統(tǒng)計(jì)信息
-P  設(shè)置鏈默認(rèn)規(guī)則

iptables 命令常用匹配參數(shù)及各自的功能如下 所示扇苞。

參 數(shù) 功 能
[!]-p   匹配協(xié)議,! 表示取反
[!]-s   匹配源地址
[!]-d   匹配目標(biāo)地址
[!]-i   匹配入站網(wǎng)卡接口
[!]-o   匹配出站網(wǎng)卡接口
[!]--sport  匹配源端口
[!]--dport  匹配目標(biāo)端口
[!]--src-range  匹配源地址范圍
[!]--dst-range  匹配目標(biāo)地址范圍
[!]--limit  四配數(shù)據(jù)表速率
[!]--mac-source 匹配源MAC地址
[!]--sports 匹配源端口
[!]--dports 匹配目標(biāo)端口
[!]--stste  匹配狀態(tài)(INVALID寄纵、ESTABLISHED鳖敷、NEW、RELATED)
[!]--string 匹配應(yīng)用層字串

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

觸發(fā)動(dòng)作    功 能
ACCEPT  允許數(shù)據(jù)包通過
DROP    丟棄數(shù)據(jù)包
REJECT  拒絕數(shù)據(jù)包通過
LOG 將數(shù)據(jù)包信息記錄 syslog 曰志
DNAT    目標(biāo)地址轉(zhuǎn)換
SNAT    源地址轉(zhuǎn)換
MASQUERADE  地址欺騙
REDIRECT    重定向

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

注意水由,在 Linux CentOS 系統(tǒng)中荠呐,iptables 是默認(rèn)安裝的,如果系統(tǒng)中沒有 iptables 工具砂客,可以先進(jìn)行安裝泥张。

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

  1. 查看規(guī)則

對(duì)規(guī)則的查看需要使用如下命令:

[root@liangxu ~]# iptables -nvL

各參數(shù)的含義為:

-L 表示查看當(dāng)前表的所有規(guī)則媚创,默認(rèn)查看的是 filter 表,如果要查看 nat 表齿诉,可以加上 -t nat 參數(shù)筝野。
-n 表示不對(duì) IP 地址進(jìn)行反查晌姚,加上這個(gè)參數(shù)顯示速度將會(huì)加快粤剧。
-v 表示輸出詳細(xì)信息歇竟,包含通過該規(guī)則的數(shù)據(jù)包數(shù)量、總字節(jié)數(shù)以及相應(yīng)的網(wǎng)絡(luò)接口抵恋。
【例 1】查看規(guī)則焕议。 首先需要使用 su 命令,切換當(dāng)前用戶到 root 用戶弧关。然后在終端頁面輸入命令如下:

[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
  1. 添加規(guī)則

添加規(guī)則有兩個(gè)參數(shù)分別是 -A 和 -I盅安。其中 -A 是添加到規(guī)則的末尾;-I 可以插入到指定位置世囊,沒有指定位置的話默認(rèn)插入到規(guī)則的首部别瞭。

【例 2】查看當(dāng)前規(guī)則。首先需要使用 su 命令株憾,切換當(dāng)前用戶到 root 用戶蝙寨,然后在終端頁面輸入命令如下:

[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】添加一條規(guī)則到尾部。 首先需要使用 su 命令嗤瞎,切換當(dāng)前用戶到 root 用戶墙歪,然后在終端頁面輸入如下命令:

[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    
  1. 修改規(guī)則

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

[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   

對(duì)比發(fā)現(xiàn)掉瞳,第 6 行規(guī)則的 target 已修改為 ACCEPT毕源。

  1. 刪除規(guī)則

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

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

或

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

注意瘩欺,有時(shí)需要?jiǎng)h除的規(guī)則較長,刪除時(shí)需要寫一大串的代碼拌牲,這樣比較容易寫錯(cuò)俱饿,這時(shí)可以先使用 -line-number 找出該條規(guī)則的行號(hào),再通過行號(hào)刪除規(guī)則塌忽。

防火墻的備份與還原
默認(rèn)的 iptables 防火墻規(guī)則會(huì)立刻生效拍埠,但如果不保存,當(dāng)計(jì)算機(jī)重啟后所有的規(guī)則都會(huì)丟失土居,所以對(duì)防火墻規(guī)則進(jìn)行及時(shí)保存的操作是非常必要的枣购。

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

CentOS 7 系統(tǒng)中防火墻規(guī)則默認(rèn)保存在 /etc/sysconfig/iptables 文件中胎围,使用 iptables-save 將規(guī)則保存至該文件中可以實(shí)現(xiàn)保存防火墻規(guī)則的作用,計(jì)算機(jī)重啟后會(huì)自動(dòng)加載該文件中的規(guī)則德召。如果使用 iptables-save 將規(guī)則保存至其他位置白魂,可以實(shí)現(xiàn)備份防火墻規(guī)則的作用。當(dāng)防火墻規(guī)則需要做還原操作時(shí)上岗,可以使用 iptables-restore 將備份文件直接導(dǎo)入當(dāng)前防火墻規(guī)則福荸。

1、iptables-save命令

iptables-save 命令用來批量導(dǎo)出 Linux 防火墻規(guī)則肴掷,語法介紹如下:

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

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

直接執(zhí)行 iptables-save 命令:顯示出當(dāng)前啟用的所有規(guī)則敬锐,按照 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

其中:

“#”號(hào)開頭的表示注釋栋烤;
“*filter”表示所在的表谒养;
“:鏈名默認(rèn)策略”表示相應(yīng)的鏈及默認(rèn)策略,具體的規(guī)則部分省略了命令名“iptables”明郭;
在末尾處“COMMIT”表示提交前面的規(guī)則設(shè)置买窟。
備份到其他文件中。例如文件: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表的規(guī)則內(nèi)容始绍,命令如下:

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

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

2话侄、iptables-restore命令

iptables-restore 命令可以批量導(dǎo)入Linux防火墻規(guī)則亏推,同時(shí)也需要結(jié)合重定向輸入來指定備份文件的位置。命令如下:

[root@liangxu ~]# iptables-restore < 文件名稱

注意年堆,導(dǎo)入的文件必須是使用 iptables-save工具導(dǎo)出來的才可以吞杭。

先使用 iptables-restore 命令還原 text 文件,然后使用 iptables -t nat -nvL 命令查看清空的規(guī)則是否已經(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

作者:用戶3026598806652
鏈接:https://juejin.cn/post/6922354523826552846
來源:掘金
著作權(quán)歸作者所有芽狗。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處痒蓬。
————————————————
版權(quán)聲明:本文為CSDN博主「一口Linux」的原創(chuàng)文章童擎,遵循CC 4.0 BY-SA版權(quán)協(xié)議滴劲,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/daocaokafei/article/details/115091313

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末顾复,一起剝皮案震驚了整個(gè)濱河市班挖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捕透,老刑警劉巖聪姿,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碴萧,死亡現(xiàn)場(chǎng)離奇詭異乙嘀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)破喻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門虎谢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人曹质,你說我怎么就攤上這事婴噩。” “怎么了羽德?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵几莽,是天一觀的道長。 經(jīng)常有香客問我宅静,道長章蚣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任姨夹,我火速辦了婚禮纤垂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘磷账。我一直安慰自己峭沦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布逃糟。 她就那樣靜靜地躺著吼鱼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绰咽。 梳的紋絲不亂的頭發(fā)上菇肃,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音剃诅,去河邊找鬼巷送。 笑死,一個(gè)胖子當(dāng)著我的面吹牛矛辕,可吹牛的內(nèi)容都是我干的笑跛。 我是一名探鬼主播付魔,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼飞蹂!你這毒婦竟也來了几苍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤陈哑,失蹤者是張志新(化名)和其女友劉穎妻坝,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惊窖,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡刽宪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了界酒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片圣拄。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖毁欣,靈堂內(nèi)的尸體忽然破棺而出庇谆,到底是詐尸還是另有隱情,我是刑警寧澤凭疮,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布饭耳,位于F島的核電站,受9級(jí)特大地震影響执解,放射性物質(zhì)發(fā)生泄漏寞肖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一材鹦、第九天 我趴在偏房一處隱蔽的房頂上張望逝淹。 院中可真熱鬧,春花似錦桶唐、人聲如沸栅葡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽欣簇。三九已至,卻和暖如春坯约,著一層夾襖步出監(jiān)牢的瞬間熊咽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國打工闹丐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留横殴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像衫仑,于是被迫代替她去往敵國和親梨与。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • ptables防火墻可以用于創(chuàng)建過濾(filter)與NAT規(guī)則文狱。所有Linux發(fā)行版都能使用iptables粥鞋,因...
    CJ的技術(shù)日常閱讀 589評(píng)論 0 0
  • iptables簡介 netfilter/iptables(簡稱為iptables)組成Linux平臺(tái)下的包過濾防...
    yshenhn閱讀 112,415評(píng)論 2 78
  • iptables簡介 netfilter/iptables(簡稱為iptables)組成Linux平臺(tái)下的包過濾防...
    我是李小胖閱讀 4,574評(píng)論 1 5
  • iptables俗稱防火墻,或許我們已經(jīng)不在陌生瞄崇,但是作為openstack基礎(chǔ)呻粹,這里還是對(duì)其做一些補(bǔ)充,了解更多...
    ximitc閱讀 1,797評(píng)論 0 8
  • 一. 什么是防火墻 防火墻苏研,就是用于實(shí)現(xiàn)Linux下訪問控制的功能的等浊,它分為硬件的或者軟件的防火墻兩種。無論是在哪...
    InnocenceYWQ閱讀 1,055評(píng)論 0 3