天天看點

iptables雜記

前面我了解了iptables的表,鍊的規則原理,今天學習一下iptables的規則管理:

iptables雜記

iptables -n -L           

這條指令表示檢視filter中的所有規則,包括INPUT和OUTPUT

如果在指令後面添加INPUT或者OUTPUT,就隻針對INPUT鍊或者OUTPUT鍊進行查詢

上圖中我的INPUT鍊上允許ip 47.99.53.225通路我的伺服器,就是說來自這個ip的資料包不做阻攔,統統放行

那麼這樣的規則是怎麼添加上去的呢?

iptables -t filter -I INPUT -s 47.99.53.225 -j ACCEPT           

這條指令中-t指定了filter這個表的名稱。-I表示insert插入一個鍊INPUT,-s指定來源ip,-j表示執行動作(ACCEPT,REJECT,DROP)

這樣了解就比較簡單了

iptables雜記

上面的-F表示清空所有的INPUT鍊上的規則

檢視後發現我們之前添加的規則已經不見了

這個指令表示一次性清空所有規則,如果我們要請掉指定的規則,我們後面會再學習到

iptables雜記

上面我們在規則中先添加了一條丢棄所有來自118的資料包的規則,我們用118來ping火牆所在的主機時發現ping不通,然後我們用-A表示在INPUT鍊上追加一條允許來自118的資料包通過火牆的規則,那麼我們再來ping一下看是否可以ping通

iptables雜記

發現不可以。。。。

是不是DROP的優先級高于ACCEPT的優先級,或者追加在後面的規則預設不生效,我們再來實驗一下,我們不追加,直接添加一條一模一樣的新規則

iptables雜記
iptables雜記

發現可以ping通,是以火牆的規則遵循前後順序

下面來說一下删除規則:

iptables雜記
iptables --line-number -vnL INPUT           

上面的指令表示将規則進行序号排列,因為在插入或者删除規則的時候需要知道序号,直接指定序号删除更加友善

iptables雜記
iptables -D INPUT 3           

上面的指令表示删除INPUT鍊中的第三條規則

我們也可以根據比對的動作去删除

iptables雜記
iptables -D INPUT -s 118.24.119.177 -j DROP           

修改規則:

iptables雜記

如圖我想要将ACCEPT修改為REJECT,我們該怎麼做

iptables雜記
iptables -R INPUT 1 -s 118.24.119.177 -j REJECT           

上面的指令表示-R(修改)INPUT鍊上的第一條規則(DROP)修改為REJECT

那麼在我們設定完規則之後,我們重新開機主機或者再次去連接配接的時候發現我們之前的政策已經消失,有沒有什麼方法将政策一直儲存呢,我們可以在fstab裡面加入開機自啟的指令,但是這樣又得将指令複制一遍翟鐵在檔案中,而且在開機啟動時,系統調用fstab檔案時會發生系統變慢,開機啟動也會變慢,是以如果我們是centos6的系統,我們直接serivce iptables save就可以儲存政策,規則會儲存在/etc/sysconfig/iptables檔案中

centos7中,我們不在使用init風格的腳本啟動服務,使用了unit,是以在7中不會使用類似于service iptables start這樣的指令,7中用firewall替代了原來的iptables服務,隻要用yum源安裝iptables與iptables-service即可像6一樣用service指令儲存規則,規則同樣儲存在/etc/sysconfig/iptables下,具體步驟如下:

iptables雜記
iptables雜記

通過檢視檔案可以看到我們的規則,相當于我們把7上的firewall給禁止,然後自己裝了iptables,允許iptables頂替firewall的功能

今天的iptables增删改學習完畢,,,,,,,iptables還有一大部分知識有待學習

繼續閱讀