CentOS 7/8 预装的新型防火墙firewalld配置详解,你会用吗

1. 前言
本文将会详细介绍centos 7 firewalld的来由、功能、常用命令、常用的案例及使用方法 。希望能帮助读者全面了解firewalld,并能正确配置和使用它 。

CentOS 7/8 预装的新型防火墙firewalld配置详解,你会用吗

文章插图
 
centos7 firewalld
2. firewalld与iptables的关系
在RHEL7里有几种防火墙共存:firewalld、iptables、ebtables,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等 。firewalld跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝 。而iptables里默认是每个服务是允许,需要拒绝的才去限制 。
CentOS 7/8 预装的新型防火墙firewalld配置详解,你会用吗

文章插图
 
firewalld与iptables的关系
firewalld跟iptables比起来至少有两大好处:
1、firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效;
2、firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能 。
firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了 。
一个重要的概念:区域管理
firewalld将网卡对应到不同的区域(zone),zone 默认共有9个,block dmz drop external home internal public trusted work.
不同的区域之间的差异是其对待数据包的默认行为不同,根据区域名字我们可以很直观的知道该区域的特征,在CentOS7系统中,默认区域被设置为public.
在最新版本的fedora(fedora21)当中随着 server 版和 workstation 版的分化则添加了两个不同的自定义 zone FedoraServer 和 FedoraWorkstation 分别对应两个版本 。
通过将网络划分成不同的区域,制定出不同区域之间的访问控制策略来控制不同程序区域间传送的数据流 。例如,互联网是不可信任的区域,而内部网络是高度信任的区域 。网络安全模型可以在安装,初次启动和首次建立网络连接时选择初始化 。该模型描述了主机所连接的整个网络环境的可信级别,并定义了新连接的处理方式 。有如下几种不同的初始化区域:
  • 阻塞区域(block):任何传入的网络数据包都将被阻止 。
  • 工作区域(work):相信网络上的其他计算机,不会损害你的计算机 。
  • 家庭区域(home):相信网络上的其他计算机,不会损害你的计算机 。
  • 公共区域(public):不相信网络上的任何计算机,只有选择接受传入的网络连接 。
  • 隔离区域(DMZ):隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用 。对于隔离区域,只有选择接受传入的网络连接 。
  • 信任区域(trusted):所有的网络连接都可以接受 。
  • 丢弃区域(drop):任何传入的网络连接都被拒绝 。
  • 内部区域(internal):信任网络上的其他计算机,不会损害你的计算机 。只有选择接受传入的网络连接 。
  • 外部区域(external):不相信网络上的其他计算机,不会损害你的计算机 。只有选择接受传入的网络连接 。
  • 注:FirewallD的默认区域是public 。
firewalld默认提供了九个zone配置文件:block.xml、dmz.xml、drop.xml、external.xml、 home.xml、internal.xml、public.xml、trusted.xml、work.xml,他们都保存在“/usr/lib/firewalld/zones/”目录下 。
默认情况下,在/etc/firewalld/zones下面只有一个public.xml 。如果给另外一个zone做一些改动,并永久保存,那么会自动生成对应的配置文件,比如,给work zone增加一个端口:
firewall-cmd --permanent --zone=work --add-port=1000/tcp
此时就会生成一个work.xml的配置文件
查看XX区域的永久配置文件:
[root@zcwyou ~]# cat /etc/firewalld/zones/XX.xml注意:防火墙配置文件也可以手动修改,修改后记得reload防火墙
配置方法
firewalld的配置方法主要有三种:firewall-config、firewall-cmd和直接编辑xml文件,其中 firewall-config是图形化工具,firewall-cmd是命令行工具,而对于linux来说大家应该更习惯使用命令行方式的操作,所以 firewall-config我们就不给大家介绍了 。
firewalld默认配置文件有两个:
/usr/lib/firewalld/ (系统配置,尽量不要修改)
/etc/firewalld/ (用户配置地址)
3. 什么是服务?


推荐阅读