在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            博客專欄

            EEPW首頁 > 博客 > Linux iptables命令詳解

            Linux iptables命令詳解

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

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


            iptables簡介

            iptables 是集成在 Linux 內(nèi)核中的包過濾防火墻系統(tǒng)。使用 iptables 可以添加、刪除具體的過濾規(guī)則,iptables 默認(rèn)維護著 4 個表和 5 個鏈,所有的防火墻策略規(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 表中連接追蹤機制的啟用狀況,可以控制的鏈路有 PREROUTING、OUTPUT。

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

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


            Linux命令



            可以看出,如果是外部主機發(fā)送數(shù)據(jù)包給防火墻本機,數(shù)據(jù)將會經(jīng)過 PREROUTING 鏈與 INPUT 鏈;如果是防火墻本機發(fā)送數(shù)據(jù)包到外部主機,數(shù)據(jù)將會經(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:指定需要維護的防火墻規(guī)則表 filter、nat、mangle或raw。在不使用 -t 時則默認(rèn)使用 filter 表。

            COMMAND:子命令,定義對規(guī)則的管理。

            chain:指明鏈表。

            CRETIRIA:匹配參數(shù)。

            ACTION:觸發(fā)動作。

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

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


            選 項功 能



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

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


            參 數(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ā)動作及各自的功能如表 4 所示。


            觸發(fā)動作功 能

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


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


            規(guī)則的查看與清除

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


            1) 查看規(guī)則


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


            [root@liangxu ~]# iptables -nvL


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


            -L 表示查看當(dāng)前表的所有規(guī)則,默認(rèn)查看的是 filter 表,如果要查看 nat 表,可以加上 -t nat 參數(shù)。

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

            -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

            復(fù)制代碼

            2) 添加規(guī)則


            添加規(guī)則有兩個參數(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


            3) 修改規(guī)則


            在修改規(guī)則時需要使用-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


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


            4) 刪除規(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


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


            防火墻的備份與還原

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


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


            CentOS 7 系統(tǒng)中防火墻規(guī)則默認(rèn)保存在 /etc/sysconfig/iptables 文件中,使用 iptables-save 將規(guī)則保存至該文件中可以實現(xiàn)保存防火墻規(guī)則的作用,計算機重啟后會自動加載該文件中的規(guī)則。如果使用 iptables-save 將規(guī)則保存至其他位置,可以實現(xiàn)備份防火墻規(guī)則的作用。當(dāng)防火墻規(guī)則需要做還原操作時,可以使用 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


            其中:


            “#”號開頭的表示注釋;

            “*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表名”:表示列出某一個表。


            2、iptables-restore命令


            iptables-restore 命令可以批量導(dǎo)入Linux防火墻規(guī)則,同時也需要結(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

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


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



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



            關(guān)鍵詞: iptables

            技術(shù)專區(qū)

            關(guān)閉