1. 程式人生 > >iptables規則備份和恢復/firewalld的9個zone

iptables規則備份和恢復/firewalld的9個zone

sta disable 選擇 啟用 hang 發送 art 加載 lld

iptables規則備份和恢復

iptables規則保存,默認保存的位置路徑:/etc/sysconfig/iptables文件裏;

[root@Ask-02 ~]# service iptables save

iptables規則備份到指定路徑;

[root@Ask-02 ~]# iptables-save > /tmp/ipt.txt

iptables清空規則;

[root@Ask-02 ~]# iptables -t nat -F

iptables查看規則;

[root@Ask-02 ~]# iptables -t nat -nvL

iptables恢復規則;

[root@Ask-02 ~]# iptables-restore < /tmp/ipt.txt

firewalld的9個zone

關閉iptables

[root@Ask-02 ~]# systemctl disable iptables
[root@Ask-02 ~]# systemctl stop iptables

打開firewalled

[root@Ask-02 ~]# systemctl enable firewalld
[root@Ask-02 ~]# systemctl start firewalld

firewalled有兩個基礎概念,分別是zoneservice,每個zone裏面有不同的iptables規則,默認一共有9zone,而Centos7默認的zonepublic


獲取系統所有的zone命令如下;

[root@Ask-02 ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work

查看系統默認的zone命令如下;

[root@Ask-02 ~]# firewall-cmd --get-default-zone
public

9個zone的簡介:

  • drop(丟棄):任何接收的網絡數據包都被拋棄,沒有任何回復。僅能有發送出去的網絡連接。
  • block(限制):任何接收的網絡連接都被IPv4的icmp-host-prohibited信息和IPv6的icmp-adm-prohibited信息所拒絕。
  • public(公共):在公共區域使用,不能相信網絡內的其他計算機不會對你的計算機造成危害,只能接收經過選取的連接
  • external(外部):特別是為路由器啟用了偽裝功能的外部網。你不能信任來自網絡的其他計算,不能相信它們不會對你的計算機造成危害,只能接收經過選擇的連接。
  • dmz(非軍事區):用於你的非軍事區內的計算機,此區域內可公開訪問,可以有限地進入你的內部網絡,僅僅接收經過選擇的連接。
  • work(工作):用於工作區。你可以基本相信網絡內的其它計算機不會危害你的計算機。僅僅接收經過選擇的連接。
  • home(家庭):用於家庭網絡。你可以基本信任網絡內的其它計算機不會危害你的計算機。僅僅接收經過選擇的連接。
  • internal(內部):用於內部網絡。你可以基本上信任網絡內的其它計算機不會威脅你的計算機,僅僅接收經過選擇的連接。
  • trusted(信任):可接收所有的網絡連接

firewalld關於zone的操作

關於zone的命令

[root@Ask-02 ~]# firewall-cmd --set-default-zone=work //設定默認的zone為work
[root@Ask-02 ~]# firewall-cmd --get-zone-of-interface=ens33 //查看指定網卡所在的zone
[root@Ask-02 ~]# firewall-cmd --zone=public --add-interface=lo //給指定網卡設置zone
[root@Ask-02 ~]# firewall-cmd --zone=dmz --change-interface=lo //針對網卡更改zone
[root@Ask-02 ~]# firewall-cmd --zone=dmz --remove-interface=lo //針對網卡刪除zone
[root@Ask-02 ~]# firewall-cmd --get-active-zones //查看系統所有網卡所在的zone
public
interfaces: ens33

firewalld關於service的操作

[root@Ask-02 ~]# firewall-cmd --get-services //列出當前系統所有的service
[root@Ask-02 ~]# firewall-cmd --list-services //查看當前zone下有哪些service
[root@Ask-02 ~]# firewall-cmd --zone=public --list-services //查看指定zone下有哪些service
[root@Ask-02 ~]# firewall-cmd --zone=public --add-service=http //把http增加到public zone下面
[root@Ask-02 ~]# firewall-cmd --zone=public --add-service=http --permanent //以修改配置文件來增加service
[root@Ask-02 ~]# ls /usr/lib/firewalld/zones/ //查看zone對應的配置文件
[root@Ask-02 ~]# ls /etc/firewalld/zones/ //一旦更改zone配置文件,則會在這個路徑下面生成對應的zone的配置文件

演示一個需求操作,ftp服務自定義端口1121,需要在work zone下面方行ftp
操作如下;

[root@Ask-02 ~]# cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/
[root@Ask-02 ~]# vi /etc/firewalld/services/ftp.xml //把裏面的21改為1121

技術分享圖片

[root@Ask-02 ~]# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
[root@Ask-02 ~]# vi /etc/firewalld/zones/work.xml //在裏面增加一行FTP相關的配置,內容如下

技術分享圖片

如此配置工作就完成,輸入以下命令重新加載

[root@Ask-02 ~]# firewall-cmd --reload

並驗證以下

[root@Ask-02 ~]# firewall-cmd --zone=work --list-services
ssh dhcpv6-client ftp

iptables規則備份和恢復/firewalld的9個zone