Linux防火墙之firewalld基础
一、firewalld概述
firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙。
firewalld和iptables都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,内部结构都指向netfilter网络过过滤子系统(属于内核态)来实现包过滤防火墙功能。
firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具。 它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算), 并且拥有两种配置模式:运行时配置与永久配置。
二、iptables与firewalld的联系与区别
1.iptables与firewalld的联系
netfilter
- 位于Linux内核中的包过滤功能体系
- 称为Linux防火墙的“内核态”
Firewalld/iptables
- CentOS7默认的管理防火墙规则的工具(Firewalld)
- 称为Linux防火墙的“用户态”

2. iptables与firewalld的区别

区别一:
iptables主要是基于接口,来设置规则,从而判断网络的安全性。
firewalld是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。与硬件防火墙的设置相类似。
区别二:
iptables 在 /etc/sysconfig/iptables 中储存配置,
firewalld 将配置储存在 /etc/firewalld/(优先加载)和 /usr/lib/firewalld/(默认的配置文件)中的各种 XML 文件里。
区别三:
使用 iptables 每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables 里读取所有新的规则
使用 firewalld 却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此firewalld 可以在运行时间内,改变设置而不丢失
现行连接。
三、firewalld区域
1.firewalld区域的概念
firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone)。然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口和服务列表。
这些区域配置文件存在于/usr/lib/firewalld/zones目录中,还有一个目录/etc/firewalld/zones。firewalld使用规则时,会首先到/etc/firewalld/目录中查找,如果可以找到就直接使用,找不到会继续到/usr/lib/firewalld/目录中查找。
2.firewalld的九个区域
| 区域 | 作用 |
| trusted(信任区域) | 允许所有的传入流量。 |
| public(公共区域) | 允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的默认区域。 |
| external(外部区域) | 允许与ssh预定义服务匹配的传入流量其余均拒绝。 |
| home(家庭区域) | 允许与ssh、mdns、samba-client或dhcpv6-client预定义服务匹配的传入流量,其他均拒绝。 |
| internal(内部区域) | 默认值与home区域相同。 |
| work(工作区域) | 允许与ssh、dhcpv6-client预定义服务匹配的传入流量,其他均拒绝 |
| dmz(隔离区域也称非军事区域) | 允许与ssh预定义服务匹配的传入流量,其他均拒绝 |
| block(限制区域) | 拒绝所有传入流量。 |
| drop(丢弃区域) | 丢弃所有传入流量,并且不产生包含icmp的错误响应。 |
3.firewalld区域介绍和区域优先级
1) firewalld区域介绍
最终一个区域的安全程度是取决于管理员在此区域中设置的规则。
区域如同进入主机的安全门,每个区域都具有不同限制程度的规则,只会允许符合规则的流量传入。
可以根据网络规模,使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口。
默认情况下,public区域是默认区域,包含所有接口(网卡)。
2)firewalld数据处理流程
检查数据来源的源地址:
若源地址关联到特定的区域,则执行该区域所指定的规则
若源地址未关联到特定的区域,则使用传入网络接口的区域 并执行该区域所指定的规则
若网络接口未关联到特定的区域,则使用默认区域并执行该 区域所指定的规则
区域优先级:源地址绑定的区域 > 网卡绑定的区域 > 默认区域(只要没有绑定过指定区域的网卡,都适用于于默认区域的规则。默认区域可自定义,不修改则为public)
3) firewalld防火墙的配置方法
1、使用firewall-cmd 命令行工具。
2、使用firewall-config 图形工具。

3、编写/etc/firewalld/中的配置文件。
Firewalld 会优先使用/etc/firewalld/中的配置,如果不存在配置文件,则使用/usr/lib/firewalld/中的配置。
/etc/firewalld/:用户自定义配置文件,需要时可通过从/usr/lib/firewalld/ 中拷贝
/usr/lib/firewalld/ :默认配置文件,不建议修改,若恢复至默认配置,可直接删除/etc/firewalld/ 中的配置
四、fiewall-cmd命令行使用
1. 默认区域的查看与设置
不指定区域时,则对默认区域进行操作(默认区域可自定义,不修改则为public)
格式:
firewall-cmd:
--get-default-zone :显示当前默认区域
--set-default-zone=<zone> :设置默认区域

2.对指定网卡进行操作
格式:
firewall-cmd:
--get-active-zones :显示当前正在使用的区域及其对应的网卡接口
--get-zones :显示所有可用的区域--get-zone-of-interface=<interface> :显示指定接口绑定的区域
--zone=<zone> --add-interface=<interface> :为指定接口绑定区域
--zone=<zone> --change-interface=<interface> :为指定的区域更改绑定的网络接口
--zone=<zone> --remove-interface=<interface> :为指定的区域删除绑定的网络接口

3.对源地址进行操作
格式:
firewall-cmd:
--add-source=xxxxxx --zone=<zone> //增加源地址指定区域
--remove-source=xxxxxx --zone=<zone> //删除源地址指定区域

4.查看指定区域的所有规则
不指定区域时,则对默认区域进行操作(默认区域可自定义,不修改则为public)
firewall-cmd --list-all-zones:显示所有区域及其规则
firewall-cmd --list-all : 不指定区域时,查看的是默认区域
firewall-cmd --list-all --zone=work:显示work区域的所有规则


5.服务管理
1)查看默认区域内允许访问的所有服务

2)添加服务
注意后面不跟指定的区域,就会添加到默认区域中
指定区域添加

3)查看public 区域已配置规则

4)删除public 区域的http服务

6.端口管理
1)允许TCP的443端口到internal 区域

2)从internal 区域将TCP的443端口移除

3)允许UDP的2048~2050端口到默认区域

7.永久保存设置
以上操作均为实时配置,会立即生效,但是当服务重启时就会失效。如果要对自己写入更改的服务配置或则端口配置进行永久保存一般有两种方式

1)方法一
在命令的结尾加入 --permanent 设置成永久生效,需要重启服务或重新加载后才生效。

2)方法二
--runtime-to-permanent:将当前的运行时配置写入规则配置文件中,使之成为永久性配置。

8.内容延申:DNAT和SNAT也可以通过firewall-cmd设置地址转换
1)设置 SNAT
firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A POSTROUTING -s 192.168.73.0/24 -j SNAT --to-source 12.0.0.12

2)设置 DNAT
firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A PREROUTING -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to-destination 192.168.73.111
相关文章:
Linux防火墙之firewalld基础
一、firewalld概述 firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙。 firewalld和iptables都是用来管理防火墙的工具(属于用户态)来定义防火墙的…...
GitLab CI/CD
CI/CD 简介 CI/CD 简单来说就是可以自动化编译、测试、打包我们的代码。 GitLab CICD的使用 首先需要安装gitlab-runner。 在GitLab 中,runners 是运行 CI/CD 作业的代理。我们的对代码的作业都是在runner上去执行的。我们可以在本地、服务器、等任意一个联网设…...
PHP复习资料(未完待续)
(未完待续,请持续关注此板块) 【计科三四】雪课堂PHP期末模拟题:https://ks.wjx.top/vm/tUAmjxq.aspx# 【计科一二】PHP第一章练习题 https://ks.wjx.top/vm/QnjHad4.aspx# 【计科一二】PHP第二章练习题 https://ks.wjx.top/vm/h2…...
【python】pytorch包(第二章)API使用与介绍
1> nn.Module (用于构建模型的底层逻辑) 介绍 nn.Module 是 torch.nn 中的一个类,是pytorch中自定义网络的基类 __init__需要调用super方法,继承父类属性和方法forward方法必须实现,用来定义网络的向前计算的过程…...
Linux驱动基础(SR501人体感应模块)
文章目录 前言一、SR501模块介绍二、设备树编写三、驱动编写1.确定主设备号2.编写file_operations结构体3.注册file_operations结构体4.出口函数编写5.probe函数和remove函数编写6.中断编写7.测试程序编写8.全部驱动程序 总结 前言 本篇文章将给大家介绍一下SR501驱动程序的编…...
Android Studio Flamingo (火烈鸟) 升级踩坑记录
由于想要验证Compose最新的debug特性,而我目前使用的版本(Dolphin 小海豚)不支持,查看官网说明需要最新版本,所以不得已进行了一下Android Studio版本升级,过程中遇到一些问题,本文仅做记录。&a…...
【JAVA凝气】异常篇
哈喽~大家好呀,这篇来看看JAVA异常篇。 目录 一、前言 二、Exception 异常 1、Java 的非检查性异常 2、Java 检查性异常类 三、Error 错误 四、捕获异常 五、多重捕获块 六、throws/throw 关键字 七、自定义异常类 八、图书推荐 一、前言 异常是程序中的一…...
C++中的函数模板
目录 1. 什么是函数模板? 2. 如何定义函数模板? 3. 如何使用函数模板? 4. 函数模板与函数重载的区别是什么? 5. 函数模板与类模板有何异同点? 1. 什么是函数模板? - 函数模板是一种通用的函数描述&…...
MapReduce【Shuffle-Combiner】
概述 Conbiner在MapReduce的Shuffle阶段起作用,它负责局部数据的聚合,我们可以看到,对于大数据量,如果没有Combiner,将会在磁盘上写入多个文件等待ReduceTask来拉取,但是如果有Combiner组件,我们…...
postman接口自动化测试
Postman除了前面介绍的一些功能,还有其他一些小功能在日常接口测试或许用得上。今天,我们就来盘点一下,如下所示: 1.数据驱动 想要批量执行接口用例,我们一般会将对应的接口用例放在同一个Collection中…...
历经70+场面试,我发现了大厂面试的套路都是···
今年的金三银四刚刚过去,我又想起了我在去年春招时面试了50余家,加上暑期实习面试了20余家,加起来也面试了70余场的面试场景了。 基本把国内有名的互联网公司都面了一遍,不敢说自己的面试经验很丰富,但也是不差的。 …...
可视区域兼容性问题的思考及方法封装
今日在复习可视化尺寸获取时突发奇想,为什么要在怪异模式下使用document.body.clientWidth,在标准模式下使用document.documentElement.clientWidth?以及是否在IE8及以下的版本中其中一个获取方式将返回undefined或0。 出于该问题的思考&am…...
安全工具 | CMSeeK [指纹识别]
0x00 免责声明 本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担…...
Android新logcat使用技巧
Android新logcat使用技巧 logcat新UI出现后,我常困惑于怎么过滤log,和以前的UI差异比较大,新UI界面结构如下: 这个新的 logcat 的问题是如何过滤信息并不是很明显。 获取应用的日志信息 要获取我们当前调试应用的日志信息&…...
使用Makefile笔记总结
文章目录 一、简单了解Makefile1.1 Makefile示例1.2 基本规则1.3 make是如何工作的1.4 使用变量1.5 make自动推导 二、变量2.1 变量的定义和引用2.2 变量的两种高级用法2.3 override 和 define 关键字2.4 环境变量与目标变量2.5 自动变量 三、Makefile规则3.1 通配符3.2 目标依…...
npm下载依赖项目跑不起来--解决方案
code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: vue-element-admin4.4.0 npm ERR! Found: webpack4.46.0 npm ERR! node_modules/webpack npm ERR! webpack“^4.23.0” from the root project npm ERR! npm ERR! Coul…...
SolVES模型生态系统服务功能社会价值评估
查看原文>>>SolVES 模型生态系统服务功能社会价值评估(基于多源环境QGIS、PostgreSQL、ArcGIS、Maxent、R语言) 目录 第一章、理论基础与研究热点 第二章、SolVES 4.0 模型运行环境配置 第三章、SolVES 4.0 模型运行 第四章、数据获取与入…...
Godot引擎 4.0 文档 - 入门介绍 - 学习新功能
本文为Google Translate英译中结果,DrGraph在此基础上加了一些校正。英文原版页面: Learning new features — Godot Engine (stable) documentation in English 学习新功能 Godot 是一个功能丰富的游戏引擎。有很多关于它的知识。本页介绍了如何使用…...
如何进行MySQL漏洞扫描
MySQL是一款广泛使用的关系型数据库管理系统,但由于其复杂的结构和功能,也存在不少安全漏洞,容易被黑客攻击。为了解决这些安全问题,进行MySQL漏洞扫描是必要的。那么MySQL怎么进行漏洞扫描?如何进行漏洞扫描?接下来就让小编带大…...
C语言函数大全-- x 开头的函数(3)
C语言函数大全 本篇介绍C语言函数大全-- x 开头的函数 1. xdr_opaque 1.1 函数说明 函数声明函数功能bool_t xdr_opaque(XDR *xdrs, char *buf, u_int len);用于编码或解码任意长度的二进制数据 参数: xdrs : 指向 XDR 数据结构的指针,表…...
手把手教你用思博伦GSS7000的SimReplayPlus模块:从硬件连接到功率调节的完整避坑指南
手把手教你用思博伦GSS7000的SimReplayPlus模块:从硬件连接到功率调节的完整避坑指南 第一次接触思博伦GSS7000卫星导航模拟器时,面对复杂的硬件接口和PosApp软件里密密麻麻的参数,不少工程师会感到无从下手。作为业内公认的高精度测试设备&a…...
CLAP-htsat-fused方言识别效果:中国8大方言区测试
CLAP-htsat-fused方言识别效果:中国8大方言区测试 1. 方言识别的技术挑战 方言识别一直是语音处理领域的难题。不同方言之间不仅词汇差异大,更重要的是声调、音韵、节奏等声学特征的巨大差异。传统语音识别模型在处理方言时往往表现不佳,主…...
NaViL-9B多场景落地:物流运单图像识别+地址结构化+异常标记
NaViL-9B多场景落地:物流运单图像识别地址结构化异常标记 1. 物流行业的AI变革机遇 现代物流行业每天处理数以亿计的运单,传统人工处理方式面临三大挑战: 效率瓶颈:人工录入一张运单平均耗时30秒,高峰期处理能力不足…...
推荐6款AI论文降重工具,智能改写提升原创度,减少重复率。
开头总结工具对比(技能4) �� 根据实际使用案例分析,从处理效率、降重能力和核心功能三个关键指标对六款主流AI论文辅助平台进行横向评测,结果显示各平台在文本处理速度、重复率降低幅度及特色功能方面存在显…...
1985-2025年全国省/市/区县土地利用分类面积及占比统计数据
数据介绍 全国土地利用分类面积统计数据(1985-2025) 数据简介 本数据集基于1985-2025年30米分辨率土地利用分类数据,结合行政区划边界,提供全国省、市、县三级行政单元的土地利用分类面积及占比统计,为土地利用变化…...
WPS样式与题注的隐藏用法:这样设置,让你的技术文档像专业手册一样清晰
WPS样式与题注的隐藏用法:这样设置,让你的技术文档像专业手册一样清晰 在技术文档撰写领域,格式混乱往往是内容质量的第一杀手。想象一下这样的场景:当你需要修改某个章节标题时,所有交叉引用的图表编号都需要手动更新…...
SEO从业者常见的赚钱误区有哪些
SEO从业者常见的赚钱误区有哪些 在互联网行业,搜索引擎优化(SEO)是一个极具潜力的领域,尤其是对于那些希望通过网站获取流量和收入的从业者来说。尽管SEO有许多成功的案例,但也有许多从业者在赚钱的道路上遇到了一些误…...
reids-cluster部署
准备六台主机,地址如下: 10.0.0.101 10.0.0.102 10.0.0.103 10.0.0.104 10.0.0.105 10.0.0.106 一、每台节点配置 Redis (101~106)修改 redis.conf,添加或修改以下参数:vim /etc/redis/redis.conf # 1. 允许所有网络接口 bind …...
SAP-MM 采购申请审批策略:从特征定义到策略配置的实战指南
1. SAP-MM采购申请审批策略入门指南 第一次接触SAP-MM模块的采购申请审批配置时,我被那些专业术语绕得头晕。但真正理解后才发现,这套审批机制就像公司里的请假流程——不同级别、不同类型的请假需要不同领导审批。采购申请也是如此,金额大小…...
C++27原子智能降级策略(Auto-Degrade Atomic Pattern):当缓存行竞争超阈值时自动切换为lock-free队列——工业级源码级实现
第一章:C27原子智能降级策略的演进动因与设计哲学C27将首次引入原子智能降级(Atomic Intelligent Fallback)机制,其核心动因源于现代异构计算环境中硬件原子指令集碎片化加剧、内存模型语义边界模糊化,以及开发者在可移…...
