firewalld(3)zone配置

简介

前面文章我们已经介绍了firewalld的安装,配置文件介绍、简单的规则查询,本篇文章主要介绍zone的配置。前面我们介绍了firewalld默认的zone和不同zone的功能,下面我们就直接进入zone的具体配置使用。

配置zone的方式    

图形配置工具 firewall-config
这是一个图形用户界面(GUI)工具,它允许用户通过点击和拖动来配置防火墙。通过firewall-config,您可以添加、编辑或删除区域(zones),并为这些区域配置服务、端口和ICMP类型等。

命令行工具 firewall-cmd
firewall-cmd是一个命令行接口(CLI),用于动态地管理firewalld。您可以使用firewall-cmd来添加、删除、激活或禁用区域,以及为这些区域配置规则。这些更改可以立即生效,并且可以被永久保存,后面我们的配置都是基于firwall-cmd来配置。

D-BUS接口
firewalld使用D-BUS作为其内部通信机制,因此,您也可以使用D-BUS接口来与firewalld进行交互。这通常是通过编写脚本或使用其他支持D-BUS的应用程序来完成的。

配置文件
/usr/lib/firewalld/zones目录包含默认和回退配置。/etc/firewalld/zones目录用于存储用户创建和自定义的配置文件。可以直接编辑这些XML文件来添加或修改区域。但是,请注意,直接编辑配置文件通常需要更多的技术知识,并且任何错误都可能导致防火墙配置出现问题。

firewalld如何选择使用哪个zone 

在第一篇文章介绍firewalld时我们就介绍了firewalld处理数据的一些原则,我们在这里在回顾一下。

每个 zone 就是一套规则集,但是有那么多 zone,对于一个具体的请求来说应该使用哪个 zone(哪套规则)来处理呢?

对于一个接受到的请求具体使用哪个 zone,firewalld 是通过三种方法来判断的:
1、source,也就是源地址 优先级最高
2、interface,接收请求的网卡 优先级第二
3、firewalld.conf 中配置的默认 zone 优先级最低

这三个的优先级按顺序依次降低,也就是说如果按照 source 可以找到就不会再按 interface 去查找,如果前两个都找不到才会使用第三个,即 firewalld.conf 中配置的默认zone。

配置zone

默认zone是public,并且我电脑的接口目前还没有划入到任何zone中

修改默认zone

firewall-cmd --get-default-zone #查看默认区域
firewall-cmd --list-all #查看此区域内的所有配置,类似与iptables -Ln
firewall-cmd --set-default-zone=     #更改默认的区域
当我们把默认zone修改为block后,block默认就是REJECT动作,如果此时该zone中有接口,那么这些接口所收到的数据包都会被REJECT

 添加自定义zone

firewalld中,可以添加自定义的zone。自定义的zone允许你根据特定的需求定义一组防火墙规则。

这里的--permanent选项确保该zone在重启后仍然存在。在定义了新的zone之后,你需要重新加载firewalld服务以使更改生效。增加完成后就可以按照下面添加zone规则的方式在该zone中添加规则

删除zone

要删除firewalld中的zone,首先,需要确认要删除的zone的名称。然后,你需要确认要删除的zone的名称,一旦确定了要删除的zone没有绑定到任何接口,可以使用以下命令来删除它

通过--delete-zone删除了zone后,需要重新加载防火墙配置才能生效
当我们去删除系统内置的zone时,会发现提示是系统内置的不能删除,其实是不能通过firewall-cmd命令删除。

修改zone默认target

通过--set-target设置该zone的默认动作,我这里设置为REJECT,但是设置后并没有生效,因为针对设置默认target后需要重载防火墙规则
此时该zone的target已经设置成功

将接口划入zone

将网卡(interface) 或 源 IP 添加到一个 zone 即激活这个域

firewall-cmd --zone=your_zone --add-interface=your_interface
将接口加入zonefirewall-cmd --zone=your_zone --remove-interface=your_interface
将接口从zone中移除firewall-cmd --zone=your_zone --list-interfaces
查看zone中的接口firewall-cmd --get-active-zones
查看所有zone中的接口
我本机有2个接口,ens33是我连接内网的网口,ens36是我连接外网的网口,现在我将ens36加入到public zone中通过--add-interface=ens36  --zone=public即可将接口加入zone中。同理我会将ens33加入到trusted zone中。注意:我没有增加--permanent参数,所以该配置重启后就没有了。
查看接口绑定在哪个zone中
此时直接通过ens33即trusted接口去连接和访问该主机,都是可以访问的,因为默认情况下trusted zone接受所有连接
标题

zone添加规则

        在public zone中,默认只允许如下图所示服务通过,那么想要让其他服务或者ip地址可以通过public zone访问应该如何设置呢?

此时我们public zone,默认target是default,只允许dhcpv6-client 和ssh服务通过,而其他服务默认是不通过的
此时我们可以看到访问170.200的80端口是不能访问的,但是可以ssh,因为默认放行了ssh服务。

放行http服务规则

通过--add-service=http添加http服务放行规则
此时就可以访问170.200的http服务了,注意此时是所有人都可以访问,那么如何限制某个ip才能访问呢?

放行IP地址 

增加了源ip地址后,那么只有源ip地址范围内的访问我们放行服务的流量才能通过,那么我如果只想要允许源地址为192.168.1.1-192.168.1.10的ip地址呢?这个不像iptables直接可以通过扩展模块iprange实现,我们在后面的rich rule会有详细介绍

     同样的如果要添加协议需要使用--add-protocol= ,添加端口使用--add-port= 等,在配置的时候可以通过table命令查看后面的参数

--add后面可以添加很多参数根据自己的需要进行对应的选择

放行端口

通过使用--add-port=端口/协议来增加端口,可以通过100-200来添加端口范围
可以通过--query-port=10/tcp查看tcp端口号10在public中是否配置,也可以直接通过--list-ports列出public中所有端口

zone中删除规则

        前面我们介绍了添加规则,那么删除规则的方式是一样的,--add对应添加,那么--remove对应删除,如下图所示    

通过--remove-service删除了dhcpv6-client规则

保存配置

通过firewall-cmd将runtime配置迁移到永久配置,然后重新加载防火墙配置文件
此时前面配置的规则都依旧存在,如果不迁移配置,那么当使用--reload参数后,所配置的规则就是丢失。

通过配置文件修改规则

我们通过firewall-cmd命令配置的参数最终都是写入到对应的配置文件中,上面我们修改的public zone的参数配置配置文件就在/etc/firewalld/zone/public.xml中

直接编辑该文件也可以配置firewalld规则
通过编辑public.xml文件修改了firwalld规则后,--reload重新加载配置文件,我们通过firewall-cmd命令查看时依旧可以生效

总结

本片文章主要介绍的是zone的配置、包括默认zone,自定义zone,zone中添加规则,如添加IP、端口、服务以及配置保存。上面所有的操作都是基于zone的最基础的操作,更复杂的规则以及策略的应用我们将在后面的文章中逐步介绍。

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

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

相关文章

浅析基于量子成像的下一代甚高灵敏度图像传感器技术

高灵敏度探测成像是空间遥感应用中的一个重要技术领域,如全天时对地观测、空间暗弱目标跟踪识别等应用,对于甚高灵敏度图像传感器的需求日益强烈。随着固态图像传感器技术水平的不断提高,尤其背照式及埋沟道等工艺的突破,使得固态…

马拉松报名小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,赛事信息管理,赛事报名管理,活动商城管理,留言板管理,系统管理 微信端账号功能包括:系统首页,赛事信息&…

手动访问mongo和ES插入和查询

1、手动访问mongo 1.1、mongo连接数据库 1.2、mongo插入和查询 db.hmf_test.insert( { "aoeId": "1", "aoeAes": "吴秀梅", "aoeSm4": "北京xx网络技术有限公司.", "aoeSm4_a": "…

2pc 3pc

2pc&3pc问题 本质: 2pcTM超时机制 3pc加入事务询问机制RM超时机制 事务询问机制:减少阻塞 RM超时机制:避免死锁 2pc 3pc 参考: https://juejin.im/post/5aa3c7736fb9a028bb189bca#heading-1 https://blog.csdn.net/xj1…

Spring Boot 文件上传和下载指南:从基础到进阶

文章目录 引言1. 环境配置2. 文件上传2.1 配置文件上传路径2.2 创建上传服务2.3 创建上传控制器 3. 文件下载3.1 创建下载服务3.2 创建下载控制器 4. 前端页面4.1 文件上传页面4.2 文件下载页面 5. 技术分析结论 🎉欢迎来到SpringBoot框架学习专栏~ ☆* o(≧▽≦)o …

iOS多target时怎么对InfoPlist进行国际化

由于不同target要显示不同的App名称、不同的权限提示语,国际化InfoPlist文件必须创建名称为InfoPlist.strings的文件,那么多个target时怎么进行国际化呢?步骤如下: 一、首先我们在项目根目录创建不同的文件夹对应多个不同的targe…

1-2 什么是自然语言处理

1-2 什么是自然语言处理 主目录点这里 自然语言处理是计算机学科、人工智能与语言学领域的一个交叉学科,主要研究如何让计算机能够理解、处理、生成和模拟人类语言的能力,从而实现与人类进行自然语言对话的能力。 如上图,你好通过自然语言处…

笔记:SpringBoot+Vue全栈开发

笔记:SpringBootVue全栈开发 1. 开发环境热部署2. SpringBoot RestController的使用3. SpringBoot实现文件上传4. 配置拦截器5. Restful服务Swagger6. 使用MyBatis-Plus进行数据库操作7. 多表查询、条件查询及分页查询 1. 开发环境热部署 使用spring-boot-devtools…

opencv第一课-cnblog

opencv第一课 创建窗口 import timeimport cv2 #创建窗口 cv2.namedWindow(window,cv2.WINDOW_NORMAL)#cv2.WINDOW_AUTOSIZE自动大小,不允许修改窗口大小#更改窗口的大小 cv2.resizeWindow(window,800,600)#展示名字为window的窗口 cv2.imshow(window,0)key cv2.w…

vue中如何使用echarts和echarts-gl实现三维折线图和三维柱状图

一、vue中使用三维折线图 效果图: 二、使用步骤 1.引入库 安装echarts 在package.json文件中添加 "dependencies": {"echarts": "^5.1.2""echarts-gl": "^1.1.1",// "echarts-gl": "^2.0.8…

『古籍自有答案』古风H5案例赏析

「古籍自有答案」,一部由新京报与字节跳动公益联合打造的古风H5,以诗意盎然的开篇引领用户穿梭于千年文脉。 part1. 创意定位 "人生有惑问先贤,先贤答案存古籍",在这里,每一个灵魂的探问,都能在…

拥抱 AGI:PieDataCS 引领云原生数据计算系统新范式

自2023年后,人工智能技术进入了一个更为成熟和广泛应用的阶段,人工通用智能(AGI)这一概念也成为了科技界和产业界热议的焦点。本文将结合 AGI 时代背景,从架构设计到落地实践,详细介绍拓数派云原生数据计算…

中职院校专业群的生成机制研究

摘要: 随着国内产业升级转型步伐的加快和职业教育质量提升的要求,中等职业院校(中职院校)的专业群建设成为促进教育与产业深度融合、实现内涵式发展的关键。本文采用案例分析法,探讨中职院校专业群生成机制&#xff0c…

Linux手动安装JDK1.8

1、下载要安装的jdk安装包文件 官网下载地址:https://www.oracle.com/cn/java/technologies/downloads/ 2、上传jdk安装包至要安装服务器 3、在要安装jdk位置使用命令解压安装包 安装路径: /usr/local/java 解压安装包,解压命令 tar -zxvf /install…

前端面试项目细节重难点(十)(已工作|做分享)

面试官:现场出需求:我想让一个左侧盒子可以进行拉伸、缩小、展示或隐藏这些功能,你会如何实现? 答:(1)分析问题:其实,我听到这个问题后: 我的第一种想法&am…

Linux关于文件的高级命令

tree命令 tree命令用于以树状图的形式显示目录结构。它可以帮助用户快速了解目录和文件的层次关系,非常适合用于浏览和理解大型文件系统的结构。 基础用法 显示当前目录的树状结构:tree 显示指定目录的树状结构:tree 指定目录路径 tree命…

基于FreeRTOS+STM32CubeMX+LCD1602+AD5621(SPI接口)的DAC控制输出Proteus仿真

一、仿真原理图: 二、运行效果: 三、STM32CubeMX配置: 1)、GPIO配置: 2)、freertos配置: 四、软件部分: 1)、main主函数: /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file …

模拟5亿年自然进化史,全新蛋白质大模型ESM3诞生!前Meta老将力作LeCun转赞

模拟5亿年自然进化史,全新蛋白质大模型ESM3诞生!前Meta老将力作LeCun转赞。 能抗衡AlphaFold 3的生命科学大模型终于出现了。初创公司Evolutionary Scale AI发布了他们最新的98B参数蛋白质语言模型ESM3。不仅支持序列、结构、功能的all-to-all推理&#…

【动态规划】动态规划一

动态规划一 1.第 N 个泰波那契数2.面试题 08.01. 三步问题3.使用最小花费爬楼梯4.解码方法 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.…

[k8s生产系列]:k8s集群故障恢复,etcd数据不一致,kubernetes集群异常

文章目录 摘要1 背景说明2 故障排查2.1 查询docker与kubelet状态2.2 查看kubelet服务日志2.3 重启docker与kubelet服务2.3.1 首先kubelet启动起来了,但是报错master节点找不到2.3.2 查询kubernetes集群服务,发现etcd与kube-apiserver均启动异常 2.4 etcd…