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