Linux CentOS stream 9 firewalld
随着互联网行业快速发展,服务器成为用户部署网络业务重要的网络工具,但随之而来的就是更密集的网络攻击,这给网站带来了很大的阻碍。防火墙作为保障网络安全的主要设备,可以很好的抵御网络攻击。
防火墙基本上使用硬件和软件两种机制来限制流量。可以使用硬件,如电路级网关、代理服务器、应用网关等,来提供深入的保护。亦可以使用软件,如包过滤等手段,允许/禁止流量。如同时使用软硬件进行防护,效果会更好。本文仅讨论软件机制。
从centos7开始,引入firewalld防火墙管理工具,引入区域概念。相较于原版本一直使用的iptables工具,有重大改变。
对于初次接触防火墙管理的读者,只需关注区域、服务、端口、目标和源等概念,全面使用firewalld工具;而对于使用linux老系统、低版本的读者,则只能尽快熟悉"五表五键"等概念,使用iptables管理工具。
PS:centos7系统默认没有安装iptables工具,想训练其使用,需要单独下载、安装。
防火墙底层原理
管理员在用户态,通过防火墙管理工具来设置防火墙的规则,配置在相关文件中。是否应用或启动,由iptables命令接口传递到内核netfilter模块。需要执行时,防火墙的规则由内核中的netfilter模块具体执行。
当数据包经过防火墙时,系统内核会将客户请求逐一与所设置的规则进行匹配,当匹配成功之后,由防火墙执行规则中定义的行为,如放行、阻止、丢弃等。
配置防火墙就是添加、删除、修改这些规则。例如,设置一条规则,拒绝所有的ICMP数据包,设置好该规则之后,该规则就会保存到内核的netfilter模块,之后所有的ICMP数据包都会被拒绝。
防火墙的规则,早期的CentOS 5/6操作系统默认使用iptables工具,从CentOS 7开始,默认使用firewalld工具。
两个管理工具的底层原理在于,iptables从细节入手,从物理层面设置规则,分析网络连接的各个层次,有表有链等。而firewalld从大处着手,从逻辑层面设置规则与要求。区域、目标、源是其核心概念,而关注端口、服务亦具独特视角。
一个系统中只能选择一项管理工具,不能同时使用。原因在于:iptables允许所有流量通过,只限制指定规则的流量;而firewalld则相反,禁止所有流量通过,只允许符合规则的才允许通过。二者原理与手段完全相左。本文主要讨论firewalld的概念与使用。
一、firewalld服务
在CentOS 7中,新引入了firewalld服务,取代了CentOS 6之前的iptables服务。
1.firewalld特点
比较而言,firewalld允许哪些服务可用,哪些端口可用,属于更高一层的防火墙。firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具。它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算),并且拥有两种配置模式:运行时(Runtime)模式和永久(Permanent)模式。
firewalld是一种动态的、用户友好的Linux防火墙管理工具。相较于传统的iptables,firewalld提供了更灵活、更方便的防火墙配置方式,使得管理员能够更容易地管理网络安全策略。
传统的iptables配置可能比较复杂,尤其是对于新手来说。firewalld通过引入概念化的“区域”、“服务”和“端口”等概念,简化了防火墙的配置。管理员无需深入了解iptables的规则语法,只需使用简单的命令和配置文件就能轻松管理防火墙。
2.firewalld核心概念
区域(Zones)
Firewalld引入了"区域"的概念,用于定义不同的网络区域,每个区域可以有不同的防火墙规则。常见的区域包括public、private、work、home等。默认情况下,网络接口会被分配到public区域。
服务(Services)
服务是一组预定义的规则,用于定义允许通过防火墙的特定网络服务。例如,HTTP、SSH等服务都可以被定义为服务,从而简化防火墙规则的配置。
端口(Ports)
端口用于标识网络通信中的特定应用程序。Firewalld允许你通过端口来控制流入或流出的数据包。可以打开或关闭特定端口,也可以定义自定义端口。
源和目标
firewalld允许你根据数据包的来源和目标来定义规则。这使得你可以限制特定IP地址或地址范围的访问,增强了网络安全性。
3.使用方式
a.firewall-cmd
firewall-cmd是firewalld的字符界面管理工具
可以通过远程连接工具,配置防火墙规则。

b.firewall-config
firewall-config是firewalld的图形用户界面管理工具
在系统桌面中,命令行执行firewall-config命令,打开firewalld的图形用户界面管理工具。

如用远程连接工具,如xshell,执行命令firewall-config,将不能打开图形管理工具,提示在windows系统中安装xmanager,可以直接打开该工具且配置防火墙规则。
c.修改firewalld配置文件
firewalld的配置文件分为主配置文件和区域/服务/端口配置文件。
主配置文件位于/etc/firewalld/firewalld.conf,包含一般的Firewalld设置,如默认区域等。
每个区域都有一个对应的配置文件,位于/etc/firewalld/zones/目录下。这些文件包含特定区域的防火墙规则。
服务配置文件位于/etc/firewalld/services/目录下,定义了预定义服务的防火墙规则。
4.管理工具关系
现有防火墙管理手段的基本框架如下,供参考。

二、命令语法
在三种使用firewalld的方法中,我们重点讨论firewall-cmd。
1.启动firewalld
CentOS Stream 9操作系统默认开启了firewalld服务,用户可以使用systemctl命令查看firewalld服务状态。
2.命令格式
firewalld命令格式简单:
firewall-cmd [options..]
firewall-cmd命令常用选项
| 参数 | 含义 |
| --get-default-zone | 查询默认的区域名称 |
| --set-default-zone=区域名称 | 设置默认的区域,使其永久生效 |
| --get-zones | 显示可用的区域 |
| --get--services | 显示预先定义的服务 |
| --get-active-zones | 显示当前正在使用的区域与网卡名称 |
| --add-source= | 将源自此IP或子网的流量导向指定的区域 |
| --remove-source | 不再将源自此IP或子网的流量都导向某个指定区域 |
| --add-service=服务名 | 设置默认区域允许该服务的流量 |
| --add-port=端口号/协议 | 设置默认区域允许该端口的流量 |
| --remove-service=服务名 | 设置默认区域不再允许该端口的流量 |
| --add-interface=网卡名称 | 将源自该的所有流量都导向某个指定区域 |
| --change-interface=网卡名称 | 将某个网卡与区域进行关联 |
| --list-all | 显示当前区域的配置参数、资源、端口以及服务等信息 |
| --list-all-zones | 显示所有区域的配置参数、资源、端口以及服务等信息 |
| --reload | 让永久生效的配置规则立即生效,并覆盖当前的配置规则 |
| --panic-on | 开启应急状况模式 |
| --panic-off | 关闭应急状况模式 |
3.常见区域
firewalld常见区域及相应策略规则
| 区域 | 策略 |
| trusted | 允许所有数据包 |
| home | 拒绝流入的流量,除非与流出的流量相关。若流量与ssh、mdns、ipp-client、amba-client、dhcpv6-client服务相关,则允许流量通过 |
| internal | 等同于home区域 |
| work | 拒绝流入的流量,除非与流出的流量相关,若流量与ssh、ipp-client、dhcpv6-client相关,则允许流量通过 |
| public | 拒绝流入的流量,除非与流出的流量相关,若流量与ssh、dhcpv6-client服务相关,则允许流量通过 |
| external | 拒绝流入的流量,除非与流出的流量相关,若流量与ssh服务相关,则允许流量通过 |
| dmz | 拒绝流入的流量,除非与流出的流量相关,若流量与ssh服务相关,则允许流量通过 |
| block | 拒绝流入的流量,除非与流出的流量相关(阻断) |
| drop | 拒绝流入的流量,除非与流出的流量相关(丢弃) |
4.帮助信息
firewalld命令众多,一般可以通过帮助查看详细使用方法。

5.模式选择
firewalld配置的防火墙策略,分为运行时(Runtime)模式、永久(Permanent)模式两种。
默认的是运行时(Runtime)模式,配置的策略便会立即生效,但是,系统一旦重启就会失效。
永久生效(Permanent)模式,可以使firewalld配置永久生效,但是,此模式需要重启系统,或者手动执行firewall-cmd --reload命令,配置的策略才会立即生效。
三、使用技巧
1.命令应用别名
firewalld命令比较复杂,也不易录入,可以设置别名,加快录入,并确保正确无误。建议如下:
alias f=firewall-cmd
alias fz='firewall-cmd --zone=public'
alias fp='firewall-cmd --permanent'
alias fl='firewall-cmd --list-all'
alias fr='firewall-cmd --reload'

2.简写参数/选项
在firewalld命令使用中,系统支持简写。这是系统一大特点,各版本都可应用。
一般是用单词的前三个字母。
--state 简写 --st[ate]
--masquerade 简写 --mas
--permanent 简写 --per
--list-service 简写 --list-ser
--remove-masquerade 简写 --remove-mas
--add-service 简写 --add-ser

3.补全
正常使用firewall-cmd命令录入参数时,可以按Tab键补全命令,按两次,可以提示可选择的内容。
如使用别名,不再支持Tab键补全。
4.符号使用
a.空格
在使用firewalld命令中,可以用空格代替=号

执行上述命令时,可用空格代替=号,功能相同。

了解这一特性后,可用空格代替命令中的=号,录入时相对容易些。
b.双引号
在配置富规则时,根据习惯,可以加双引号。
配置一条富规则,拒绝192.168.100.2主机的ssh服务:
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.2" service name="ssh" reject'

第1次添加时命令中加双引号。查看效果后删除该富规则。
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.100.2" service name="ssh" reject'

第2次添加时不加双引号,效果相同
firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.100.2 service name=ssh reject'

c.=号
我们添加一个httpd服务,把=号替换为空格,结果相同
firewall-cmd --add-service http

d.-
添加多个端口时,开始端口加上“-”结束端口:

四、案例
首先使用systemctl命令,查看firewalld(防火墙)的状态(status)、重新启动(restart)、临时关闭(stop)、临时开启(start)防火墙服务。
1.查看使用区域
查看firewalld服务当前所使用的区域
命令:
firewall-cmd --get-default-zone
效果:

2.查看所有信息
查看firewalld当前区域的配置参数、资源、服务等信息
命令:
firewall-cmd --list-all
效果:

(3)查看单项信息
查看public区域是否允许https服务和FTP协议数据包通过
命令:
firewall-cmd --zone=public --query-service=https
firewall-cmd --zone=public --query-service=ftp
效果:

(4)永久设置
将https设置为永久允许,并立即生效
命令中添加选项--permanent,为永久设置;没有此选项,为临时设置。
命令:
firewall-cmd --permanent --zone=public --add-service=https #设置规则
firewall-cmd –reload #立即生效
firewall-cmd --zone=public --query-service=https
效果:

将http设置为永久允许,并立即生效
命令:
f --zone public --add-ser http --per #--per位置任意
f –rel #使规则生效,用命令别名和简写
f --list-ser #查看所有允许的服务
效果:

(5)设置端口
将10000端口的数据包设置为允许,仅限当前有效
命令:
firewall-cmd --list-port #默认查看当前的区域
firewall-cmd --zone=public --add-port=10000/tcp
firewall-cmd --list-port #不加--zone=public时,默认查看当前的区域
效果:

(6)设置富规则
配置一条富规则,拒绝172.168.1.0/24网段的所有用户访问本机的ssh服务
命令:
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service="ssh" reject'
效果:

基础规则是设置前几项,而最后一项是富规则。
相关文章:
Linux CentOS stream 9 firewalld
随着互联网行业快速发展,服务器成为用户部署网络业务重要的网络工具,但随之而来的就是更密集的网络攻击,这给网站带来了很大的阻碍。防火墙作为保障网络安全的主要设备,可以很好的抵御网络攻击。 防火墙基本上使用硬件和软件两种…...
VLM多模态图像识别小模型UForm
参考:https://github.com/unum-cloud/uform https://huggingface.co/unum-cloud/uform-gen2-qwen-500m https://baijiahao.baidu.com/s?id=1787054120353641459&wfr=spider&for=pc demo:https://huggingface.co/spaces/unum-cloud/uform-gen2-qwen-500m-demo UF…...
我的NPI项目之设备系统启动(七) -- 高通OS启动阶段和镜像分区简析
每当有新的平台起来的时候,大概率会伴随着新系统的发布,无论是高通的还是Google Andorid的。在做平台Bringup阶段总会遇到各种各样的专业术语。例如,总是会听到有人说PBL,SBL,XBL,UFEI,Bootload…...
vue框架-vue-cli
vue-cli Vue CLI是一个官方的脚手架工具,用于快速搭建基于Vue.js的项目。Vue CLI提供了一整套可配置的脚手架,可以帮助开发人员快速构建现代化的Web应用程序。 Vue CLI通过提供预先配置好的Webpack模板和插件,使得开发人员可以在不需要手动编写Webpack配置的情况下快速创建…...
Sora (text-to-video model-文本转视频模型)
以下翻译自维基百科 Introduction Sora 是由美国人工智能 (AI) 研究组织 OpenAI 开发的文本到视频模型。它可以根据描述性提示生成视频,并及时向前或向后扩展现有视频。截至 2024 年 2 月,它尚未发布,尚未向公众开放。 History 在 Sora 之…...
java生态环境评价Myeclipse开发mysql数据库web结构java编程计算机网页项目
一、源码特点 java 生态环境评价管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysq…...
数据结构-最短路径(Dijkstra算法与Floyd算法)
介绍 对于网图来说,最短路径是指两顶点之间经过的边上权值之和最少的路径,其路径上第一个点记为源点,最后一个为终点。 计算最短路径有两个经典算法,即迪杰斯特拉(Dijkstra)算法与弗洛伊德(Fl…...
文献速递:GAN医学影像合成--联邦生成对抗网络基础医学图像合成中的后门攻击与防御
文献速递:GAN医学影像合成–联邦生成对抗网络基础医学图像合成中的后门攻击与防御 01 文献速递介绍 虽然深度学习在医疗保健研究中产生了显著影响,但其在医疗保健领域的影响无疑比在其他应用领域更慢、更有限。造成这种情况的一个重要原因是ÿ…...
Java实现自动化pdf打水印小项目 使用技术pdfbox、Documents4j
文章目录 前言源码获取一、需求说明二、 调研pdf处理工具word处理工具 三、技术栈选择四、功能实现实现效果详细功能介绍详细代码实现项目目录WordUtilsMain类实现部分:第一部分Main类实现部分:第二部分Main类实现部分:第三部分 资料获取 前言…...
hive load data未正确读取到日期
1.源数据CSV文件日期字段值: 2.hive DDL语句: CREATE EXTERNAL TABLE test.textfile_table1(id int COMMENT ????, name string COMMENT ??, gender string COMMENT ??, birthday date COMMENT ????,.......) ROW FORMAT SERDE org.apache.…...
C++ 遍历map的3中方法
方法1 #include <iostream> #include <string> #include <map> using namespace std;int main() {map<string, string> nameList {{"张三丰", "武当山"},{"张无忌", "光明顶"},{"张二蛋", "…...
redis 主从模式,sentinel 模式配置
编辑 sentinel.xml 和 redis.conf redis.conf 中核心是配置 bind 192.168.64.144 daemonize yes protected-mode no dbfilename redis-6379.rdb #默认dump.rdb replica-read-only yes # 自动2.6副本默认只读,也就是slave只有只读权限 replicationOf myapplicat…...
小型医院医疗设备管理系统|基于springboot小型医院医疗设备管理系统设计与实现(源码+数据库+文档)
小型医院医疗设备管理系统目录 目录 基于springboot小型医院医疗设备管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、职员信息管理 2、设备信息管理 3、库房信息管理 4、公告信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、…...
CSS学习(三)
目录: 1. CSS引入方式 1.1 三种样式表 1.2 内部样式表(嵌入式引入) 1.3 行内样式表(内联样式表) 1.4 外部样式表 1.5 总结 1. CSS引入方式 1.1 三种样式表 1.2 内部样式表(嵌入式引入) …...
CentOS7安装InfluxDB2简易教程
InfluxDB是一个开源的时间序列数据库,它专门用于处理大规模的时间序列数据。时间序列数据是在特定时间点上收集的数据,例如传感器数据、监控数据、应用程序日志等。 InfluxDB设计用于高效地存储、查询和分析大量的时间序列数据。它具有高性能、可扩展性和…...
数据库:信息存储与管理的关键
数据库:信息存储与管理的关键 数据库是现代信息系统中不可或缺的组成部分,它承担着存储、管理和检索数据的重要任务。本文将详细介绍数据库的定义、分类、作用以及特点。 1. 数据库的介绍 数据库是一个有组织的数据集合,用于存储和管理大量…...
极智芯 | 解读NVIDIA RTX5090 又是一波被禁售的节奏
欢迎关注我的公众号「极智视界」,获取我的更多技术分享 大家好,我是极智视界,本文分享一下 解读NVIDIA RTX5090 又是一波被禁售的节奏。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq 按 NVIDIA GPU …...
rtt的io设备框架面向对象学习-硬件rtc设备
目录 1.硬件rtc设备基类2.硬件rtc设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 硬件rtc和软件rtc设备是互斥的。因为它们的名字都叫"rtc",在对象容器中不允许重名。 1.硬件rtc设备基类 此层处于设备驱…...
产品经理学习-产品运营《流程管理》
如何进行流程管理 信息可视化 甘特图-流程管理思维导图-方案讨论原型图-活动文档 明确责任制 分工明确,关键环境有主负责人通过时间倒推督促管理 沟通技巧 明确共同利益以结果激励做好信息同步 如何进行监控活动效果 监控活动的效果是要监控数据 活动每个环境的…...
压缩感知——革新数据采集的科学魔法
引言: 在数字时代,数据以及数据的收集和处理无处不在。压缩感知(Compressed Sensing, CS)是一种新兴的数学框架,它挑战了我们传统上对数据采集和压缩的看法,给医学图像、天文观测、环境监测等领域带来了颠覆性的影响。但到底什么…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...
【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...
HTTPS证书一年多少钱?
HTTPS证书作为保障网站数据传输安全的重要工具,成为众多网站运营者的必备选择。然而,面对市场上种类繁多的HTTPS证书,其一年费用究竟是多少,又受哪些因素影响呢? 首先,HTTPS证书通常在PinTrust这样的专业平…...
高效的后台管理系统——可进行二次开发
随着互联网技术的迅猛发展,企业的数字化管理变得愈加重要。后台管理系统作为数据存储与业务管理的核心,成为了现代企业不可或缺的一部分。今天我们要介绍的是一款名为 若依后台管理框架 的系统,它不仅支持跨平台应用,还能提供丰富…...
盲盒一番赏小程序:引领盲盒新潮流
在盲盒市场日益火爆的今天,如何才能在众多盲盒产品中脱颖而出?盲盒一番赏小程序给出了答案,它以创新的玩法和优质的服务,引领着盲盒新潮流。 一番赏小程序的最大特色在于其独特的赏品分级制度。赏品分为多个等级,从普…...
