<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                在本博客中,從理論到實踐,系統的介紹了iptables,如果你想要從頭開始了解iptables,可以查看iptables文章列表,直達鏈接如下 [iptables零基礎快速入門系列](http://www.zsythink.net/archives/tag/iptables/) 上一篇文章中,我們已經學會了怎樣使用iptables命令查看規則,那么這篇文章我們就來總結一下,怎樣管理規則。 之前,我們把查看iptables規則的操作比作"增刪改查"當中的"查",那么在這篇文章中,我們就聊聊怎樣對iptables進行"增、刪、改"操作。 注意:在參照本文進行iptables實驗時,請務必在個人的測試機上進行,因為如果iptables規則設置不當,有可能使你無法連接到遠程主機中。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/ueditor/php/upload/image/20170212/1486863972980583.png "1486863972980583.png") 首先,我們來回顧一下什么是iptables的規則。 之前打過一個比方,每條"鏈"都是一個"關卡",每個通過這個"關卡"的報文都要匹配這個關卡上的規則,如果匹配,則對報文進行對應的處理,比如說,你我二人此刻就好像兩個"報文",你我二人此刻都要入關,可是城主有命,只有器宇軒昂之人才能入關,不符合此條件的人不能入關,于是守關將士按照城主制定的"規則",開始打量你我二人,最終,你順利入關了,而我已被拒之門外,因為你符合"器宇軒昂"的標準,所以把你"放行"了,而我不符合標準,所以沒有被放行,其實,"器宇軒昂"就是一種"匹配條件","放行"就是一種"動作","匹配條件"與"動作"組成了規則。 只不過,在iptables的世界中,最常用的匹配條件并不是"器宇軒昂",而是報文的"源地址"、"目標地址"、"源端口"、"目標端口"等,在iptables的世界中,最常用的動作有ACCEPT(接受)、DROP(丟棄)、REJECT(拒絕),其中ACCEPT就與我們舉例中的"放行"類似,但是,我們剛才提到的這些并不是全部的匹配條件與動作,只是最常用的一些罷了,具體的匹配條件與動作不是我們今天討論的重點,我們會在以后的文章中再做總結。 好了,我們已經回顧了規則的概念,并且已經明白了,規則大致由兩個邏輯單元組成,匹配條件與動作,那么多說無益,我們來動手定義一條規則,此處仍然以filter表中的INPUT鏈為例,因為filter表負責"過濾"功能,而所有發往本機的報文如果需要被過濾,首先會經過INPUT鏈(PREROUTING鏈沒有過濾功能),這與我們所比喻的"入關"場景非常相似,所以,使用filter表的INPUT鏈為例,有助于我們進行理解。 首先,查看一下filter表中的INPUT鏈中的規則,查看規則的相關命令在前文已經總結了,此處不再贅述,如果你忘了,請回顧前文。 使用如下命令查看filter表INPUT鏈的規則,下圖中的規則為centos6默認添加的規則。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_1.png) 注意:在參照本文進行iptables實驗時,請務必在個人的測試機上進行。 為了準備一個從零開始的環境,我們將centos6默認提供的規則清空,以便我們進行實驗,使用iptables -F INPUT命令清空filter表INPUT鏈中的規則,后面我們會單獨對清除規則的相關命令進行總結,此處不用糾結此命令。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_2.png) 清空INPUT鏈以后,filter表中的INPUT鏈已經不存在任何的規則,但是可以看出,INPUT鏈的默認策略是ACCEPT,也就是說,INPUT鏈默認"放行"所有發往本機的報文,當沒有任何規則時,會接受所有報文,當報文沒有被任何規則匹配到時,也會默認放行報文。 那么此刻,我們就在另外一臺機器上,使用ping命令,向當前機器發送報文,如下圖所示,ping命令可以得到回應,證明ping命令發送的報文已經正常的發送到了防火墻所在的主機,ping命令所在機器IP地址為146,當前測試防火墻主機的IP地址為156,我們就用這樣的環境,對iptables進行操作演示。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_3.png) ## 增加規則 那么此處,我們就在156上配置一條規則,拒絕192.168.1.146上的所有報文訪問當前機器,之前一直在說,規則由匹配條件與動作組成,那么"拒絕192.168.1.146上的所有報文訪問當前機器"這條規則中,報文的"源地址為192.168.1.146"則屬于匹配條件,如果報文來自"192.168.1.146",則表示滿足匹配條件,而"拒絕"這個報文,就屬于對應的動作,好了,那么怎樣用命令去定義這條規則呢?使用如下命令即可 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_4.png) 上圖中,使用 -t選項指定了要操作的表,此處指定了操作filter表,與之前的查看命令一樣,不使用-t選項指定表時,默認為操作filter表。 使用-I選項,指明將"規則"插入至哪個鏈中,-I表示insert,即插入的意思,所以-I INPUT表示將規則插入于INPUT鏈中,即添加規則之意。 使用-s選項,指明"匹配條件"中的"源地址",即如果報文的源地址屬于-s對應的地址,那么報文則滿足匹配條件,-s為source之意,表示源地址。 使用-j選項,指明當"匹配條件"被滿足時,所對應的動作,上例中指定的動作為DROP,在上例中,當報文的源地址為192.168.1.146時,報文則被DROP(丟棄)。 再次查看filter表中的INPUT鏈,發現規則已經被添加了,在iptables中,動作被稱之為"target",所以,上圖中taget字段對應的動作為DROP。 那么此時,我們再通過192.168.1.146去ping主機156,看看能否ping通。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_5.png) 如上圖所示,ping 156主機時,PING命令一直沒有得到回應,看來我們的iptables規則已經生效了,ping發送的報文壓根沒有被156主機接受,而是被丟棄了,所以更不要說什么回應了,好了,我們已經成功的配置了一條iptables規則,看來,我們已經入門了。 還記得我們在前文中說過的"計數器"嗎?此時,我們再次查看iptables中的規則,可以看到,已經有24個包被對應的規則匹配到,總計大小2016bytes。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_6.png) 此刻,我們來做一個實驗。 現在INPUT鏈中已經存在了一條規則,它拒絕了所有來自192.168.1.146主機中的報文,如果此時,我們在這條規則之后再配置一條規則,后面這條規則規定,接受所有來自192.168.1.146主機中的報文,那么,iptables是否會接受來自146主機的報文呢?我們動手試試。 使用如下命令在filter表的INPUT鏈中追加一條規則,這條規則表示接受所有來自192.168.1.146的發往本機的報文。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_7.png) 上圖中的命令并沒有使用-t選項指定filter表,我們一直在說,不使用-t選項指定表時表示默認操作filter表。 上圖中,使用-A選項,表示在對應的鏈中"追加規則",-A為append之意,所以,-A INPUT則表示在INPUT鏈中追加規則,而之前示例中使用的-I選項則表示在鏈中"插入規則",聰明如你一定明白了,它們的本意都是添加一條規則,只是-A表示在鏈的尾部追加規則,-I表示在鏈的首部插入規則而已。 使用-j選項,指定當前規則對應的動作為ACCEPT。 執行完添加規則的命令后,再次查看INPUT鏈,發現規則已經成功"追加"至INPUT鏈的末尾,那么現在,第一條規則指明了丟棄所有來自192.168.1.146的報文,第二條規則指明了接受所有來自192.168.1.146的報文,那么結果到底是怎樣的呢?實踐出真知,在146主機上再次使用ping命令向156主機發送報文,發現仍然是ping不通的,看來第二條規則并沒有生效。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_8.png) 而且從上圖中第二條規則的計數器可以看到,根本沒有任何報文被第二條規則匹配到。 聰明如你一定在猜想,發生上述情況,會不會與規則的先后順序有關呢?測試一下不就知道了,我們再添加一條規則,新規則仍然規定接受所有來自192.168.1.146主機中的報文,只是這一次,我們將新規則添加至INPUT鏈的最前面試試。 在添加這條規則之前,我們先把146上的ping命令強制停止了,然后使用如下命令,在filter表的INPUT鏈的前端添加新規則。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_9.png) 好了,現在第一條規則就是接受所有來自192.168.1.146的報文,而且此時計數是0,此刻,我們再從146上向156發起ping請求。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_10.png) 146上已經可以正常的收到響應報文了,那么回到156查看INPUT鏈的規則,第一條規則的計數器已經顯示出了匹配到的報文數量。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_11.png) 看來,規則的順序很重要。 如果報文已經被前面的規則匹配到,iptables則會對報文執行對應的動作,即使后面的規則也能匹配到當前報文,很有可能也沒有機會再對報文執行相應的動作了,就以上圖為例,報文先被第一條規則匹配到了,于是當前報文被"放行"了,因為報文已經被放行了,所以,即使上圖中的第二條規則即使能夠匹配到剛才"放行"的報文,也沒有機會再對剛才的報文進行丟棄操作了。這就是iptables的工作機制。 之前在總結查看命令時提到過,使用--line-number選項可以列出規則的序號,如下圖所示 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_12.png) 我們也可以在添加規則時,指定新增規則的編號,這樣我們就能在任意位置插入規則了,我們只要把剛才的命令稍作修改即可,如下。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_13.png) 仍然使用-I選項進行插入規則操作,-I INPUT 2表示在INPUT鏈中新增規則,新增的規則的編號為2,好了,自己動手試試吧。 ## 刪除規則 注意:在參照本文進行iptables實驗時,請務必在個人的測試機上進行。 此刻,如果我們想要刪除filter表中INPUT中的一條規則,該怎么做呢? 有兩種辦法 方法一:根據規則的編號去刪除規則 方法二:根據具體的匹配條件與動作刪除規則 那么我們先看看方法一,先查看一下filter表中INPUT鏈中的規則 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_12.png) 假如我們想要刪除上圖中的第3條規則,則可以使用如下命令。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_14.png) 上例中,使用了-t選項指定了要操作的表(沒錯,省略-t默認表示操作filter表),使用-D選項表示刪除指定鏈中的某條規則,-D INPUT 3表示刪除INPUT鏈中的第3條規則。 當然,我們也可以根據具體的匹配條件與動作去刪除規則,比如,刪除下圖中源地址為192.168.1.146,動作為ACCEPT的規則,于是,刪除規則的命令如下。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_15.png) 上圖中,刪除對應規則時,仍然使用-D選項,-D INPUT表示刪除INPUT鏈中的規則,剩下的選項與我們添加規則時一毛一樣,-s表示以對應的源地址作為匹配條件,-j ACCEPT表示對應的動作為接受,所以,上述命令表示刪除INPUT鏈中源地址為192.168.1.146,動作為ACCEPT的規則。 而刪除指定表中某條鏈中的所有規則的命令,我們在一開始就使用到了,就是"iptables -t 表名 -F 鏈名" \-F選項為flush之意,即沖刷指定的鏈,即刪除指定鏈中的所有規則,但是注意,此操作相當于刪除操作,在沒有保存iptables規則的情況下,請慎用。 其實,-F選項不僅僅能清空指定鏈上的規則,其實它還能清空整個表中所有鏈上的規則,不指定鏈名,只指定表名即可刪除表中的所有規則,命令如下 iptables -t 表名 -F 不過再次強調,在沒有保存iptables規則時,請勿隨便清空鏈或者表中的規則,除非你明白你在干什么。 ## 修改規則 注意:在參照本文進行iptables實驗時,請務必在個人的測試機上進行。 那么,我們怎樣修改某條規則中的動作呢?比如,我想把如下規則中的動作從DROP改為REJECT,改怎么辦呢? ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_16.png) 我們可以使用-R選項修改指定的鏈中的規則,在修改規則時指定規則對應的編號即可(有坑,慎行),示例命令如下 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_17.png) 上例中,-R選項表示修改指定的鏈,使用-R INPUT 1表示修改INPUT鏈的第1條規則,使用-j REJECT表示將INPUT鏈中的第一條規則的動作修改為REJECT,注意:上例中, -s選項以及對應的源地址不可省略,即使我們已經指定了規則對應的編號,但是在使用-R選項修改某個規則時,必須指定規則對應的原本的匹配條件(如果有多個匹配條件,都需要指定)。 如果上例中的命令沒有使用-s指定對應規則中原本的源地址,那么在修改完成后,你修改的規則中的源地址會自動變為0.0.0.0/0(此IP表示匹配所有網段的IP地址),而此時,-j對應的動作又為REJECT,所以在執行上述命令時如果沒有指明規則原本的源地址,那么所有IP的請求都被拒絕了(因為沒有指定原本的源地址,當前規則的源地址自動變為0.0.0.0/0),如果你正在使用ssh遠程到服務器上進行iptables設置,那么你的ssh請求也將會被阻斷。 既然使用-R選項修改規則時,必須指明規則原本的匹配條件,那么我們則可以理解為,只能通過-R選項修改規則對應的動作了,所以我覺得,如果你想要修改某條規則,還不如先將這條規則刪除,然后在同樣位置再插入一條新規則,這樣更好,當然,如果你只是為了修改某條規則的動作,那么使用-R選項時,不要忘了指明規則原本對應的匹配條件。 好了,上例中,我們已經將規則中的動作從DROP改為了REJECT,那么DROP與REJECT有什么不同呢?從字面上理解,DROP表示丟棄,REJECT表示拒絕,REJECT表達的意思好像更堅決一點,我們再次從146主機上向156主機上發起ping請求,看看與之前動作為DROP時有什么不同。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_18.png) 如上圖所示,當156主機中的iptables規則對應的動作為REJECT時,從146上進行ping操作時,直接就提示"目標不可達",并沒有像之前那樣卡在那里,看來,REJECT比DROP更加"干脆"。 其實,我們還可以修改指定鏈的"默認策略",沒錯,就是下圖中標注的默認策略。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_19.png) 每張表的每條鏈中,都有自己的默認策略,我們也可以理解為默認"動作"。 當報文沒有被鏈中的任何規則匹配到時,或者,當鏈中沒有任何規則時,防火墻會按照默認動作處理報文,我們可以修改指定鏈的默認策略,使用如下命令即可。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_20.png) 使用-t指定要操作的表,使用-P選項指定要修改的鏈,上例中,-P FORWARD DROP表示將表中FORWRD鏈的默認策略改為DROP。 ## 保存規則 在默認的情況下,我們對"防火墻"所做出的修改都是"臨時的",換句話說就是,當重啟iptables服務或者重啟服務器以后,我們平常添加的規則或者對規則所做出的修改都將消失,為了防止這種情況的發生,我們需要將規則"保存"。 centos7與centos6中的情況稍微有些不同,我們先說centos6中怎樣保存iptables規則。 **centos6中**,使用"service iptables save"命令即可保存規則,規則默認保存在/etc/sysconfig/iptables文件中,如果你剛剛安裝完centos6,在剛開始使用iptables時,會發現filter表中會有一些默認的規則,這些默認提供的規則其實就保存在/etc/sysconfig/iptables中, ?保存規則的示例如下。 ![iptables詳解(3):iptables規則管理](http://www.zsythink.net/wp-content/uploads/2017/04/041517_1436_21.png) 如上圖所示,文件中保存了filter表中每條鏈的默認策略,以及每條鏈中的規則,由于其他表中并沒有設置規則,也沒有使用過其他表,所以文件中只保存了filter表中的規則。 當我們對規則進行了修改以后,如果想要修改永久生效,必須使用service iptables save保存規則,當然,如果你誤操作了規則,但是并沒有保存,那么使用service iptables restart命令重啟iptables以后,規則會再次回到上次保存/etc/sysconfig/iptables文件時的模樣。 從現在開始,最好養成及時保存規則的好習慣。 **centos7中**,已經不再使用init風格的腳本啟動服務,而是使用unit文件,所以,在centos7中已經不能再使用類似service iptables start這樣的命令了,所以service iptables save也無法執行,同時,在centos7中,使用firewall替代了原來的iptables service,不過不用擔心,我們只要通過yum源安裝iptables與iptables-services即可(iptables一般會被默認安裝,但是iptables-services在centos7中一般不會被默認安裝),在centos7中安裝完iptables-services后,即可像centos6中一樣,通過service iptables save命令保存規則了,規則同樣保存在/etc/sysconfig/iptables文件中。 此處給出centos7中配置iptables-service的步驟 Shell #配置好yum源以后安裝iptables-service #?yum?install?-y?iptables-services #停止firewalld #?systemctl?stop?firewalld #禁止firewalld自動啟動 #?systemctl?disable?firewalld #啟動iptables #?systemctl?start?iptables #將iptables設置為開機自動啟動,以后即可通過iptables-service控制iptables服務 #?systemctl?enable?iptables 12345678910#配置好yum源以后安裝iptables-service#&nbsp;yum&nbsp;install&nbsp;-y&nbsp;iptables-services#停止firewalld#&nbsp;systemctl&nbsp;stop&nbsp;firewalld#禁止firewalld自動啟動#&nbsp;systemctl&nbsp;disable&nbsp;firewalld#啟動iptables#&nbsp;systemctl&nbsp;start&nbsp;iptables#將iptables設置為開機自動啟動,以后即可通過iptables-service控制iptables服務#&nbsp;systemctl&nbsp;enable&nbsp;iptables 上述配置過程只需一次,以后即可在centos7中愉快的使用service iptables save命令保存iptables規則了。 **其他通用方法** 還可以使用另一種方法保存iptables規則,就是使用iptables-save命令 使用iptables-save并不能保存當前的iptables規則,但是可以將當前的iptables規則以"保存后的格式"輸出到屏幕上。 所以,我們可以使用iptables-save命令,再配合重定向,將規則重定向到/etc/sysconfig/iptables文件中即可。 iptables-save > /etc/sysconfig/iptables 我們也可以將/etc/sysconfig/iptables中的規則重新載入為當前的iptables規則,但是注意,未保存入/etc/sysconfig/iptables文件中的修改將會丟失或者被覆蓋。 使用iptables-restore命令可以從指定文件中重載規則,示例如下 iptables-restore < /etc/sysconfig/iptables 再次提醒:重載規則時,現有規則將會被覆蓋。 ? ? ## 命令小結 上文已經詳細的舉例并描述了怎樣進行iptables規則管理,為了以后能夠快速的回顧,我們把上述命令總結一下。 ### 添加規則 注意點:添加規則時,規則的順序非常重要 在指定表的指定鏈的尾部添加一條規則,-A選項表示在對應鏈的末尾添加規則,省略-t選項時,表示默認操作filter表中的規則 Shell 命令語法:iptables?-t?表名?-A?鏈名?匹配條件?-j?動作 示例:iptables?-t?filter?-A?INPUT?-s?192.168.1.146?-j?DROP 12命令語法:iptables&nbsp;-t&nbsp;表名&nbsp;-A&nbsp;鏈名&nbsp;匹配條件&nbsp;-j&nbsp;動作示例:iptables&nbsp;-t&nbsp;filter&nbsp;-A&nbsp;INPUT&nbsp;-s&nbsp;192.168.1.146&nbsp;-j&nbsp;DROP 在指定表的指定鏈的首部添加一條規則,-I選型表示在對應鏈的開頭添加規則 Shell 命令語法:iptables?-t?表名?-I?鏈名?匹配條件?-j?動作 示例:iptables?-t?filter?-I?INPUT?-s?192.168.1.146?-j?ACCEPT 12命令語法:iptables&nbsp;-t&nbsp;表名&nbsp;-I&nbsp;鏈名&nbsp;匹配條件&nbsp;-j&nbsp;動作示例:iptables&nbsp;-t&nbsp;filter&nbsp;-I&nbsp;INPUT&nbsp;-s&nbsp;192.168.1.146&nbsp;-j&nbsp;ACCEPT 在指定表的指定鏈的指定位置添加一條規則 Shell 命令語法:iptables?-t?表名?-I?鏈名?規則序號?匹配條件?-j?動作 示例:iptables?-t?filter?-I?INPUT?5?-s?192.168.1.146?-j?REJECT 12命令語法:iptables&nbsp;-t&nbsp;表名&nbsp;-I&nbsp;鏈名&nbsp;規則序號&nbsp;匹配條件&nbsp;-j&nbsp;動作示例:iptables&nbsp;-t&nbsp;filter&nbsp;-I&nbsp;INPUT&nbsp;5&nbsp;-s&nbsp;192.168.1.146&nbsp;-j&nbsp;REJECT 設置指定表的指定鏈的默認策略(默認動作),并非添加規則。 Shell 命令語法:iptables?-t?表名?-P?鏈名?動作 示例:iptables?-t?filter?-P?FORWARD?ACCEPT 12命令語法:iptables&nbsp;-t&nbsp;表名&nbsp;-P&nbsp;鏈名&nbsp;動作示例:iptables&nbsp;-t&nbsp;filter&nbsp;-P&nbsp;FORWARD&nbsp;ACCEPT 上例表示將filter表中FORWARD鏈的默認策略設置為ACCEPT ### 刪除規則 注意點:如果沒有保存規則,刪除規則時請慎重 按照規則序號刪除規則,刪除指定表的指定鏈的指定規則,-D選項表示刪除對應鏈中的規則。 Shell 命令語法:iptables?-t?表名?-D?鏈名?規則序號 示例:iptables?-t?filter?-D?INPUT?3 12命令語法:iptables&nbsp;-t&nbsp;表名&nbsp;-D&nbsp;鏈名&nbsp;規則序號示例:iptables&nbsp;-t&nbsp;filter&nbsp;-D&nbsp;INPUT&nbsp;3 上述示例表示刪除filter表中INPUT鏈中序號為3的規則。 按照具體的匹配條件與動作刪除規則,刪除指定表的指定鏈的指定規則。 Shell 命令語法:iptables?-t?表名?-D?鏈名?匹配條件?-j?動作 示例:iptables?-t?filter?-D?INPUT?-s?192.168.1.146?-j?DROP 12命令語法:iptables&nbsp;-t&nbsp;表名&nbsp;-D&nbsp;鏈名&nbsp;匹配條件&nbsp;-j&nbsp;動作示例:iptables&nbsp;-t&nbsp;filter&nbsp;-D&nbsp;INPUT&nbsp;-s&nbsp;192.168.1.146&nbsp;-j&nbsp;DROP 上述示例表示刪除filter表中INPUT鏈中源地址為192.168.1.146并且動作為DROP的規則。 刪除指定表的指定鏈中的所有規則,-F選項表示清空對應鏈中的規則,執行時需三思。 Shell 命令語法:iptables?-t?表名?-F?鏈名 示例:iptables?-t?filter?-F?INPUT 12命令語法:iptables&nbsp;-t&nbsp;表名&nbsp;-F&nbsp;鏈名示例:iptables&nbsp;-t&nbsp;filter&nbsp;-F&nbsp;INPUT 刪除指定表中的所有規則,執行時需三思。 Shell 命令語法:iptables?-t?表名?-F 示例:iptables?-t?filter?-F 12命令語法:iptables&nbsp;-t&nbsp;表名&nbsp;-F示例:iptables&nbsp;-t&nbsp;filter&nbsp;-F ### 修改規則 注意點:如果使用-R選項修改規則中的動作,那么必須指明原規則中的原匹配條件,例如源IP,目標IP等。 修改指定表中指定鏈的指定規則,-R選項表示修改對應鏈中的規則,使用-R選項時要同時指定對應的鏈以及規則對應的序號,并且規則中原本的匹配條件不可省略。 Shell 命令語法:iptables?-t?表名?-R?鏈名?規則序號?規則原本的匹配條件?-j?動作 示例:iptables?-t?filter?-R?INPUT?3?-s?192.168.1.146?-j?ACCEPT 12命令語法:iptables&nbsp;-t&nbsp;表名&nbsp;-R&nbsp;鏈名&nbsp;規則序號&nbsp;規則原本的匹配條件&nbsp;-j&nbsp;動作示例:iptables&nbsp;-t&nbsp;filter&nbsp;-R&nbsp;INPUT&nbsp;3&nbsp;-s&nbsp;192.168.1.146&nbsp;-j&nbsp;ACCEPT 上述示例表示修改filter表中INPUT鏈的第3條規則,將這條規則的動作修改為ACCEPT, -s 192.168.1.146為這條規則中原本的匹配條件,如果省略此匹配條件,修改后的規則中的源地址可能會變為0.0.0.0/0。 其他修改規則的方法:先通過編號刪除規則,再在原編號位置添加一條規則。 修改指定表的指定鏈的默認策略(默認動作),并非修改規則,可以使用如下命令。 Shell 命令語法:iptables?-t?表名?-P?鏈名?動作 示例:iptables?-t?filter?-P?FORWARD?ACCEPT 12命令語法:iptables&nbsp;-t&nbsp;表名&nbsp;-P&nbsp;鏈名&nbsp;動作示例:iptables&nbsp;-t&nbsp;filter&nbsp;-P&nbsp;FORWARD&nbsp;ACCEPT 上例表示將filter表中FORWARD鏈的默認策略修改為ACCEPT ### 保存規則 保存規則命令如下,表示將iptables規則保存至/etc/sysconfig/iptables文件中,如果對應的操作沒有保存,那么當重啟iptables服務以后 Shell service?iptables?save 1service&nbsp;iptables&nbsp;save 注意點:centos7中使用默認使用firewalld,如果想要使用上述命令保存規則,需要安裝iptables-services,具體配置過程請回顧上文。 或者使用如下方法保存規則 Shell iptables-save?>?/etc/sysconfig/iptables 1iptables-save&nbsp;&gt;&nbsp;/etc/sysconfig/iptables 可以使用如下命令從指定的文件載入規則,注意:重載規則時,文件中的規則將會覆蓋現有規則。 Shell iptables-restore?<?/etc/sysconfig/iptables 1iptables-restore&nbsp;&lt;&nbsp;/etc/sysconfig/iptables ? ? ? ? 好了,這篇文章已經總結了怎樣添加、刪除、修改 iptables規則,與前文結合起來,我們已經掌握了對iptables規則的"增刪改查",同時,這篇文章也總結了如何設置鏈的默認策略,以及怎樣保存iptables規則。 我想,你已經入門了,對嗎?如果你是一個新手,希望這篇文章能對你有所幫助。 你的評論會促進下一篇文章的誕生,多來捧場啊客官,么么噠~~~。 ![weinxin](http://www.zsythink.net/wp-content/uploads/2017/04/2017-04-27-1720365637.png) **我的微信公眾號** 關注"實用運維筆記"微信公眾號,當博客中有新文章時,可第一時間得知哦~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看