firewalld是自CentOS 7以来带有一个动态的、可定制而无需重新启动防火墙守护程序或服务。firewall-cmd就是iptables/nftable的前端。在CentOS 8中,nftables取代iptables成为默认的Linux网络包过滤框架。本文介绍如何为您的CentOS 8设置防火墙,并借助firewall-cmd管理工具进行管理。
FirewallD的基本概念
在CentOS7之后,当你使用firewalld时,有两个基本概念,你必须要知道的
- 服务(service)
- 区域(zone)
在传统的iptables基于规则的顺序的匹配先后顺序来多数据包进行处理,处理的动作基本上非黑即白这个逻辑,因此iptables的基于规则列表的运行机制相对固化,缺少灵活性。而firewalld将传入的流量分类到由源IP和/或网络接口定义的区域中。每个区域都有的配置,可以根据指定的标准接受或拒绝数据包。
firewalld不仅打破来规则列表固化的先后顺序,而且将以往iptables规则中的tcp/ip信息,使用了一个叫service(服务)来独立封装在一个xml文本中,让使用者更加容易记忆和理解.
什么叫service?粗暴地说,就是应用协议,而与该协议相关的应用能为你做什么。
例如,我上网经常用到tcp协议的80端口和443端口,还有域名解析要用到udp协议的35端口,访问共享文件夹需要用到udp端口的137和138端口,OK,我们这些常用的应用,firewalld都已经内置了。因此在防火墙的配置和管理会变得简单以及人性化。
而理解区域就更简单了,就是对各种内置服务预分组的集合。您可以通过运行以下ls命令查看所有区域,没错,区域也是以XML文档内容预定义在Linux系统中的:
了解预定义区域
获取所有可用的区域,使用如下命令
firewall-cmd --get-zones
- block–拒绝所有传入的网络连接。仅从系统内部启动的网络连接是可能的。
- dmz –经典非军事区(DMZ)区域,它提供对LAN的有限访问,并且仅允许选定的传入端口。
- drop –丢弃所有传入网络连接,并且仅允许传出网络连接。
- external-对于路由器连接类型很有用。您还需要LAN和WAN接口