1. 程式人生 > >26期20180716 iptables規則備份恢復 firewalld zone

26期20180716 iptables規則備份恢復 firewalld zone

fir cto sans webkit onf change gin filter 清空

7月16日任務

10.19 iptables規則備份和恢復

10.20 firewalld的9個zone

10.21 firewalld關於zone的操作

10.22 firewalld關於service的操作


iptables的規則備份和恢復


技術分享圖片


service iptables save會把配置保存到配置文件中 /etc/sysconfig/iptables


如果不想保存在這 可以使用


iptables-save > 文件路徑

技術分享圖片


如果想恢復之前的iptables表,就使用

iptables-restore <文件路徑

iptables -t nat -F 是將nat表的規則清空,然後查看無規則。接著restore後查看, 規則重新出現。看下圖。

技術分享圖片



Linux防火墻 firewalled

技術分享圖片

firealled是之後centos7以及以後版本可能會使用的一個工具,所以需要將iptables關閉,打開firewalld

技術分享圖片

技術分享圖片

相對來說 firewalld自帶的規則相對iptables比較多。以下就是firewalld自帶的規則。不僅僅是filter 也包括nat表,鏈也比較多。

技術分享圖片


firewalld默認是9個zone 默認zone為public 。一個zone就是一個規則集。

firewall-cmd --get-zones 查看所有的zone

技術分享圖片


firewall-cmd --get-default-zone查看默認的zone

技術分享圖片


不同zone的區別

技術分享圖片


firewalld關於zone的操作

技術分享圖片

默認的zone是可以修改的

firewall-cmd --set-default-zone=work 將work更改為默認的zone

技術分享圖片

firewall-cmd --get-zone-of-interface=ens33 查網卡的zone。如果no zone的話可以將ens33的配置文件拷貝一份給37然後修改對應的網絡文件。然後重啟網絡服務以及重啟firewalld。

技術分享圖片


也可以手動給指定的網卡設置zone

firewall-cmd --zone=public --add-interface=lo 給指定網卡設置zone

技術分享圖片

但是如果需要修改成功的話,需要先將NetworkManager關閉。systemctl stop NetworkManager why?

技術分享圖片


firewall-cmd --zone=dmz --change-interface=lo

針對網卡更改zone

技術分享圖片

刪除當前的zone

firewall-cmd --zone=dmz--remove-interface=ens37

註意還是牽涉到一個networkmanager的開啟問題。why

技術分享圖片


查看所有的生效的網卡

firewall-cmd --get-active-zones

技術分享圖片




firewalld service操作


所謂的防火墻就是針對端口做一些限制,service可以理解為是zone下面的端口的操作。

比如http 是操作80端口 ssh 是21端口 https是43端口

技術分享圖片


查看所有的service

firewall-cmd --get-services

技術分享圖片


查看當前默認的zone下都有哪些服務呢?

firewall-cmd --list-services

技術分享圖片

如果是查找對應的zone的service呢?

firewall-cmd --zone=public --list-services

技術分享圖片


在某個zone下面添加service,比如下面就是給public的zone添加http服務

firewall-cmd --zone=public --add-service=http

然後 firewall-cmd --zone=public --list-services

技術分享圖片

但是,目前只是在內存中給zone添加了service,如果想寫入配置文件,需要添加一個選項 --permanent

firewall-cmd --zone=public --add-service=http --permanent

之後會在/etc/firewalld/zones目錄下面生成配置文件

技術分享圖片

有意思的地方是,配置文件有更新的時候,舊的不會覆蓋而是會備份。

技術分享圖片

同樣 service也是有配置文件的,配置文件的目錄是 /etc/firewalld/services/

在沒有更改配置文件之前這裏面是空的

技術分享圖片

實際上這些xml格式的保存文件是有模板的,保存在/ usr/lib/firewalld/zone下

技術分享圖片

同樣 service也是有模板的 保存在/ usr/lib/firewalld/services下

技術分享圖片


做一個小練習。

需求:ftp默認端口21更改為1121,需要在work zone下進行放行ftp

  1. 更改ftp服務。步驟,將ftp模板拷貝到配置文件路徑的service目錄下。然後編輯把21端口改成1121

    cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/

技術分享圖片

技術分享圖片

2. 將ftp服務放到work zone下。步驟 把work zone的模板文件拷貝到配置目錄下,然後修改work.xml文件將ftp服務添加進去

技術分享圖片

技術分享圖片


3. 重新加載。 firewall-cmd --reload

技術分享圖片


in sum,

防火墻 firewall 下主要有zone和service,zone下的service有哪些service,那就說明給哪些service 放行了。

也可以自定義service,比如進去ftp.xml進去改port


26期20180716 iptables規則備份恢復 firewalld zone