你真的懂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.mzph.cn/diannao/17932.shtml

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

相关文章

ctfhub中的SSRF相关例题(中)

目录 上传文件 gopher协议的工作原理&#xff1a; gopher协议的使用方法&#xff1a; 相关例题: FastCGI协议 FastCGI协议知识点 相关例题&#xff1a; Redis协议 知识点&#xff1a; 相关例题 第一种方法 第二种方法 上传文件 gopher协议的工作原理&#xff1a; …

开箱元宇宙| 探索家乐福如何在The Sandbox 中重新定义零售和可持续发展

有没有想过 The Sandbox 如何与世界上最具代表性的品牌和名人的战略保持一致&#xff1f;在本期的 "开箱元宇宙 "系列中&#xff0c;我们与家乐福团队进行了对话&#xff0c;这家法国巨头率先采用web3技术重新定义零售和可持续发展。 家乐福的用户平均游玩时间为 57 …

maven部署到私服

方法一:网页上传 1、账号登录 用户名/密码 2、地址 http://自己的ip:自己的端口/nexus 3、查看Repositories列表&#xff0c;选择Public Repositories&#xff0c;确定待上传jar包不在私服中 4、选择3rd party仓库&#xff0c;点击Artifact Upload页签 5、GAV Definition选…

蓝桥杯嵌入式国赛笔记(3):其他拓展板程序设计(温、湿度传感器、光敏电阻等)

目录 1、DS18B20读取 2、DHT11 2.1 宏定义 2.2 延时 2.3 设置引脚输出 2.4 设置引脚输入 2.5 复位 2.6 检测函数 2.7 读取DHT11一个位 2.7.1 数据位为0的电平信号显示 2.7.2 数据位为1的电平信号显示 2.8 读取DHT11一个字节 2.9 DHT11初始化 2.10 读取D…

exe4j --实现把jar包打成exe可执行文件

工具准备 1.Java编辑器&#xff0c;如&#xff1a;idea、eclipse等&#xff0c;下载地址&#xff1a; IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains https://www.jetbrains.com/idea/ 2.exe4j&#xff0c;下载地址&#xff1a; ej-technologies - Java A…

SQL试题使得每个学生 按照姓名的字⺟顺序依次排列 在对应的⼤洲下⾯

学⽣地理信息报告 学校有来⾃亚洲、欧洲和美洲的学⽣。 表countries 数据如下&#xff1a; namecontinentJaneAmericaPascalEuropeXiAsiaJackAmerica 1、编写解决⽅案实现对⼤洲&#xff08;continent&#xff09;列的 透视表 操作&#xff0c;使得每个学生 按照姓名的字⺟顺…

常用批处理命令及批处理文件编写技巧

一常用批处理命令 1.查看命令用法&#xff1a;命令 /? //如&#xff1a;cd /? 2.切换盘符目录&#xff1a;cd /d D:\test 或直接输入 d: //进入上次d盘所在的目录 3.切换目录&#xff1a;cd test 4.清屏:cls 5.“arp -a” //它会列出当前设备缓存中的所有…

特定车型专属AI模型解决方案,高清图像,稳定输出

美摄科技凭借其对人工智能领域的深刻理解和技术积累&#xff0c;为企业带来了一项革命性的解决方案——特定车型专属AI模型。这一方案以专属车型照片为基础&#xff0c;通过先进的AI生成模型训练&#xff0c;为企业提供个性化、高清、稳定的车辆图像和视频生成服务&#xff0c;…

天正T20专业建筑v7.0~v10.0版本下载,天正T20专业建筑软件获取

利用AutoCAD这一全球知名的图形平台&#xff0c;我们成功研发出了最新一代的T20天正建筑软件V8.0。这款软件以其卓越的性能和专业化的功能&#xff0c;在建筑施工图设计领域展现出了强大的实力&#xff0c;赢得了广大建筑设计师的青睐。 T20天正建筑软件V8.0在继承了AutoCAD的稳…

盐城市大数据集团携手百望云 以MaaS推进数字经济跃迁

随着ChatGPT的爆火&#xff0c;大模型、人工智能、大数据等技术&#xff0c;被快速推向市场最前沿。如何通过创新技术提升企业的数字化能力&#xff0c;助力数据要素资产沉淀&#xff0c;推动企业及所在行业、区域实现数智化转型&#xff0c;是大家关注的核心问题。 “携手共建…

基于LLM的优化器评测-非凸函数

基于LLM的优化器评测-非凸函数 目标函数测试结果测试代码测试日志 背景: ​ 很多时候我们需要为系统寻找最优的超参.比如模型训练,推理的量化等.本文尝试将LLM当成优化器,帮忙我们寻找最优的超参. 验证方法: 1.设计一个已知最优解的多项式,该多项式有3个变量(因为3个变量可以…

高集成IP摄像SOC处理方案简介以及芯片介绍SSC336D

时至今日&#xff0c;随着科技越来越快的发展&#xff0c;视频监控领域目前已经向新型 IP 网络进行技术过渡。而 IP 网络摄像系统的初始定义为&#xff1a;网络与视频处理技术相统一的摄像单元。 网络摄像系统拥有自己的 IP 地址和计算功能&#xff0c;能处理网络通信任务。其…

FPGA DMA技术分享(赋能高速数据处理的新动力介绍篇)

一、引言 在现代数字信号处理系统中&#xff0c;数据的高速、高效传输与处理是关键。FPGA&#xff08;现场可编程门阵列&#xff09;以其高度的灵活性和并行处理能力&#xff0c;成为实现这一目标的理想平台。而DMA&#xff08;直接内存访问&#xff09;技术&#xff0c;作为FP…

【Linux】自己实现一个bash进程

bash就是命令行解释器&#xff0c;就是Linux操作系统让我们看到的&#xff0c;与用户进行交互的一种外壳&#xff08;shell&#xff09;&#xff0c;当然了bash也是一个进程&#xff0c;它有时候就是通过创建子进程来执行我们输入的命令的。这无疑就离不开我们上篇博客所说的进…

floodfill 算法(上)

目录 图像渲染 题意&#xff1a; 题解&#xff1a; 非递归&#xff1a; 递归&#xff1a; 岛屿数量 题解&#xff1a; 非递归&#xff1a; 递归&#xff1a; 岛屿的最大面积 题解&#xff1a; 非递归&#xff1a; 递归&#xff1a; 被围绕的区域 题解&#xff1a…

【架构-16】安全架构设计理论

信息安全面临的威胁 主动攻击&#xff1a;可能改变信息或危害系统的攻击就是主动攻击 被动攻击&#xff1a;攻击者的目的只是获取信息&#xff0c;不会改变信息或危害系统。&#xff08;网络监听、信息截取、流量分析&#xff09; 信息安全体系架构设计 信息安全体系架构。具…

Llama模型家族训练奖励模型Reward Model技术及代码实战(二)从用户反馈构建比较数据集

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;一&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 基于 LlaMA…

【设计模式】JAVA Design Patterns——Circuit Breaker(断路器模式)

&#x1f50d;目的 以这样一种方式处理昂贵的远程服务调用&#xff0c;即单个服务/组件的故障不会导致整个应用程序宕机&#xff0c;我们可以尽快重新连接到服务 &#x1f50d;解释 真实世界例子 想象一个 Web 应用程序&#xff0c;它同时具有用于获取数据的本地文件/图像和远程…

Linux软硬链接详解

软链接&#xff1a; ln -s file1 file2//file1为目标文件&#xff0c;file2为软链接文件 演示&#xff1a; 从上图可以得出&#xff1a; 软链接本质不是同一个文件&#xff0c;因为inode不同。 作用&#xff1a; 软连接就像是Windows里的快捷方式&#xff0c;里面存放的是目标…

苹果手机数据不慎删除?这4个方法果粉必看!

苹果手机该怎么恢复丢失的数据呢&#xff1f;有时候会因为使用不当或者是被他人误删等原因&#xff0c;导致重要的数据丢失&#xff0c;这时我们需要找回丢失手机数据&#xff0c;小编给大家分享4种恢复苹果手机数据的技巧&#xff0c;大家赶紧来学一学吧&#xff01; 一、iclo…