[Linux] Linux防火墙之firewalld

news2024/11/18 2:57:06

一、firewalld的简介

firewalld防火墙是Centos7系统默认的防火墙管理工具。 它取代了以前的iptables防火墙。 它也工作在网络层,属于数据包过滤防火墙。

firewalld和iptables是用来管理防火墙的工具,用来定义防火墙的各种规则功能,内部结构指向netfilter网络过滤子系统(属于内核态)来实现数据包过滤防火墙功能。

firewalld提供动态防火墙管理工具,支持网络区域中定义的网络链接和接口的安全级别。 它支持Ipv4,Ipv6防火墙设置和以太网网桥(可能被一些高级服务如云计算使用),并具有2种配置模式:运行时配置和持久配置。

二、iptables与firewalld的联系与区别

联系:

firewalld提供daemon和服务以及命令行和图形界面配置工具。 它只替换Iptv服务的一部分。 底层将继续使用iptv作为防火墙规则管理的入口点。 firewalld本身没有防火墙的功能,但需要通过内核的netfilter来实现。firewalld意味着它与iptables相同。 它们的作用是维护规则,而规则的实际使用是内核的netfilter,只不过firewalld和iptables有不同的结构和用途。

区别一:

iptables主要基于用于设置规则以确定网络安全性的接口。

firewalld以地域为基础,根据不同地域设置不同的规则,保证网络安全。此设置类似于硬件防火墙设置。

区别二:

iptables 在 /etc/sysconfig/iptables 中储存配置,
firewalld 将配置储存在 /etc/firewalld/(优先加载)和 /usr/lib/firewalld/(默认的配置文件)中的各种 XML 文件里。

区别三:

使用 iptables 每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables 里读取所有新的规则
使用 firewalld 却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此firewalld 可以在运行时间内,改变设置而不丢失
现行连接。

三、firewalld区域

3.1 firewalld区域的概念

为了简化管理,firewalld防火墙将所有网络流量拆分为多个区域(zone)。然后,根据数据包的源IP地址或传入网络接口等条件,将流量传递到相应的区域。每个区域都定义了自己打开或关闭的端口和服务列表。

这些区域配置文件存在于/usr/lib/firewalld/zones目录中,还有一个目录/etc/firewalld/zones。firewalld使用规则时,会首先到/etc/firewalld/目录中查找,如果可以找到就直接使用,找不到会继续到/usr/lib/firewalld/目录中查找。

3.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.3 firewalld区域介绍和区域优先级

firewalld区域介绍

        最后一个区域的安全程度取决于该区域的管理员已设置的规则。

        该地区就像一个安全门的主机。 每个区域都有不同级别限制的规则,只允许符合规则的流量通过。

        根据网络的大小,可以使用一个或多个区域,但任何活动区域必须至少与源地址或接口相关联。

        默认情况下,公共区域是默认区域,包括所有接口(网卡)。

firewalld数据处理流程

检查数据来源的源地址:

        如果源地址与特定区域相关联,则执行该区域中指定的规则

        如果源地址未与特定区域相关联,则使用传入网络接口的区域,并执行在该区域中指定的规则。

        如果网络接口未与特定区域关联,则使用默认区域并执行该区域中指定的规则。

区域优先级:源地址绑定的区域 > 网卡绑定的区域 > 默认区域(只要没有绑定过指定区域的网卡,都适用于于默认区域的规则。默认区域可自定义,不修改则为public)

3.4  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命令行使用

   4.1 默认区域的查看与设置

不指定区域时,则对默认区域进行操作(默认区域可自定义,不修改则为public)

格式:

firewall-cmd:

--get-default-zone :显示当前默认区域
--set-default-zone=<zone> :设置默认区域

[root@IKUN3 ~]#firewall-cmd --get-default-zone
public
[root@IKUN3 ~]#firewall-cmd --set-default-zone=work
success
[root@IKUN3 ~]#firewall-cmd --get-default-zone
work
[root@IKUN3 ~]#

4.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> :为指定的区域删除绑定的网络接口

[root@CXK3 ~]#firewall-cmd --get-zones #获取全部的区域
 
[root@CXK3~]#firewall-cmd --get-active-zones #显示当前工作的区域信息
 
[root@CXK3 ~]#firewall-cmd  --get-zone-of-interface=ens33 #显示指定接口的区域
 
[root@CXK3 ~]#firewall-cmd  --zone=home --add-interface=ens33  #为指定的区域增加指定的网卡接口
 
[root@CXK3 ~]#firewall-cmd  --get-zone-of-interface=ens33
 
[root@CXK3 ~]#firewall-cmd  --zone=work --add-interface=ens33
 
[root@CXK3 ~]#firewall-cmd  --get-zone-of-interface=ens33
 
[root@CXK3 ~]#firewall-cmd  --zone=home --change-interface=ens33  #为接口更改指定的区域
 
 
[root@CXK3 ~]#firewall-cmd  --get-zone-of-interface=ens33
 
[root@CXK3 ~]#firewall-cmd  --zone=home --remove-interface=ens33 #删除指定区域的接口
 
 
[root@CXK3 ~]#firewall-cmd  --get-zone-of-interface=ens33  #恢复成默认状态

4.3 对源地址进行操作 

格式:

firewall-cmd:

--add-source=xxxxxx        --zone=<zone>    //增加源地址指定区域

--remove-source=xxxxxx        --zone=<zone>   //删除源地址指定区域

[root@CXK3 ~]#firewall-cmd --add-source=2.2.2.2  --zone=home #增加源地址指定区域
 
[root@CXK3 ~]#firewall-cmd --get-active-zone
 
[root@CXK3 ~]#firewall-cmd --remove-source=2.2.2.2  --zone=home  #删除源地址指定的区域
 
[root@CXK3 ~]#firewall-cmd --get-active-zone

4.4 查看指定区域的所有规则 

不指定区域时,则对默认区域进行操作(默认区域可自定义,不修改则为public)

firewall-cmd --list-all-zones:显示所有区域及其规则

firewall-cmd --list-all : 不指定区域时,查看的是默认区域

firewall-cmd --list-all --zone=work:显示work区域的所有规则

firewall-cmd  --list-all-zones 

[root@CXK3  ~]#firewall-cmd  --list-all #查看默认区域的所有规则
 
	
[root@CXK3  ~]#firewall-cmd  --list-all --zone=work #指定区域为work的配置

 

 4.5 服务管理

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

firewall-cmd --list-service  #指定的区域显示可用服务

2. 添加服务 

[root@CXK3 ~]#firewall-cmd  --add-service=http  #单个服务的添加
 
[root@CXK3 ~]#firewall-cmd  --add-service={ftp,https}  #多个服务的添加

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

 

指定区域添加 :

[root@CXK3 ~]#firewall-cmd  --add-service={ftp,https}   --zone=work
 
[root@CXK3 ~]#firewall-cmd --list-service --zone=work

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

firewall-cmd --list-all --zone=public

4. 删除public 区域的http服务 

firewall-cmd --remove-service=http --zone=public
firewall-cmd --list-service --zone=public

4.6 端口管理

1. 允许TCP的443端口到internal 区域

firewall-cmd --zone=internal --add-port=443/tcp
firewall-cmd --list-all --zone=internal

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

firewall-cmd --zone=internal --remove-port=443/tcp

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

firewall-cmd --add-port=2048-2050/udp
firewall-cmd --list-all

4.7 永久保存设置 

方式一:

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

firewall-cmd --add-service=http --add-service=https --permanent  #永久添加,但是不会实时生效需要firewalld重载才能进行生效
firewall-cmd --reload	
firewall-cmd --list-all	

 方式二:

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

root@CXK3 ~]#firewall-cmd  --add-service={ftp,https} 
 
[root@CXK3 ~]#firewall-cmd   --list-service
 
[root@CXK3 ~]#firewall-cmd  --runtime-to-permanent
 
[root@CXK3 ~]#systemctl restart firewalld
[root@CXK3 ~]#firewall-cmd   --list-service

 

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

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

相关文章

深入解析Spring Boot中的注解@PathVariable、@RequestParam、@RequestBody的正确使用

文章目录 1. 引言2. PathVariable&#xff1a;处理路径变量2.1 简介2.2 使用示例 3. RequestParam&#xff1a;处理请求参数3.1 简介3.2 使用示例 4. RequestBody&#xff1a;处理请求体4.1 简介4.2 使用示例 5. 多个注解的组合使用6. 参数绑定的原理6.1 HandlerMethodArgument…

使用条件格式突出显示单元格数据-sdk

使用条件格式突出显示单元格数据 2023 年 12 月 6 日 根据数据值将视觉提示应用于特定单元格、行或列&#xff0c;从而更轻松地识别模式和趋势。 网格中的条件格式允许用户根据单元格或范围包含的数据将视觉样式应用于单元格或范围。它通过以数据驱动的方式突出显示关键值、异常…

nodejs微信小程序+python+PHP在线学习平台设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

结构体相关知识

结构体的概念 结构体说直白点就是自定义类型&#xff0c;c语言有很多内置的类型比如char&#xff0c;int&#xff0c;double等&#xff0c;而结构体就是我们自己命名的一种类型。 区别在于内置类型大多都是单一描述的类型&#xff0c;比如 char studentnamewangwu,只能描述一…

使用 HTML 地标角色提高可访问性

请务必确保所有用户都可以访问您的网站&#xff0c;包括使用屏幕阅读器等辅助技术的用户。 一种方法是使用 ARIA 地标角色来帮助屏幕阅读器用户轻松浏览您的网站。使用地标角色还有其他好处&#xff0c;例如改进 HTML 的语义并更轻松地设置网站样式。在这篇博文中&#xff0c;我…

小米手机锁屏时间设置为永不休眠_手机不息屏_保持亮屏

环境&#xff1a;打开手机自带的锁屏时间设置发现没有 永不息屏的选项 原因&#xff1a;采用了三星OLED屏幕&#xff0c;所以根据OLED屏幕特性&#xff0c;这个是为了防止烧屏而特意设计的。非OLED机型支持设置“永不” 解决方案1&#xff1a;原生系统是支持永不锁屏的&#…

Java程序编写(上)

HelloWorld 1 创建一个以java为后缀名的文件 编写代码 public class Hello {public static void main(String[] args) {System.out.println("Hello, World!");} }其中&#xff0c;psvm是下述代码的缩写&#xff1a; public static void main(String[] args) sout是…

无人机语音中继电台 U-ATC118

简介 甚高频无线电中继通讯系统使用经过适航认证的机载电台连接数字网络传输模块&#xff0c;通过网络远程控制无缝实现无人机操作员与塔台直接语音通话。无人机操作员可以从地面控制站远程操作机载电台进行频率切换、静噪开关、PTT按钮&#xff0c;电台虚拟面板与真实面板布局…

C语言定长数组 变长数组 柔性数组

C语言定长数组 变长数组 柔性数组 文章目录 C语言定长数组 变长数组 柔性数组1. 定长数组2. 变长数组3. 柔性数组3.1 结构体的大小3.2 柔性数组的使用 1. 定长数组 在C99标准之前&#xff0c;C语言在创建数组的时候&#xff0c;数组的大小只能使用常量&#xff0c;常量表达式来…

CPU的三大调度

计算机系统中的调度可以分为不同层次&#xff0c;包括作业调度、内存调度和进程调度。这三种调度分别负责管理和优化计算机系统中不同层次的资源分配和执行顺序。 高级调度&#xff1a;作业调度&#xff08;Job Scheduling&#xff09;&#xff1a; 作业调度是指对提交到计算…

国产Type-C PD芯片—接口快充取电芯片

常用USB PDTYPE-C受电端&#xff0c;即设备端协议IC芯片&#xff08;PD Sink&#xff0c;也叫PD诱骗芯片&#xff09;&#xff0c;诱导取电芯片。 产品介绍 LDR6328: ◇ 采用 SOP-8 封装 ◇ 兼容 USB PD 3.0 规范&#xff0c;支持 USB PD 2.0 ◇ 兼容 QC 3.0 规范&#x…

Python绘制多分类ROC曲线

目录 1 数据集介绍 1.1 数据集简介 1.2 数据预处理 2随机森林分类 2.1 数据加载 2.2 参数寻优 2.3 模型训练与评估 3 绘制十分类ROC曲线 第一步&#xff0c;计算每个分类的预测结果概率 第二步&#xff0c;画图数据准备 第三步&#xff0c;绘制十分类ROC曲线 1 数据集…

TailwindCSS 如何设置 placeholder 的样式

前言 placeholder 在前端多用于 input、textarea 等任何输入或者文本区域的标签&#xff0c;它用户在用户输入内容之前显示一些提示。浏览器自带的 placeholder 样式可能不符合设计规范&#xff0c;此时就需要通过 css 进行样式美化。 当项目中使用 TailwindCSS 处理样式时&a…

手把手教你使用axure9画出图书出借的功能界面(原型模型)从0实现图书借阅界面

问题 设计图书出借的功能界面&#xff0c;并使用axure画出界面原型&#xff08;pc端或移动端都可以&#xff09;。就你的设计&#xff0c;你觉得有哪些方面需要跟用户沟通确认&#xff1f; 一、登录界面 1.先将图片背景改成灰色 2.插入文本框 3.插入文字&#xff0c;输入图书…

物联网第十四周总结

本周任务 消息转换器 PostgreSQL学习&#xff0c;JetLinks配置PostgreSQL 问题与总结 JetLinks配置PostgreSQL的时候&#xff0c;启动报错 2023-12-08 09:34:30.478 ERROR 19028 --- [actor-tcp-nio-1] o.h.e.r.e.r.r.R2dbcReactiveSqlExecutor : > Error: c…

Elasticsearch 8.9 refresh刷Es缓冲区的数据到Lucene,更新segemnt,使数据可见

一、相关API的handler1、接受HTTP请求的hander(RestRefreshAction)2、往数据节点发送刷新请求的action(TransportRefreshAction)3、数据节点接收主节点refresh传输的action(TransportShardRefreshAction) 二、在IndexShard执行refresh操作1、根据入参决定是使用lucene提供的阻塞…

Http请求(bug)——路径变量传参遇到特殊符号的问题 URL中的#,?,符号作用

前言 本篇博客分析路径变量传参遇到特殊符号的问题&#xff0c;阐述了URL中的#&#xff0c;&#xff1f;&#xff0c;&符号作用。 目录 前言引出路径变量传参遇到特殊符号的问题问题描述问题分析 URL中的 #&#xff0c;&#xff1f;&#xff0c;&符号的作用URL中# 的作…

【探索Linux】—— 强大的命令行工具 P.21(多线程 | 线程同步 | 条件变量 | 线程安全)

阅读导航 引言一、线程同步1. 竞态条件的概念2. 线程同步的概念 二、条件变量1. 条件变量函数⭕使用前提&#xff08;1&#xff09;初始化条件变量&#xff08;2&#xff09;等待条件满足&#xff08;3&#xff09;唤醒等待pthread_cond_broadcast()pthread_cond_signal() &…

Qexo博客后台管理部署

Qexo博客后台管理部署 个人主页 个人博客 参考文档 https://www.oplog.cn/qexo/本地部署 采用本地Docker部署管理本地Hexo 下载代码包 若无法下载使用科学工具下载到本地在上传到服务器 wget https://github.com/Qexo/Qexo/archive/refs/tags/3.0.1.zip# 解压 unzip Qexo…

SQL命令---修改字段的排列位置

介绍 使用sql语句表字段的排列顺序。 命令 alter table 表名 modify 字段名1 数据类型 first|after 字段名2;例子 将a表中的age字段改为表的第一个字段。 alter table a modify age int(12) first;下面是执行命令后的表结构&#xff1a; 将a表中的age字段放到name字段之…