firewalld(2)安装、配置文件、规则查询
安装firewalld
我使用的操作系统是debian 12,并没有安装firewalld。



firewalld配置文件
默认和回退配置
/usr/lib/firewalld
目录包含了Firewalld提供的默认和回退配置,这些配置是关于ICMP类型(icmptypes)、服务(services)和区域(zones)的。这些文件是随着firewalld包一起安装的,并且通常不应该被修改,因为当firewalld包更新时,这些更改可能会丢失。
如果你需要添加额外的ICMP类型、服务或区域,你可以通过安装额外的包或者在这个目录下创建新的文件来实现。
系统特定配置
/etc/firewalld
目录用于存储系统或用户特定的配置。这些配置可能由系统管理员创建,或者通过Firewalld的配置界面进行定制,也可能是手动创建的。这些文件会覆盖默认配置文件中的设置。
手动更改预定义配置
如果你想要手动更改预定义的ICMP类型、区域或服务的设置,你应该从默认配置目录(/usr/lib/firewalld
)复制相应的文件到系统配置目录(/etc/firewalld
)的相应位置,并进行相应的修改。
默认配置和firewalld.conf
如果/etc/firewalld
目录不存在,或者该目录下没有任何配置,那么Firewalld将使用默认配置,并且对于firewalld.conf
文件(它通常位于/etc/firewalld/
目录下),也将使用默认设置。
Runtime 和Permanent配置
运行时配置(Runtime Configuration)
- 运行时配置是实际生效的配置,它直接应用于内核中的防火墙。
- 当Firewalld服务启动时,它会加载永久配置并将其作为当前的运行时配置。
- 对运行时配置所做的更改不会自动保存到永久配置中。
- 如果Firewalld服务停止,运行时配置将会丢失。
- 通过执行
firewalld
服务的重新加载(reload)操作,会将永久配置重新加载为新的运行时配置。在重新加载后,之前更改的策略也会被恢复。
永久配置(Permanent Configuration)
- 永久配置存储在配置文件中,每次系统启动或Firewalld服务重新加载/重启时,它都会被加载并成为新的运行时配置。
- 永久配置文件通常位于
/etc/firewalld/
目录下
firewall-cmd --permanent [RULE]
firewall-cmd --reload
运行时(runtime):修改规则马上生效,但是临时生效
持久配置(permanent): 修改后需要重载才会生效
注意:一旦使用了--permanent会将配置写入到/etc/firewalld/{services,zones}/*.xml对应的文件中,配置完成后一定要reload,否则只能待防火墙重启后这些配置才能生效。
从运行时迁移到永久(Runtime to Permanent)
- 一旦在运行时配置中完成了所需的防火墙设置并且它正在正常工作,可以将这些更改从运行时迁移到永久配置中,以确保在系统重启或Firewalld服务重新加载/重启后,这些更改仍然生效。
- 可以使用
firewall-config
(图形界面工具)或firewall-cmd
(命令行工具)来执行此操作。
firewall-cmd --runtime-to-permanent
注意,此命令可能需要与--reload选项一起使用,以确保所有更改都立即生效并且不丢失任何状态信息。
如果迁移后的防火墙设置不工作,可以通过简单地重新加载或重启Firewalld服务来重新应用有效的永久配置。
注意事项
- 在对防火墙配置进行更改时,建议先在运行时配置中进行测试,以确保更改不会对系统的正常运行造成负面影响。
- 一旦对运行时配置确认无误,再将其迁移到永久配置中。
- 在执行任何更改之前,最好备份现有的配置文件,以防万一需要回滚更改。
firewalld.conf配置文件
root@debian:~# cat /etc/firewalld/firewalld.conf
# firewalld config file# default zone
# The default zone used if an empty zone string is used.
# Default: public
DefaultZone=public
#这定义了默认的防火墙区域。当一个网络接口或服务没有被明确指定到一个特定的区域时,它将使用这个默认区域。在这个例子中,默认区域是 public# Clean up on exit
# If set to no or false the firewall configuration will not get cleaned up
# on exit or stop of firewalld.
# Default: yes
CleanupOnExit=yes
#当 firewalld 退出或停止时,这个选项决定了是否要清理防火墙配置。设置为 yes 表示在退出时会清理配置,而 no 或 false 则表示不会清理。# Clean up kernel modules on exit
# If set to yes or true the firewall related kernel modules will be
# unloaded on exit or stop of firewalld. This might attempt to unload
# modules not originally loaded by firewalld.
# Default: no
CleanupModulesOnExit=no
#这个选项决定了在 firewalld 退出或停止时是否卸载与防火墙相关的内核模块。
设置为 yes 或 true 意味着将尝试卸载这些模块,但请注意,这可能会尝试卸载不是由 firewalld 最初加载的模块。
默认情况下,这个选项是关闭的(no),以避免意外卸载其他服务或功能所需的模块。# Lockdown
# If set to enabled, firewall changes with the D-Bus interface will be limited
# to applications that are listed in the lockdown whitelist.
# The lockdown whitelist file is lockdown-whitelist.xml
# Default: no
Lockdown=no
#如果启用(设置为 enabled),那么通过 D-Bus 接口进行的防火墙更改将仅限于在锁定白名单(由 lockdown-whitelist.xml 文件定义)中列出的应用程序。这增加了安全性,但可能会限制某些应用程序的功能。# IPv6_rpfilter
# Performs a reverse path filter test on a packet for IPv6. If a reply to the
# packet would be sent via the same interface that the packet arrived on, the
# packet will match and be accepted, otherwise dropped.
# The rp_filter for IPv4 is controlled using sysctl.
# Note: This feature has a performance impact. See man page FIREWALLD.CONF(5)
# for details.
# Default: yes
IPv6_rpfilter=yes
#这启用了 IPv6 的反向路径过滤测试。当数据包的回复将通过相同的接口发送(即数据包到达的接口)时,数据包将被接受,否则将被丢弃。这有助于防止某些类型的 IP 欺骗攻击。# IndividualCalls
# Do not use combined -restore calls, but individual calls. This increases the
# time that is needed to apply changes and to start the daemon, but is good for
# debugging.
# Default: no
IndividualCalls=no
#这个选项决定了 firewalld 是否应该使用单独的调用而不是组合的 -restore 调用来应用更改或启动守护进程。设置为 yes 会增加应用更改和启动守护进程所需的时间,但有助于调试。# LogDenied
# Add logging rules right before reject and drop rules in the INPUT, FORWARD
# and OUTPUT chains for the default rules and also final reject and drop rules
# in zones. Possible values are: all, unicast, broadcast, multicast and off.
# Default: off
LogDenied=off
#这个选项决定了是否应为默认规则和区域中的最终拒绝和丢弃规则在 INPUT、FORWARD 和 OUTPUT 链中添加日志记录规则。可能的值包括 all(记录所有被拒绝的数据包)、unicast(仅记录单播被拒绝的数据包)、broadcast(仅记录广播被拒绝的数据包)、multicast(仅记录多播被拒绝的数据包)和 off(不记录)。# FirewallBackend
# Selects the firewall backend implementation.
# Choices are:
# - nftables (default)
# - iptables (iptables, ip6tables, ebtables and ipset)
# Note: The iptables backend is deprecated. It will be removed in a future
# release.
FirewallBackend=nftables
#这个选项决定了 firewalld 使用的后端实现。目前有两个选择:nftables(默认)和 iptables(包括 iptables, ip6tables, ebtables 和 ipset)。注意,iptables 后端已被弃用,并将在未来的版本中移除。在大多数情况下,nftables 是更好的选择,因为它提供了更强大和灵活的功能集。# FlushAllOnReload
# Flush all runtime rules on a reload. In previous releases some runtime
# configuration was retained during a reload, namely; interface to zone
# assignment, and direct rules. This was confusing to users. To get the old
# behavior set this to "no".
# Default: yes
FlushAllOnReload=yes
#这个选项决定了在重新加载 firewalld 配置时是否要清除所有运行时规则。在以前的版本中,一些运行时配置(如接口到区域的分配和直接规则)在重新加载时会被保留,这可能会导致用户混淆。
设置为 yes(默认)意味着在重新加载时将清除所有运行时规则,从而获得更清晰的配置状态。# RFC3964_IPv4
# As per RFC 3964, filter IPv6 traffic with 6to4 destination addresses that
# correspond to IPv4 addresses that should not be routed over the public
# internet.
# Defaults to "yes".
RFC3964_IPv4=yes
#这个选项决定是否根据 RFC 3964 过滤具有 6to4 目标地址的 IPv6 流量,这些地址对应于不应通过公共互联网路由的 IPv4 地址。
设置为 yes(默认)意味着将执行这种过滤,以提高安全性。
firewalld配置命令
只有firewalld服务启动了,才能使用相关工具:
firewall-config(图形界面)
firewall-cmd
这里我们主要介绍命令行方式的配置
再次回顾一下,friewalld的配置有两种状态:
运行时(runtime
):修改规则马上生效,但是临时生效
持久配置(permanent
): 修改后需要重载才会生效
firewall-cmd --permanent [RULE]
firewall-cmd --reload
fmrewall-cmd常用查询参数
firewall-cmd--permanent --配置写入到配置文件,否则临时马上生效--reload --重载配置文件,永久生效--get-default-zone --获取默认区域--get-zones --获取所有可用的区域--get-active-zones --获取当前激活(活跃)的区域--list-services --显示指定区域内允许访问的所有服务--list-ports --显示指定区域内允许访问的所有端口号--zone=public --query-port=22/tcp --查询指定端口--list-all --列出激活使用的区域的配置--list-all --zone=work --查看区域配置信息--list-all-zones --列出所有区域的配置--get-zone-of-interface= --获取指定接口所在的区域--list-icmp-blocks --显示指定区域内拒绝访问的所有ICMP类型--list-protocols --列出在指定区域中允许通过的协议--list-sources --查询放通IP段--get-target --获取区域中的默认target--get-services --查看所有服务

查看zone信息

public:这是zone的名称,public zone是 firewalld 中的一个默认zone。target: default:这定义了当流量不符合任何其他规则时如何处理它。default 通常表示使用zone的默认目标(可能是 ACCEPT、DROP、REJECT 等),但这取决于 firewalld 的配置和版本。icmp-block-inversion: no:这表示ICMP的阻塞规则不是反转的。如果设置为 yes,那么未明确允许的ICMP类型将被阻塞,而不是未明确阻塞的ICMP类型被允许。interfaces: 这里应该列出与该zone关联的网络接口名称。sources: 这里应该列出允许或拒绝访问的源IP地址或网络。services: dhcpv6-client ssh:这定义了允许通过此zone的服务,包括DHCPv6客户端和SSH。ports, protocols: 这些字段用于定义允许通过此zone的特定端口或协议。forward: yes:这表示允许通过此zone的数据包转发。masquerade: 这个选项用于控制是否启用IP伪装(NAT),如果允许,它将允许 IP 转发,它可以让你的计算机作为一个路由器forward-ports, source-ports: 这些字段用于定义端口转发规则。icmp-blocks: 这里应该列出要阻塞的ICMP消息类型。rich rules: 富规则,即更细致、更详细的防火墙规则策略,它的优先级在所有的防火墙策略中也是最高的。
firewalld应急模式
打开应急模式可切断全部网络通信来应对网络攻击,而不用像之前那样通过物理拔除网线来进行断网操作,防止了系统在多网口环境中一次性插拔所有网线可能带来的混乱以及由此引发的系统恢复后延续问题。
–panic-on 打开应急模式(切断全部流量)
firewall-cmd --panic-on 开启应急模式,阻断所有网络连接–panic-off 关闭应急模式
firewall-cmd --panic-off 关闭应急模式–query-panic 查询应急模式状态
firewall-cmd --query-panic 查看应急模式的状态
相关文章:

firewalld(2)安装、配置文件、规则查询
安装firewalld 我使用的操作系统是debian 12,并没有安装firewalld。 通过apt install firewalld安装firewalld firewalld 本身是一个服务(firewalld.service),可以通过 systemctl 进行启动、停止和重启,而iptables 本身并不是一个…...

施耐德全新EtherCAT运动控制器M310介绍
在制造业的蓬勃发展下,高性能运动控制器成为提升生产效率、保障产品质量的关键设备之一。M310是施耐德电气新一代高性能运动控制器,它基于Intel X86硬件平台和Codesys V3.5 SP19软件平台开发,支持EtherCAT总线,拥有强大算力、高易…...

Springboot Mybatis 多数据源配置以及使用
在Spring Boot中配置MyBatis的多数据源是一个常见需求,尤其是在需要连接多个数据库时,下面是详细的步骤指南。 引入依赖 首先,在你的pom.xml文件中添加Spring Boot、MyBatis和数据库连接的相关依赖。例如,如果你使用的是MySQL数…...

Android启动时间分析
在Android启动过程中,“NHLOS” 和 “LK” 是两个与启动时间相关的术语,它们分别指的是: 各阶段时间 I Minidump: Enabled with max number of regions 200 I KPI : Bootloader start count = 59264 I KPI : Bootloader end count = 101746 I KPI : Boo…...

智能洗车管理系统设计
智能洗车管理系统设计的核心在于整合先进的信息技术与自动化设备,以提升洗车服务的效率、降低成本并增强客户体验。以下是一个概括性的设计框架: 1. 系统需求分析 用户需求:了解车主对于快速、便捷、高质量洗车服务的需求。业务需求…...

vue3弹窗usehook
说明 个人记录保存。 import {ref} from "vue";export default function useDialog(opts) {const visible ref(false)const loading ref(false)const open (v) > {visible.value truetypeof opts.onOpen "function" && opts.onOpen(v)}c…...

上帝之眼(BEVSee):多相机间无需标定,将各自目标统一到同一坐标系下(代码开源,提供数据集)
Abstract 我们解决了一个新的问题,即在鸟瞰视角(BEV)中无需预先给定相机校准的多视角相机和目标注册问题。这将多视角目标注册问题提升到一个新的无需校准的阶段,从而极大地缓解了许多实际应用中的限制。然而,这是一个…...

imagesc函数 纵坐标翻转 colormap “set” “jet“
纵坐标默认上小下大 翻转: 在Matlab中,使用imagesc函数绘制的图像的纵坐标默认是从上到下递增的,即下面的值较大,上面的值较小。如果想要翻转纵坐标,使之从上到下递增,可以通过设置坐标轴的YDir属性为’n…...

Postman接口测试工具的原理及应用详解(二)
本系列文章简介: 在当今软件开发的世界中,接口测试作为保证软件质量的重要一环,其重要性不言而喻。随着前后端分离开发模式的普及,接口测试已成为连接前后端开发的桥梁,确保前后端之间的数据交互准确无误。在这样的背景下,Postman作为一款功能强大、易于使用的接口测试工…...

IPython脚本加载秘籍:探索脚本魔法的艺术
IPython脚本加载秘籍:探索脚本魔法的艺术 IPython,这个强大的交互式Python解释器,不仅提供了丰富的交互式编程功能,还允许用户加载和运行Python脚本。这一功能极大地扩展了IPython的实用性,使得用户可以在IPython环境…...

使用shell脚本进行clang-tidy静态代码分析
文章目录 0. 引言1. 完整检测脚本代码 clang-tidy-check.sh1.1 流程图1.2 脚本功能概述 2. 该脚本优缺点 0. 引言 clang-tidy 是基于 Clang 的工具,提供了丰富的代码检查功能,可以根据用户配置文件进行定制化的检查和规则定义。 之前的文章《使用 Clang…...

PHP和phpSpider:如何应对网站变动导致的数据爬取失败?
php和phpspider:如何应对网站变动导致的数据爬取失败? 导语: 网络爬虫是一种自动化程序,用于从网站上获取数据并进行处理。PHP是一种广泛使用的编程语言,而phpSpider是一个基于PHP的开源网络爬虫框架。然而࿰…...

聊聊etsy平台,一个年入百万的项目
聊聊etsy平台,一个年入百万的项目 什么是etsy,这是怎样一个平台,怎样盈利的?相信现在大家满脑子都是这些疑问。 这个平台也是无意间一个学员提到的,据说他朋友靠这个平台年赚好几百万。苦于门槛太高,他也做不了。今天…...

SyntaxError: Unexpected token ‘??=‘
前端运行报错: globalThis.GLOBAL_NX_VERSION ?? GLOBAL_NX_VERSION;^^^SyntaxError: Unexpected token ??解决: 检查node版本 node -v当前使用的是14.21.3的版本,切换到一个16.0.0以上的版本即可,推荐使用nvm管理node版本 …...

python如何输出list
直接输出list_a中的元素三种方法: list_a [1,2,3,313,1] 第一种 for i in range(len(list_a)):print(list_a[i]) 1 2 3 313 1 第二种 for i in list_a:print(i) 1 2 3 313 1 第三种,使用enumerate输出list_a方法: for i,j in enum…...

【面试系列】SQL 高频面试题
欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…...

【代码随想录训练营】【Day 66】【图论-3】| 卡码 101-104
【代码随想录训练营】【Day 66】【图论-3】| 卡码 101-104 需强化知识点 103,104 优化思路 题目 101. 孤岛的总面积 此处 area 多余 def dfs(grid, x, y, area):dirs [[0, 1], [0, -1], [1, 0], [-1, 0]]m, n len(grid), len(grid[0])area[0] 1grid[x][y] …...

【面试系列】C#高频面试题
欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…...

AI助力校园安全:EasyCVR视频智能技术在校园欺凌中的应用
一、背景分析 近年来,各地深入开展中小学生欺凌行为治理工作,但有的地方学生欺凌事件仍时有发生,严重损害学生身心健康,引发社会广泛关注。为此,教育部制定了《防范中小学生欺凌专项治理行动工作方案》进一步防范和遏…...

Yolov8可视化界面使用说明,含代码
⭐⭐ YOLOv8改进专栏|包含主干、模块、注意力机制、检测头等前沿创新 ⭐⭐ YOLOv8可视化界面如下 使用需要安装opencv-python、torch、numpy及PySide6(python版本>3.9) pip install PySide6 pip install numpy pip install opencv-python 使用说明 运行下方代码…...

怎么使用MarkDown画矩阵
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 今天写文章需要用到矩阵,记录一下 画矩阵需要用到特殊的语法 (1)画普通矩阵,不带括号的 $$be…...

Kafka入门-基础概念及参数
一、Kafka术语 1. Broker Kafka属于分布式的消息引擎系统,它的主要功能是提供一套完备的消息发布与订阅解决方案。可以为每个业务、每个应用甚至是每类数据都创建专属的主题。 Kafka的服务器端由被称为Broker的服务进程构成,即一个Kafka集群由多个Broke…...

Clickhouse 常见操作
数据查询 从json array string中解析字段 json array string 为json.dumps(array(dict)) select JSONExtractString(row,"Date") as Date from( select arrayJoin(JSONExtractArrayRaw(Remarks)) as row from table x )JSONExtractArrayRaw: 将JsonS…...

Docker使用daocloud镜像加速
之前给大家分享的阿里云的镜像加速,今天再给大家分享一个还可以使用的镜像加速地址daocloud。 经过测试速度还是比较快的。 [rootbogon ~]# cat /etc/docker/daemon.json {"registry-mirrors": ["https://docker.m.daocloud.io"] }[rootbogon…...

flink的窗口
目录 窗口分类 1.按照驱动类型分类 1. 时间窗口(Time window) 2.计数窗口(Count window) 2.按照窗口分配数据的规则分类 窗口API分类 API调用 窗口分配器器: 窗口函数 增量聚合函数: 全窗口函数…...

lodash.js 工具库
lodash 是什么? Lodash是一个流行的JavaScript实用工具库,提供了许多高效、高兼容性的工具函数,能够方便地处理集合、字符串、数值、函数等多种数据类型,大大提高工作效率。 lodash官网 文档参见:Lodash Documentation lodash 在Vue中怎么使用? 1、首先安装 lodash np…...

使用ElementUI组件库
引入ElementUI组件库 1.安装插件 npm i element-ui -S 2.引入组件库 import ElementUI from element-ui; 3.引入全部样式 import element-ui/lib/theme-chalk/index.css; 4.使用 Vue.use(ElementUI); 5.在官网寻找所需样式 饿了么组件官网 我这里以button为例 6.在组件中使用…...

【SkiaSharp绘图14】SKCanvas方法详解(三)URL注释、按顶点绘制、 是否裁切区域之外、旋转、缩放、倾斜、平移、保存/恢复画布
文章目录 SKCanvas方法DrawUrlAnnotation 绘制URL注释DrawVertices 按顶点绘制Flush 立即绘制QuickReject 判断区域是否在裁切区域之外ResetMatrix重置矩阵Restore、RestoreToCountRotateDegrees按角度旋转画布RotateRadians按弧度旋转画布SaveLayer保存并新建图层Scale 缩放画…...

WebDriver API (2)
本文将继续上文对WebDriver API的功能使用进行介绍。 一、浏览器操作 1. 浏览器前进forward与后退back 浏览器前进操作是指导航到前一个页面,在浏览器的历史记录中向前移动一页。 浏览器后退操作是指导航到前一个页面,在浏览器的历史记录中向后移动一…...

GCP FrontendConfig 详解:优化您的云负载均衡
目录 1. 什么是GCP FrontendConfig? 2. FrontendConfig的主要功能 2.1 协议选择 2.2 SSL/TLS配置 2.3 重定向配置 2.4 自定义响应头 3. 配置FrontendConfig 4. FrontendConfig的高级特性 4.1 智能路由 4.2 流量控制 4.3 日志和监控 5. FrontendConfig最佳实践 5.…...