Net-filter属于Linux中的防火墙,Firewalld属于动态守护进程可以管理支持网络区域的防火墙。早期版本RHEL和CentOS中一直用iptables作为数据包过滤框架的守护进程。在基于RHEL发行版的较新版本中iptables接口已被firewalld取代。更推荐使用firewalld,因为firewalld将来可能会停止使用,但是iptables仍然受支持可用yum命令安装。不可以把firewalld和iptables同时放在一个系统,可能会造成冲突。
在iptables中习惯配置INPUT、OUTPUT和FORWARD CHAINS,但firewalld中使用了Zones。默认下firewalld有不同区域可用。基本区域含公共区域和私有区域,为了这些区域可正常工作,需添加具有指定区域支持的接口,可以把服务添加到firewalld。
默认情况下有很多可用服务,firewalld中最佳功能是带预定义服务,可以用这些服务为示例,通过简单的复制来添加服务。firewalld可用于IPv4、IPv6和以太网桥。在firewalld中可以单独运行时配置和永久配置。假设我们要在使用区域创建服务及在Linux中使用firewalld,RHEL、Fedora、Rocky Linux、CentOS Stream、AlmaLinux和openSUSE默认安装了Firewalld包。如果没有安装需要先安装:
# yum install firewalld -y
安装后验证iptables服务是否正在运行,如果正在运行需用一些命令屏蔽iptables服务:
# systemctl status iptables
# systemctl stop iptables
# systemctl mask iptables
开始部署防火墙前,需要认识各个区域,需要把接口分配给区域。区域定义了接口可信任或拒绝连接的区域,区域含服务和端口。在网络安全和防火墙配置中,不同的区域(zone)用于定义对传入和传出流量的处理规则,以下是这些区域的功能描述。
Drop Zone(丢弃区域):此区域会丢弃所有传入的数据包,类似于使用 iptables -j DROP 的规则。这意味着没有任何回应,只有从服务器发起的传出网络连接是可用的。
Block Zone(阻止区域):此区域会使用 icmp-host-prohibited 拒绝传入网络连接,但允许在服务器内部建立的连接。
Public Zone(公共区域):此区域用于接受选定的网络连接。您可以在其中定义规则,仅允许特定端口打开,而其他连接将被丢弃。
External Zone(外部区域):此区域通常用于路由器配置。启用伪装(masquerading)后,其他连接将被丢弃,仅允许指定的连接。
DMZ Zone(非军事化区域):此区域用于允许公众访问某些服务,例如 Web 服务器或邮件服务器。它只接受选定的传入连接。 Work Zone(工作区域):此区域用于定义内部网络,允许私有网络流量通过,但限制对外部网络的访问。
Home Zone(家庭区域):此区域用于家庭网络环境,允许信任网络中的其他设备访问,但不会像其他区域那样暴露您的计算机。它也仅接受选定的传入连接。
Internal Zone(内部区域):此区域类似于工作区域,但更注重选择性地允许特定连接。
Trusted Zone(信任区域):此区域允许所有流量通过,适用于完全信任的网络环境。 这些区域的配置可以根据您的安全需求进行调整,以确保网络的安全性和功能性。
列出全部防火墙区域:
# firewall-cmd --get-zones
列出默认防火墙区域:
# firewall-cmd --get-default-zone