firewalld 的9个zone及相关操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了firewalld 的9个zone及相关操作相关的知识,希望对你有一定的参考价值。

1、firewalld 的9个zone

技术分享图片

前面将 firewalled 关闭,打开了 iptables,现在需要先关闭 iptables ,再开启 firewalld ,具体操作见下图,
技术分享图片
接着查看一下规则,输入命令 iptables -nvL ,回车,见下图,
技术分享图片
技术分享图片
技术分享图片
可以看到,规则明显增加非常多,都是 firewalld 自带的规则。不仅仅是 filter 表,nat 表里面也有规则,见下图,
技术分享图片
技术分享图片
firewalld 默认有 9 个 zone,默认的 zone 为 public,zone 可以理解为 firewalld 的单位、规则集。
查看所有的 zone ,输入命令 firewall-cmd --get-zones,回车。查看默认的 zone,输入命令 firewall-cmd --get-default-zone,回车,见下图,
技术分享图片
接着来查看一下,这9个 zone 的区别,见下图,
技术分享图片

2、firewalld 关于 zone 的操作

技术分享图片

现在来设定默认的 zone,输入命令 firewall-cmd --set-default-zone=work,回车,见下图,
技术分享图片
接着查看指定网卡,输入命令 firewall-cmd --get-zone-of-interface=ens33,回车,见下图,
技术分享图片
一起查看了 ens37、lo 网卡的默认 zone。这边的 ens37 默认没有 zone,就需要将它更改为默认 work。需要更改一下配置文件,然后再重启一下网络服务和 firewalld。最后输入命令 systemctl restart firewalld,具体见下图,
技术分享图片
然后输入命令 vi /etc/sysconfig/network-scripts/ifcfg-ens37 ,回车,见下图,
技术分享图片
将上图红色框框的内容更改一下,保存并退出。然后重启网络服务,输入命令 systemctl restart network.service ,回车,见下图,
技术分享图片
接着再重启一下 firewalld,输入命令 systemctl restart firewalld 。现在重启一下系统,再来查看 ens37 的zone,见下图,
技术分享图片
ens37 的默认zone 设置成功了。
接下来给指定网卡设置 zone,输入命令 firewall-cmd --zone=dmz --add-interface=ens37,回车。输入命令 firewall-cmd --zone=public --add-interface=lo,回车,见下图,
技术分享图片
接下来针对指定网卡更改 zone,输入命令 firewall-cmd --zone=block --change-interface=ens37,回车,见下图,
技术分享图片
接下来针对指定网卡删除 zone,输入命令 firewall-cmd --zone=block --remove-interface=ens37,回车,见下图,
技术分享图片
可以看到 ens37 的 zone 又变成默认的 work 了。
接着查看系统所有网卡所在的 zone,输入命令 firewall-cmd --get-active-zones,回车,见下图,
技术分享图片

3、firewalld 关于 service 的操作

技术分享图片

service 是 zone 下面的子单元,可以理解为指定的端口。防火墙就是针对某一个端口做限制。现在来查看一下所有的 service,输入命令 firewall-cmd --get-services,回车,见下图,
技术分享图片
这边的 service,可加可不加,结果都一样。
接着查看当前 firewall-cmd 下的 zone,输入命令 firewall-cmd --get-default-zone,回车,再查看当前 zone 下有哪些 service,输入命令 firewall-cmd --list-services,回车,见下图,
技术分享图片
查看指定 zone 下的 service,输入命令 firewall-cmd --zone=public --list-services,回车,见下图,
技术分享图片
通常用的 public 中的 work 比较多,接下来针对 public 做一些操作,把 http 增加到 public zone 下面,输入命令 firewall-cmd --zone=public --add-service=http,回车,见下图,
技术分享图片
以上的更改没有写入配置文件,想要写入配置文件,输入命令 firewall-cmd --zone=public --add-service=ftp --permanent,回车,见下图,
技术分享图片
查看文件的时候,可以看到 ftp,没有 http,因为 http 增加到 public zone 下的时候,没有写入配置文件。
将 http 以同样的方式写入到配置文件中,见下图,
技术分享图片
每一次更改 zone 的配置文件,/etc/firewalld/zones/ 下都会生成一个新的文件 public.xml 和一个旧的备份文件 public.xml.old 。
技术分享图片
service 也是一样的,只不过它里面没有东西。,因为我们还没有更改任何东西。
zone 和 service 都是有模板文件的,在 /usr/lib/firewalld/zones/ 和 /etc/lib/firewalld/services/ 里面,见下图,
技术分享图片
可以看到,都是 xml 文件。

接下来做一个需求:ftp 服务自定义端口 1121,需要在 work zone 下面放行 ftp。
输入命令 cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services ,回车,然后输入命令 vi /etc/firewalld/services/ftp.xml ,回车,见下图,
技术分享图片
更改上图红色框框的内容为1121,保存并退出。
接着往下操作,输入命令 cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/ ,回车,再输入命令 vim /etc/firewalld/zones/work.xml ,回车,见下图,
技术分享图片
增加一行上图红色框框的内容,保存并退出。然后重新加载服务,输入命令 firewall-cmd --reload ,回车,见下图,
技术分享图片
然后检查一下,输入命令 firewall-cmd --zone=work --list-services,回车,可以看到 ftp 。

以上就是关于 services 的一些操作。

以上是关于firewalld 的9个zone及相关操作的主要内容,如果未能解决你的问题,请参考以下文章

iptables规则备份和恢复 firewalld的9个zone与zone的操作service的操作

10.19 iptables规则备份和恢复 firewalld的9个zone firewalld关

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21

firewall防火墙的9个zone的操作及zone下面service的操作

iptables规则备份和恢复 及firewalld用法

iptables的备份和恢复firewalld的9个zonefirewalld关于zone的操作