Linux——firewalld防火墙(笔记)

news2025/4/20 22:39:56

目录

一:Firewalld防火墙的概述

(1)firewalld简介

(2)firewalld&iptables的关系

(3)firewalld与iptables service的区别

1. ‌规则管理方式‌

2. ‌默认策略与设计逻辑‌

3. ‌配置文件与持久化‌

4. ‌适用场景与兼容性‌

5. ‌底层实现与扩展性‌

二:Firewalld网络区域

三:Firewalld防火墙firewall——cmd命令设置

1、获取预定义信息

2、区域管理

3、服务管理

4、端口管理

5、两种配置模式


一:Firewalld防火墙的概述

(1)firewalld简介

    它的主要作用为包过滤机制提供匹配规则(或策略),通过各种不同的规则告诉net filter对来自指定源、前往指定目的或具有某些协议特征的数据包采取何种处理方式为了更加方便地组织和管理防火墙。

    firewalld提供了支持网站区域所定义的网络链接以及接口安全等级的动态防火墙管理工具,其设计以‌区域(Zone)‌和‌服务(Service)‌为核心,简化了传统防火墙规则的配置流程。并且拥有两种配置模式:短暂性配置与永久性配置,支持服务或应用程序直接添加防火墙规则接口。

(2)firewalld&iptables的关系

    firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的net filter来实现。他们的作用都是用于维护规则,而真正使用规则干活的是内核的net filter,然而他们的结构以及使用方法并不相同。

    系统提供了图形化的配置工具firewall-config、system-config-firewall,提供命令行客户端firewall-cmd,用于配置firewalld永久性或非永久性运行时间的改变:依次用iptables工具与执行数据包筛选的内核中的Netfilter通信。逻辑如下:

    iptables服务和firewalld都是通过iptables命令与内核netfilter进行交互的。在Euler系统中,我们仍然可以使用iptables命令来管理我们的防火墙。唯一不同的是当我们重启服务器或重启firewalld时,iptables命令管理的规则不会自动加载,反而会被firewalld的规则代替。 

(3)firewalld与iptables service的区别

1. ‌规则管理方式
  • Firewalld
    • 采用动态规则管理,支持运行时修改单条规则,无需重启服务即可生效(临时规则),永久规则需配合 --permanent 参数保存‌。
    • 规则更新时不会中断现有网络连接‌。
  • iptables
    • 规则修改后需全量刷新(iptables-restore 或 service iptables restart),导致现有连接可能中断‌。
    • 所有规则通过链式结构(INPUT/OUTPUT/FORWARD 等)管理,需手动维护规则顺序‌。

2. ‌默认策略与设计逻辑
  • Firewalld
    • 默认拒绝所有流量,需显式开放服务或端口(如 HTTP、SSH)‌。
    • 以‌区域(Zone)‌为核心,根据网络接口或源 IP 自动匹配规则(如 publictrusted),适用于多网络环境切换‌。
  • iptables
    • 默认允许所有流量,需显式拒绝不需要的访问‌。
    • 基于‌接口‌和‌链式规则‌,直接控制具体端口或协议,适合精细化但复杂度高的场景‌。

3. ‌配置文件与持久化
  • Firewalld
    • 配置文件以 XML 格式存储于 /etc/firewalld/,支持自定义服务模板和区域规则‌68。
    • 临时规则与永久规则分离,需通过 --reload 同步配置‌。
  • iptables
    • 规则保存于文本文件 /etc/sysconfig/iptables,直接编辑后需手动加载‌。
    • 所有规则修改需显式保存(service iptables save)才能持久化‌。

4. ‌适用场景与兼容性
  • Firewalld
    • 适合动态网络环境(如频繁切换信任区域)及追求配置便捷性的场景‌。
    • 默认集成于 CentOS/RHEL 7+ 等现代 Linux 发行版‌。
  • iptables
    • 兼容老旧系统(如 CentOS 6 及更早版本),适合需要复杂规则(如深度包检测、自定义链)的场景‌。
    • 与 Firewalld 冲突,二者不可同时启用‌。

5. ‌底层实现与扩展性
  • 共同点
    • 均依赖内核的 Netfilter 框架,实际流量控制由内核模块完成‌。
  • 差异点
    • Firewalld 可通过直接接口(Direct Interface)调用 iptables 语法添加自定义规则‌。
    • iptables 提供更底层的控制,支持 NAT、流量整形等高级功能‌。

二:Firewalld网络区域

    firewalld将所有的网络数据流量划分为多个区域,从而简化防火墙管理。根据数据包的源IP地址或传入网络接口等条件,将数据流量传入相应区域的防火墙规则。对于进入系统的数据包,首先检查的就是其源地址。逻辑如下:

  • 若源地址关联到特定的区域,则执行该区域所制定的规则。
  • 若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所指定的规则。
  • 若网络接口未关联到特定的区域,则使用默认区域并执行该区域所制定的规则。

    默认区域不是单独的区域,而是指向系统上定义的某个其他区域。默认情况下,默认区域是public,但是系统管理员可以更改默认区域。以上匹配规则,按照先后顺序,第一个匹配的规则胜出。

    在每个区域中都可以配置其要打开或者关闭的一系列服务或端口,firewalld的每个预定义的区域都设置了默认打开的服务。预定义区域说明如下:

区域默认策略规则
trusted允许所有的数据包
home拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-clent与dhcpv6-client服务相关,则允许流量
internal

拒绝流入的流量,除非与流出的流量数相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量

work拒绝流入的流量。除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量
public拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量
external拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
dmz拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
block拒绝流入的流量,除非与流出的流量相关
drop拒绝流入的流量,除非与流出的流量相关

三:Firewalld防火墙firewall——cmd命令设置

1、获取预定义信息

    firewal1-cmd 预定义信息主要包括三种:可用的区域、可用的服务以及可用的 ICMP 阻塞类型,具体的查看命令如下所示。
 

[root@localhost ~]# firewall-cmd --get-zones
work drop internal external trusted home dmz public block
[root@localhost ~]# firewall-cmd --get-service
RH-Satellite-6 amanda-client amanda-k5-client baculabacula-client cephceph-mondhcp
dhcpv6 dhcpv6-client dnsdocker-registry dropbox-lansyncfreeipa-ldap
...    ...    //省略部分内容
transmission-clientvdsmvnc-serverwbem-https xmpp-bosh xmpp-client xmpp-local
xmpp-server
[root@localhost ~]# firewall-cmd --get-icmptypes
...    ...    //省略部分内容
timestamp-request

    firewall-cmd --get-icmptypes 命令的执行结果中各种阻塞类型的含义分别如下:

阻塞类型含义
destination-unreachable目的地址不可达
echo-reply应答回应(pong)
parameter-problem参数问题
redirect重新定向
router-advertisement路由器通告
router-solicitation路由器征寻
source-quench源端抑制
time-exceeded超时
timestamp-reply时间戳应答回应
timestamp-request时间戳请求

2、区域管理

    使用firewall-cmd命令可以实现获取和管理区域,为指定区域绑定网络接口等功能。区域管理选项说明如下: 

选项说明
--get-default-zone显示网络连接或接口的默认区域
--set-default-zone=<zone>设置网络连接或接口的默认区域
--get-active-zones显示已激活的所有区域
--get-zone-of-interface=<interface>显示指定接口绑定的区域
--zone=<zone> --add-interface=<interface>为指定接口绑定区域
--zone=<zone> --change-interface=<interface>为指定的区域更改绑定的网络接口
--zone=<zone> --remove-interface=<interface>为指定的区域删除绑定的网络接口
--list-all-zones显示所有区域及其规则
[--zone=<zone>] --list-all显示所有指定区域的所有规则

具体操作如下:

(1)显示当前系统中的默认区域.

[root@localhost ~]# firewall-cmd --get-default-zone
public

(2)显示默认区域的所有规则。
 

[root@localhost ]# firewall-cmd -list-all
public(active)target: default
icmp-block-inversion:no
interfaces:ens160
sources:
services:dhcpv6-client ssh
ports:
protocols:
masquerade:no
forward-ports:
sourceports:
icmp-blocks:rich rules:

(3)显示网络接口 ens160 对应区域。

[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens160
public

(4)将网络接口 ens160 对应区域更改为 internal 区域,

[root@localhost ~]# firewall-cmd --zone=internal --change-interface=ens160
The interface is under control of NetworkManager, setting zone to 'internal'. success
[root@localhost ~]# firewall-cmd --zone=internal --list-interfaces
ens160
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens160
internal

(5)显示所有激活区域.

[root@localhost ~]# firewall-cmd--get-active-zones
internal
interfaces:ens160 

3、服务管理

    为了方便管理,firewalld 预先定义了很多服务,存放在 /usr/lib/firewalld/services/ 目录中,服务通过单个的 XML配置文件来指定。这些配置文件则按以下格式命名:service-name.xml,每个文件对应一项具体的网络服务,如 ssh 服务等。service 配置具有以下优点:

  • 通过服务名字来管理规则更加人性化;
  • 通过服务来组织端口分组的模式更加高效。如果一个服务使用了若干个网络端口,则服务的配置文件就相当于提供了到这些端口的规则管理的批量操作快捷方式。

    下列为firewall-cmd命令区域中服务管理的常用选项:

参数作用
--get-default-zone查访默认的区域名称
--set-default-zone=<区域名称>设置默认的区域,使其永久生效
--get-zones显示可以的区域
--get-services显示预定义的服务
--get-active-zones显示当前正在使用的区域、来源地址和网卡名称
--add-source=将源自此IP或子网的流量导向指定的区域
--remove-source=不再将源自此IP或子网的流量导向这个区域
--add-interface=<网络名称>将源自该网卡的所有流量都导向某个指定区域
--change-interface=<网卡名称>将某个网卡与区域进行关联
--list-all显示当前区域的网卡配置参数、资源、端口以及服务等信息
--list-all-zones显示所有区域的网卡配置参数、资源】端口以及服务等信息
--add-service=<服务名>设置默认区域允许该服务的流量
--add-port=<端口号/协议>设置默认区域允许该端口的流量
--remove-service=<服务号>设置默认区域不再允许该服务的流量
--remove-port=<端口号/协议>设置默认区域不再允许该端口的流量
--reload让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
--panic-on开启应急状态模式
--panic-off关闭应急状态模式

(1)为默认区域设置允许访问的服务。

[root@localhost ~]# firewall-cmd --list-services    //显示默认区域内允许访问的所有服务
dhcpv6-clientssh
[root@localhost ~]# firewall-cmd --add-service=http    //设置默认区域允许访问 http 服务
success
[root@localhost ~]# firewall-cmd --add-service=https    //设置默认区域允许访间 https 服务
success
[root@localhost ~]# firewall-cmd --list-services
dhcpv6-client ssh http https

 (2)为 internal 区域设置允许访问的服务,

[root@localhost ~]# firewall-cmd --zone=internal --add-service=mysql    //设置 internal 区域允许访问 mysq1 服务
success
[root@localhost~]# firewall-cmd --zone=internal--remove-service=samba-client    //设置 internal 区域不允许访问 samba-client 服务
success
[root@localhost ~]# firewall-cmd --zone=internal --list-services    //显示 internal 区域内允许访问的所有服务
ssh mdns dhcpv6-client mysql

4、端口管理

    在进行服务配置时,预定义的网络服务可以使用服务名配置,服务所涉及的端口就会自动打开。但是,对于非预定义的服务只能手动为指定的区域添加端口。例如,执行以下操作即可实现在 internal 区域打开 443/TCP 端口。

[root@localhost ~]# firewall-cmd --zone=internal--add-port=443/tcp
success

    若想实现在 internal 区域禁止 443/TCP 端口访问,可执行以下命令。

root@localhost ~]# firewall-cmd --zone=internal --remove-port=443/tcp
success

5、两种配置模式

    前面提到 firewall-cmd 命令工具有两种配置模式:运行时模式表示当前内存中运行的防火墙配置,在系统或 firewalld 服务重启、停止时配置将失效;永久模式表示重启防火墙或重新加载防火墙时的规则配置,是永久存储在配置文件中的。
firewa11-cmd 命令工具与配置模式相关的选项有三个:

  • --reload:重新加载防火墙规则并保持状态信息,即将永久配置应用为运行时配置。
  • --permanent:带有此选项的命令用于设置永久性规则,这些规则只有在重新启动 firewalld 或重新加载防火墙规则时才会生效:若不带有此选项,表示用于设置运行时规则。
  • --runtime-to-permanent:将当前的运行时配置写入规则配置文件中,使之成为永久性配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2339039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLO拓展-锚框(anchor box)详解

一.锚框&#xff08;anchor box&#xff09;概述 1.1什么是锚框 锚框就是一种进行预测的像素框&#xff0c;通过遍历输入图像上所有可能的像素框&#xff0c;然后选出正确的目标框&#xff0c;并对位置和大小进行调整就可以完成目标检测任务。 对于yolo锚框的建设须基于实际…

kubernetes》》k8s》》Service

Kubernetes 中的 Service 是用于暴露应用服务的核心抽象&#xff0c;为 Pod 提供稳定的访问入口、负载均衡和服务发现机制。Service在Kubernetes中代表了一组Pod的逻辑集合&#xff0c;通过创建一个Service&#xff0c;可以为一组具有相同功能的容器应用提供一个统一的入口地址…

已注册商标如何防止被不使用撤销!

近年来已注册商标被撤销越来越多&#xff0c;不乏著名企业或机构&#xff0c;普推知产商标老杨看到前一阵看到央视和百度等申请的商标也被申请撤销&#xff0c;连续三年不使用撤销也是正常的商标流程。 已注册商标被撤销普推老杨看到案例主要是集中在一些早期申请注册的好记的商…

管理与维护samba服务器

允许 Linux、Unix 系统与 Windows 系统之间进行文件和打印机共享&#xff0c;使得不同操作系统的用户能够方便地访问和共享资源&#xff0c;就像在同一局域网中的 Windows 计算机之间共享资源一样。 server01安装Samba服务器 [rootserver ~]# rpm -qa | grep samba [rootserver…

EAGLE代码研读+模型复现

要对代码下手了&#xff0c;加油(ง •_•)ง 作者在他们自己的设备上展现了推理的评估结果&#xff0c;受第三方评估认证&#xff0c;EAGLE为目前最快的投机方法&#xff08;虽然加速度是评估投机解码方法的主要指标&#xff0c;但其他点也值得关注。比如PLD和Lookahead无需额…

2024期刊综述论文 Knowledge Graphs and Semantic Web Tools in Cyber Threat Intelligence

发表在期刊Journal of Cybersecurity and Privacy上&#xff0c;专门讲知识图谱技术和语义Web工具在网络威胁情报领域的作用&#xff0c;还把本体和知识图谱放在相同的地位上讨论。 此处可以明确一点&#xff1a;本体和知识图谱都可以用于网络威胁情报的应用&#xff0c;当然也…

linux socket编程之udp(实现客户端和服务端消息的发送和接收)

目录 一.创建socket套接字(服务器端) 二.bind将prot与端口号进行绑定(服务器端) 2.1填充sockaddr_in结构 2.2bind绑定端口 三.直接通信(服务器端) 3.1接收客户端发送的消息 3.2给客户端发送消息 四.客户端通信 4.1创建socket套接字 4.2客户端bind问题 4.3直接通信即可…

计算机网络 实验四 静态路由的配置与应用

一、实验目的 掌握路由器基础工作原理及静态路由协议机制熟练使用华为ENSP网络模拟器进行拓扑设计与设备配置建立系统化的网络故障排除思维通过实践验证静态路由在中小型网络中的部署优势 二、实验环境 硬件配置&#xff1a;标准PC终端软件工具&#xff1a;华为企业网络模拟…

[每周一更]-(第140期):sync.Pool 使用详解:性能优化的利器

文章目录 一、什么是 sync.Pool&#xff1f;二、sync.Pool 的基本作用三、sync.Pool 的主要方法四、sync.Pool 的内部工作原理五、sync.Pool 适用场景六、使用示例示例 1&#xff1a;基本使用输出示例&#xff1a;示例 2&#xff1a;并发使用 七、一个基于 sync.Pool 的 **Benc…

3.QT-信号和槽|自定义槽函数|自定义信号}自定义的语法}带参数的信号和槽(C++)

信号和槽 Linux信号 Signal 系统内部的通知机制. 进程间通信的方式. 信号源&#xff1a;谁发的信号.信号的类型&#xff1a;哪种类别的信号信号的处理方式&#xff1a;注册信号处理函数&#xff0c;在信号被触发的时候自动调用执行. Qt中的信号和Linux中的信号&#xff0c;虽…

健康养生之道

在快节奏的现代生活中&#xff0c;健康养生不再是中老年人的专属话题&#xff0c;越来越多的人开始意识到&#xff0c;合理的养生方式是保持良好身体状态和生活质量的关键。​ 饮食养生是健康的基石。遵循 “食物多样、谷类为主” 的原则&#xff0c;保证每天摄入足够的蔬菜、…

Spark-SQL核心编程3

数据加载与保存 通用方式&#xff1a; SparkSQL 提供了通用的保存数据和数据加载的方式。这里的通用指的是使用相同的API&#xff0c;根据不同的参数读取和保存不同格式的数据&#xff0c;SparkSQL 默认读取和保存的文件格式为parquet 数据加载方法&#xff1a; spark.read.lo…

TVM计算图分割--Collage

1 背景 为满足高效部署的需要&#xff0c;整合大量优化的tensor代数库和运行时做为后端成为必要之举。现在的深度学习后端可以分为两类&#xff1a;1&#xff09;算子库(operator kernel libraries)&#xff0c;为每个DL算子单独提供高效地低阶kernel实现。这些库一般也支持算…

MCGS昆仑通太屏笔记

4.3寸&#xff1a;4013ef/e1 7寸&#xff1a;7032kw 特点&#xff1a; 如果是使用组态屏进行调试使用&#xff0c;选择com1如果是实际项目使用&#xff0c;选择com2 操作步骤&#xff1a; 先创建设备窗口&#xff0c;再创建用户界面 在设备窗口界面&#xff0c;依次设置如下…

服务治理-搭建Nacos注册中心

运行nacos.sql文件。 将准备好的nacos目录和nacos.tar包上传。 192.168.59.101是我的虚拟机ip&#xff0c;8848是我们设置的访问端口号。

网络--socket编程(2)

Socket 编程 TCP TCP 网络程序 和刚才 UDP 类似 . 实现一个简单的英译汉的功能 TCP socket API 详解 下面介绍程序中用到的 socket API, 这些函数都在 sys/socket.h 中。 socket(): • socket() 打开一个网络通讯端口 , 如果成功的话 , 就像 open() 一样返回一个…

结合建筑业务讲述TOGAF标准处理哪种架构

TOGAF标准处理哪种架构 内容介绍业务架构业务策略&#xff0c;治理&#xff0c;组织和关键业务流程数据架构组织的逻辑和物理数据资产以及数据管理资源的结构应用架构待部署的各个应用程序&#xff0c;它们之间的交互以及与组织核心业务流程的关系的蓝图技术架构支持业务&#…

C++入门小馆: 深入string类(一)

嘿&#xff0c;各位技术潮人&#xff01;好久不见甚是想念。生活就像一场奇妙冒险&#xff0c;而编程就是那把超酷的万能钥匙。此刻&#xff0c;阳光洒在键盘上&#xff0c;灵感在指尖跳跃&#xff0c;让我们抛开一切束缚&#xff0c;给平淡日子加点料&#xff0c;注入满满的pa…

NHANES指标推荐:WWI

文章题目&#xff1a;Weight-adjusted waist circumference index with hepatic steatosis and fibrosis in adult females: a cross-sectional, nationally representative study (NHANES 2017-2020) DOI&#xff1a;10.1186/s12876-025-03706-4 中文标题&#xff1a;体重调整…

2025.04.18|【Map】地图绘图技巧全解

Add circles Add circles on a Leaflet map Change tile Several background tiles are offered by leaflet. Learn how to load them, and check the possibilities. 文章目录 Add circlesChange tile 2025.04.18【Map】| 地图绘图技巧全解1. 准备工作2. 地理区域着色图&…