你真的懂firewalld吗?不妨看看我的这篇文章

一、firewalld简介

firewalld防火墙是Linux系统上的一种动态防火墙管理工具,它是Red Hat公司开发的,并在许多Linux发行版中被采用。相对于传统的静态防火墙规则,firewalld使用动态的方式来管理防火墙规则,可以更加灵活地适应不同的网络环境和应用场景。

firewalld防火墙是Centos7系统默认自带的防火墙管理工具,取代了之前的iptables防火墙工具,它工作在网络层,主要功能是管理网络连接和防止未经授权的访问。它可以对入站和出站流量进行管理,可以控制端口、服务和网络协议的访问权限,也支持NAT和端口转发等高级功能,属于包过滤防火墙。

firewalld防火墙采用了D-Bus接口来与网络管理器和其他应用程序进行通信,这使得它可以更加灵活地适应不同的网络环境和应用场景。例如,当一个新的网络接口被添加到系统中时,firewalld可以接收到相关的通知,并自动更新防火墙规则以适应新的网络环境。

firewalld防火墙还提供了支持网络区域所定义的网络连接以及接口安全等级的动态防火墙管理工具。它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算〉,并且拥有两种配置模式:运行时配置与永久配置。

二、firewalld与iptables之间的关系

firewalld和liptables都是用来管理防火墙的工具(属于用户态),它们都可以用来定义防火墙的各种规则功能,内部结构都指向netfiter网络过滤子系统(属于内核态),从而实现包过滤防火墙功能。

图片

(一)两者基于方式不同

1、iptables主要是基于接口来设置规则,从而实现网络的安全性。

2、firewalld是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。与硬件防火墙的设置相类似。

(二)配置文件不同

1、iptables 将配置存储在/etc/sysconfig/iptables ;

2、firewalld将配置储存在/etc/firewalld,优先加载该配置文件,同时/usr/lib/firewalld中的各种xml文件是默认的配置文件。

(三)对防火墙规则修改不同

1、iptables对于规则的修改需要全部刷新策略,每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables里读取所有新的规则。

2、firewalld对于规则的修改无需全部刷新策略,因为它不会再创建任何新的规则,仅仅运行规则中的不同之处。因此firewalld可以在运行时间内,改变设置而不丢失现行连接。

(四)防火墙类型不同

1、iptables防火墙类型为静态防火墙。可以理解为iptables的规则就是一张表,对表进行增删改查操作。

2、firewalld防火墙类型为动态防火墙。可以理解为firewalld的规则是一块区域,可以更换不同的区域进行增删改查操作。

(五)firewalld相对于iptables优势

1、firewalld可以动态修改单条规则,而iptables在修改了规则后必须得全部刷新才可以生效。

2、firewalld在使用上要比iptables更加人性化了,即使对于不明白防火墙的“四表五链”,对于TCP/IP协议也不熟悉的情况下,也可以实现大部分管理功能。

三、firewalld常见概念

(一)firewalld区域概念

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

(二)firewalld预定义区域概念

1、区域如同进入主机的安全门,每个区域都具有不同限制程度的规则,只会允许符合规则的流量传入。

2、可以根据网络规模,使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口。

3、默认情况下,public区域是默认区域,包含所有接口(网卡)。

最终一个区域的安全程度是取决于管理员在此区域中设置的规则。

值得注意:如果数据包的源地址与区域绑定,则此数据包不管从那个网卡传入都使用改区域的规则过滤数据包。如果数据包的源地址未与区域绑定,则此数据从哪个网卡传入则使用该网卡绑定的区域规则过滤数据包。

(三)常见区域及含义

1、信任区域trusted:允许所有的流量传人;

2、公共区域public:默认允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝,是新添加网络接口的默认区域。

3、外部区域external:默认允许与ssh预定义服务匹配的传入流量,其余均拒绝。默认将通过此区域转发的IPv4传出流量将进行地址伪装(MASQUERADE),可用于为路由器启用了伪装功能的外部网络。

4、家庭区域home:默认允许与ssh、mdns、samba-client或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。

5、内部区域internal:默认值时与home区域功能相同。

6、工作区域work:允许与 ssh、dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。

7、隔离区域dmz也称为非军事区域:默认允许与ssh预定义服务匹配的传入流量,其余均拒绝。

8、限制区域block:拒绝所有传入流量。

9、丢弃区域drop:丢弃所有传入流量,并且不产生包含ICMP的错误响应。

值得注意:默认情况下的默认区域为public(默认与所有网卡绑定),要激活某个区域,就需要将区域与源地址网卡绑定。

四、firewalld数据包处理过程

(一)firewalld数据处理流程

firewalld对于进入系统的数据包,会根据数据包的源I地址或传入的网络接口等条件,将数据流量转入相应区域的防火靖规则。对于进入系统的数据包,首先捡查的就是其源地址。

(二)firewalld检查数据包的源地址的规则

1、若源地址关联到特定的区域(即源地址或接口绑定的区域有冲突),则执行该区域所制定的规则。

2、若源地址未关联到特定的区域(即源地址或接口绑定的区域没有冲突〉,则使用传入网络接口的区域并执行该区域所制定的规则。

3、若网络接口也未关联到特定的区域(即源地址或接口都没有绑定特定的某个区域),则使用默认区域并执行该区域所制定的规则。

针对以上数据包处理流程总结为:先检查传入数据包的源地址,若源地址与特定区域绑定,则使用该区域的规则过滤数据包。若源地址与特定区域没有绑定,且数据包传入网卡与特定区域绑定,则使用绑定网卡的区域的规则过滤数据包。若也没有区域绑定网卡,则使用默认区域的规则过滤数据包。

五、firewalld防火墙安装及其语法

firewalld在centos7中已经自带安装了,所以不需要我们再另外安装。至于其它发行版本的Linux系统,大家可以自行去了解相关Linux版本自带firewalld的情况,这里不展开,以下相关操作均在centos7下进行。

1、centos7下可以通过yum方式安装firewalld

yum install firewalld firewall-config

2、启动firewalld服务

systemctl start  firewalld

3、关闭firewalld服务

systemctl stop firewalld

4、将firewalld设置为开机自启动

systemctl enable firewalld

5、将firewalld禁用开机自启动

systemctl disable firewalld

6、查看firewalld工作状

systemctl status firewalld

firewall-cmd --state

(一)firewalld命令格式

1、命令格式

firewall-cmd [选项参数 ... ]

(1)选项参数

1)常见通用选项参数

-h, --help    # 显示帮助信息;-V, --version # 显示版本信息. (这个选项不能与其他选项组合);-q, --quiet   # 不打印状态消息;

2)常见状态选项参数​​​​​​​

--state                # 显示firewalld的状态;--reload               # 不中断服务的重新加载;--complete-reload      # 中断所有连接的重新加载;--runtime-to-permanent # 将当前防火墙的规则永久保存;--check-config         # 检查配置正确性;

3)日志选项参数

--get-log-denied         # 获取记录被拒绝的日志;--set-log-denied=<value> # 设置记录被拒绝的日志,只能为 'all','unicast','broadcast','multicast','off' 其中的一个;

(二)firewalld命令常见选项参数

可以通过firewall-cmd --help查看firewalld具体参数用法,以下罗列常见参数:

1、-h,--help:显示帮助信息;

2、-V,--version:显示版本信息;

3、-q,--quiet:不打印状态信息;

4、--state:显示firewalld的状态;

5、--reload:不中断服务的重新加载;

6、--complete-reload:中断所有连接的重新加载;

7、--runtime-to-permanent:将当前防火墙的规则永久保存;

8、--check-config: 检查配置正确性;

9、--get-default-zone:显示当前默认区域;

10、--set-default-zone=<zone>设置默认区域;

11、--get-active-zones:显示当前正在使用的区域及其对应的网卡接口

12、--get-zones :显示所有可用的区域;

13、--get-zone-of-interface=<interface>:显示指定接口绑定的区域;

14、--zone=<zone> --add-interface=<interface>:为指定接口绑定区域;

15、--zone=<zone> --change-interface=<interface>:为指定的区域更改绑定的网络接口;

16、--zone=<zone> --remove-interface=<interface>:为指定的区域删除绑定的网络接口;

17、--list-all-zones :显示所有区域及其规则;

18、[--zone=<zone>] --list-all :显示所有指定区域的所有规则,省略--zone=<zone>时表示仅对默认区域操作;

19、[--zone=<zone>] --list-services :显示指定区域内允许访问的所有服务;

20、[--zone=<zone>] --add-service=<service> :为指定区域设置允许访问的某项服务;

21、[--zone=<zone>] --remove-service=<service> :删除指定区域已设置的允许访问的某项服务;

22、[--zone=<zone>] --list-ports :显示指定区域内允许访问的所有端口号;

23、为指定区域设置允许访问的某个/某段端口号(包括协议名);

[--zone=<zone>] --add-port=<portid>[-<portid>]/<protocol>

24、删除指定区域已设置的允许访问的端口号(包括协议名);

[--zone=<zone>] --remove-port=<portid>[-<portid>]/<protocol>

25、[--zone=<zone>] --list-icmp-blocks:显示指定区域内拒绝访问的所有 ICMP 类型;

26、[--zone=<zone>] --add-icmp-block=<icmptype> :为指定区域设置拒绝访问的某项 ICMP 类型;

27、[--zone=<zone>] --remove-icmp-block=<icmptype> :删除指定区域已设置的拒绝访问的某项ICMP类型;

28、 --get-icmptypes :显示所有 ICMP 类型;

六、firewalld配置常用命令列举

以下罗列出平时运维工作常用的一些规则添加命令,方便大家参考学习。这里需要注意点;

firewalld可以通过两种方式控制端口的开放,一种是通过指定端口号,另一种是指定服务名。例如开放mysql服务就是开放了对应3306端口,但是不能通过端口号来关闭,也就是说通过指定服务名开放的就要通过指定服务名关闭;通过指定端口号开放的就要通过指定端口号关闭。还有一个要注意的就是指定端口的时候一定要指定是什么协议,tcp还是udp。

1、查看firewalld版本号信息

firewall-cmd --version

2、查看firewalld命令使用帮助信息

firewall-cmd --help

3、查看firewalld工作状态

firewall-cmd --state

4、查看firewalld区域信息

firewall-cmd --get-active-zones

5、查看指定接口所属区域

firewall-cmd --get-zone-of-interface=ens33

6、拒绝所有包

firewall-cmd --panic-on

7、查看是否拒绝

firewall-cmd --query-panic

8、取消拒绝状态

firewall-cmd --panic-off

9、将接口添加到区域,默认接口都在public

firewall-cmd --zone=public --add-interface=ens33

10、加入一个端口到指定区域

firewall-cmd --zone=dmz --add-port=8080/tcp

11、更新防火墙规则

firewall-cmd --complete-reload

12、设置默认接口区域,立即生效无需重启

firewall-cmd --set-default-zone=public

13、设置为家庭区域

firewall-cmd --set-default-zone=home

14、查看所有打开的端口

firewall-cmd --zone=dmz --list-ports

15、显示支持的区域列表

firewall-cmd --get-zones

16、查看显示当前正在使用的区域及其对应的网卡接口

firewall-cmd --get-active-zones

17、设置当前区域的接口

firewall-cmd --get-zone-of-interface=ens33

18、显示所有公共区域(public)

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

19、临时修改网络接口ens33为内部区域(internal);

firewall-cmd --zone=internal --change-interface=ens33

20、永久修改网络接口ens33为内部区域(internal)

firewall-cmd --permanent --zone=internal --change-interface=ens33

21、显示服务列表 

firewall-cmd --get-services

22、禁止ssh服务通过

firewall-cmd --delete-service=ssh

23、开放ssh服务通过

firewall-cmd --new-service=ssh

24、查看显示当前服务

firewall-cmd --list-services

25、添加http服务到内部区域(internal)

firewall-cmd --permanent --zone=internal --add-service=http

26、打开tcp的8090端口

firewall-cmd --enable ports=8090/tcp

27、临时允许Samba服务通过300秒

firewall-cmd --enable service=samba --timeout=300

28、打开8090/TCP端口

firewall-cmd --add-port=8090/tcp

29、永久打开8090/TCP端口

firewall-cmd --permanent --add-port=8090/tcp

30、开放mysql服务对应的端口

firewall-cmd --add-service=mysql

31、阻止mysql服务对应的端口

firewall-cmd --remove-service=mysql

32、开放通过tcp访问3306端口

firewall-cmd --add-port=3306/tcp

33、开放通过udp访问234端口

firewall-cmd --add-port=234/udp  

34、查看开放的端口

firewall-cmd --list-ports

35、阻止通过tcp访问3306端口

firewall-cmd --remove-port=3306/tcp

36、显示所有的icmp类型

 firewall-cmd --get-icmptypes

37、为指定区域设置拒绝访问的某项icmp 类型

firewall-cmd --add-icmp-block=echo-request

38、显示指定区域内拒绝访问的所有 icmp 类型

firewall-cmd --list-icmp-blocks

39、为指定区域设置拒绝访问的某项 icmp 类型

firewall-cmd --add-icmp-block=destination-unreachable

40、删除指定区域已设置的拒绝访问的某项icmp类型

 firewall-cmd --remove-icmp-block=destination-unreachable

41、检查是否允许伪装IP

firewall-cmd --query-masquerade

42、允许防火墙伪装IP

firewall-cmd --add-masquerade

43、禁止防火墙伪装IP

firewall-cmd --remove-masquerade

44、将8888端口的流量转发至80端口

firewall-cmd --add-forward-port=port=8888:proto=tcp:toport=80

45、将8888端口的流量转发至192.168.20.232的80端口

firewal-cmd --add-forward-port=port=8888: proto=tcp:toaddr=192.168.20.232:toport=80

46、将8888端口的流量转发至192.168.20.232

firewall-cmd --add-forward-port=port=8888:proto=tcp:toaddr=192.168.20.232

七、总结

大家都知道,防火墙规则众多并且繁杂,我们不可能罗列完它的每一条添加命令,更不可能死记硬背它的每一条规则。但是我们可以通过掌握其添加规则语法,用到时方便查阅添加即可。

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

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

相关文章

MyBatis的基础操作

目录 一.什么是MyBatis? 二.使用MyBatis的准备工作 1.引入依赖: 2.配置数据库连接字符串(建立MaBatis和MySQL的连接) 3.在model包中建立数据库对应的实体类UserInfo 三.通过注解的方式实现MyBatis的开发 1.插入语句(Insert) 2.删除语句(Delete) 3.更新语句(Update) 4…

刚接触抖店并开通了个体店,怎么快速起店呢?运营思路参考如下

我是王路飞。 如果你刚接触抖店&#xff0c;并且开通了个体店&#xff0c;但不知道如何做店的话。 其实很简单&#xff0c;抖店的流程并没有这么复杂。 电商的核心无非就是产品&#xff0c;抖店的运营也都是围绕产品展开的。 我给你们说下抖店的运营思路你们可以作为参考&a…

李飞飞亲自撰文:大模型不存在主观感觉能力,多少亿参数都不行

近日&#xff0c;李飞飞连同斯坦福大学以人为本人工智能研究所 HAI 联合主任 John Etchemendy 教授联合撰写了一篇文章&#xff0c;文章对 AI 到底有没有感觉能力&#xff08;sentient&#xff09;进行了深入探讨。 「空间智能是人工智能拼图中的关键一环。」知名「AI 教母」李…

day16--集合进阶(Set、Map集合)

day16——集合进阶&#xff08;Set、Map集合&#xff09; 一、Set系列集合 1.1 认识Set集合的特点 Set集合是属于Collection体系下的另一个分支&#xff0c;它的特点如下图所示 下面我们用代码简单演示一下&#xff0c;每一种Set集合的特点。 //Set<Integer> set ne…

得物小程序逆向+qt可视化(不含sku)

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章未…

canvas层级太高?解决方法

这个方法主要是依赖于邀请好有页面展示的canvas二维码二维码以及其他容器的图片 有一个保存图片功能&#xff0c;这个保存图片是需要将二维码以及涉及到的其他容器比如下图&#xff1a; 所以这时候需要canvas来绘制一个保存图片的效果&#xff0c;然后对这个canvas绘制的图片保…

AI写作工具的革命:AIGC如何提升内容生产效率

AIGC&#xff0c;即人工智能生成内容&#xff0c;是一种新兴的内容生产方式&#xff0c;它利用人工智能技术来自动生成文本、图像、音频、视频等多种形式的内容即进入实际应用层面。 所以AI不再是高深的、让人望尘莫及的算力算法&#xff0c;而是真实地贴近了我们的生活&#…

抖店重磅新规!保证金下调,一张营业执照能开多个店铺了!

哈喽~我是月月 抖音平台为助力小商家实现开店低成本&#xff0c;轻负担&#xff0c;高收益的模式 在5月30日正式实施了两个政策&#xff1a;保证金下调&#xff0c;一证多开 政策一&#xff1a;保证金下调 这次政策&#xff0c;涉及的类目优惠包含了&#xff0c;平台近70%的…

视频营销的智能剪辑:Kompas.ai如何塑造影响力视频内容

引言&#xff1a; 在当今数字化的营销领域&#xff0c;视频内容已经成为品牌吸引用户注意力、建立品牌形象和提升用户参与度的重要方式。然而&#xff0c;要想制作出具有影响力的视频内容&#xff0c;并不是一件容易的事情。这就需要借助先进的技术和工具&#xff0c;如人工智能…

解析控制台厂家在监控控制台尺寸定制有哪些标准

控制台厂家在监控控制台尺寸定制方面遵循着一系列严格的标准&#xff0c;以确保控制台能够适应不同监控室的具体需求&#xff0c;同时保证工作人员的操作便利和舒适性。以下是一些常见的监控控制台尺寸定制标准&#xff1a; 控制台的整体高度范围通常在720mm至1650mm之间&#…

【大模型】 基于AI和全球化进程的权衡:开源大模型与闭源大模型

【大模型】 基于AI和全球化进程的权衡&#xff1a;开源大模型与闭源大模型 前言 实际上关于开源or闭源&#xff0c;一直以来都是颇有争议的话题&#xff0c;人们争执于数据的隐私性和共享性&#xff0c;到底哪一方能获得的收益更大。而对于开源与闭源哪个更好实际上也就是说是…

clocking wizard IP核通过AXI4-Lite接口实现动态重新配置应用实例

在最近的FPGA应用中&#xff0c;应用到了基于Zynq 7000的Uart串口设计&#xff0c;为了让串口的时钟更精确&#xff0c;采用了外部时钟模式&#xff0c;如下图所示。外部时钟连接到了Clocking Wizard IP核的输出端。 在串口通信时&#xff0c;发现串口有错码出现。例如&#xf…

springboot社区助老志愿服务系统-计算机毕业设计源码96682

摘要 大数据时代下&#xff0c;数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求&#xff0c;利用互联网服务于其他行业&#xff0c;促进生产&#xff0c;已经是成为一种势不可挡的趋势。在图书馆管理的要求下&#xff0c;开发一款整体式结构的社区助老志愿服务…

芯课堂 | UI Creator 物理键盘移植指南

LVGL提供输入设备的种类一共有5种&#xff0c;分别是&#xff1a;touchpad&#xff08;触摸板&#xff09;、mouse&#xff08;鼠标&#xff09;、keypad&#xff08;键盘&#xff09;、encoder&#xff08;编码器&#xff09;、button&#xff08;外部按键&#xff09;。而基于…

【源码】一站式Java云商城系统源码,无后门

一站式Java云商城系统源码&#xff0c;无后门&#xff0c;不是java源代码&#xff0c;是编译后的。 系统对接 手动发货 自动发货 兑 换 码 订单监控 商品监控 对象存储 邮箱提醒 加价模板 密价功能 三方支付 会员体系 财务明细 交易分析 售后服务 技术支持 服务器建议配置&a…

简单微信企业群消息推送接口

群管理 群发送接口 POST: JSONURL http://localhost:65029/m/wxapi/sendwxmsg{ "nr":"试", --消息 "at":"wxid_y0k4dv0xcav622,wxid_y0k4dv0xcav622",--群wxid "key":"F98F354F1671A2D21BC78C76B95E96EB",--群k…

不聚焦情绪,不精神内耗:成长的自我修炼

在我们的人生旅途中&#xff0c;总会遇到各种各样的困境和挑战。如何在逆境中保持积极的心态&#xff0c;专注于个人成长&#xff0c;是每一个人都需要面对和思考的问题。这篇文章将探讨如何不抱怨、不指责、不聚焦情绪、不精神内耗&#xff0c;专注于解决困境和个人成长。 问…

【基于 PyTorch 的 Python 深度学习】9 目标检测与语义分割(2)

前言 文章性质&#xff1a;学习笔记 &#x1f4d6; 学习资料&#xff1a;吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容&#xff1a;根据学习资料撰写的学习笔记&#xff0c;该篇主要介绍了优化候选框的几种方法。 一、优化候选框的…

C语言——基于stm32G030的温湿度传感器项目实验

一、功能要求&#xff1a; 设备自检功能&#xff1a; 设备上电自检&#xff08;检查传感器采集是否正常&#xff0c; DHT11有存在响应&#xff0c; 可以自检使用&#xff0c; &#xff09;自检通过后&#xff0c;由串口打印设备状态信息。 自动控制功能&#xff1a; 进入自动控…

【招聘】易基因科技诚聘销售总监 虚位以待

&#x1f680; 关于我们 易基因拥有一支充满活力的科研服务团队&#xff0c;致力于以“引领表观遗传学科学研究与临床应用”为愿景&#xff0c;依托高通量测序技术和云数据分析平台&#xff0c;为医疗机构、科研机构、企事业单位等提供以表观遗传学技术为核心的多组学科研服务…