Firewalld 概述

news2024/12/24 13:20:45

1.firewalld简介

firewalld的作用是为包过滤机制提供匹配规则(或称为策略),通过各种不同的规则,告诉 netfiter对来自指定源、前往指定目的或具有某些协议特征的数据包采取何种处理方式。

为了更加方便地组织和管理防火墙,firewalld 提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具。它支持IPv4 、IPv6 防火墙设置以及以太网桥,并且拥 有两种配置模式:运行时配置与永久配置。它还支持服务或应用程序直接添加防火墙规则接口。

2.firewalld和iptables的关系

firewalld自身并不具备防火墙的功能,而是和iptables  一样需要通过内核的netilter 来实现。也就是说firewalld和iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了。

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

Firewalld 和 iptables  关系图

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

3.firewalld 与iptables  service 的区别

iptables service 在 letc/sysconfigliptables   中储存配置,而 firewalld 将配置储存在/usr/lib/firewalld/  和 /etc/firewalld/   中的各种XML文件里。

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

Firewalld网络区域

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

>若源地址关联到特定的区域,则执行该区域所制定的规则。

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

>若网络接口未关联到特定的区域,则使用默认区域并执行该区域所制定的规则。

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

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

firewalld的预定义区域说明

区域

说明

trusted(信任区域)

可接收所有的网络连接

public(公共区域)

除非与传出流量相关,或与ssh 或dhcpv6-client预定义服务匹配,否则拒绝流量传 入,在公共区域内,不能相信网络内的其他计算机不会对计算机造成危害,只能接收 经过选择的连接。并且,该区域是新添加网络接口的默认区域

work(工作区域)

除非与传出流量相关,或与ssh 、ipp-client、dhcpv6-client预定义服务匹配,否则拒绝流量传入,用于工作区。相信网络内的其他计算机不会危害计算机,仅接受经过选择的连接

home (家庭区域)

除非与传出流量相关,或与ssh、ipp-client 、mdns 、samba-client 、dhcpv6-client预 定义服务匹配,否则拒绝流量传入,用于家庭网络。信任网络内的其他计算机不会危 害计算机,仅接收经过选择的连接

internal(内部区域)

除非与传出流量相关,或与ssh、ipp-client 、mdns 、samba-client 、dhcpv6-client预 定义服务匹配,否则拒绝流量传入,用于内部网络。信任网络内的其他计算机不会危 害计算机,仅接收经过选择的连接

external (外部区域)

除非与传出流量相关,或与ssh 预定义服务匹配,否则拒绝流量传入。通过此区域转 发的 IPv4传出流量将进行地址伪装,可用于为路由器启用了伪装功能的外部网络

dmz (隔离区域也称为非军事区域)

除非与传出的流量相关,或与ssh 预定义服务匹配,否则拒绝流量传入 

block(限制区域)

除非与传出流量相关,否则拒绝所有传入流量

drop(丢弃区域)

除非与传出流量相关,否则丢弃所有传入流量,并且不产生包含 ICMP(InternetControl Message Protocol,互联网控制报文协议)的错误响应

Firewalld防火墙的配置方法

在Ce ntOS7 系统中,可以使用三种方式配置firewalld 防火墙:

firewall-config  图形工具。

firewall-cmd  命令行工具。

/etc/firewalld/中的配置文件。

通常情况下,不建议直接编辑配置文件。

firewall-cmd命令

1.firewalld    服务管理

在安装CentOS7系统时,会自动安装firewalld和图形化工具firewall-config。执行以下命令可以启动firewalld 并设置为开机自启动状态。

[root@localhost ~]# systemctl start firewalld //启动 firewalld

[root@localhost ~]# systemctl enable firewalld //设置firewalld为开机自启动

如果firewalld正在运行,通过systemctl  status  firewalld 或 firewall-cmd 命令可以查看其运行状态。

2.获取预定义信息

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

[root@localhost ~]# firewall-cmd --get-zones /显示预定义的区域 
[root@localhost~]#firewall-cmd --get-service /显示预定义的服务 
[root@localhost~]#firewall-cmd --get-icmptypes //显示预定义的ICMP 类型

3. 区域管理

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

firewall-cmd 命令的区域管理选项说明

选项

说明

--get-default-zone

显示网络连接或接口的默认区域

--set-default-zone=

设置网络连接或接口的默认区域

-get-active-zones

显示已激活的所有区域

--get-zone-of-interface=

显示指定接口绑定的区域

--zone=--add-interface=

为指定接口绑定区域

--zone=--change-interface=

为指定的区域更改绑定的网络接口

--zone=--remove-interface=

为指定的区域删除绑定的网络接口

--list-all-zones

显示所有区域及其规则

[--zone=]--list-all

显示所有指定区域的所有规则,省略--zone=时表示仅

对默认区域操作

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

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

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

[root@localhost  ~]#firewall-cmd  --list-all

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

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

(4)将网络接口ens33 对应区域更改为指定区域。

[root@localhost ~]#firewall-cmd --zone=internal -change-interface=ens33

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

[root@localhost ~]#firewall-cmd --get-active-zones

4.服务管理

为了方便管理,firewalld预先定义了很多服务,存放在/usr/ib/firewalld/services/ 目 录中,服务通过单个的 XML  配置文件来指定。这些配置文件则按以下格式命名:

service-name.xml,     每个文件对应一项具体的网络服务,如 ssh   服务等。与之对应的配置文件中记录了各项服务所使用的tcp/udp端口。在最新版本的firewalld 中默认已经定义了70多种服务供我们使用,对于每个网络区域,均可以配置允许访问的服务。当默认提供的 服务不适用或者需要自定义某项服务的端口时,我们需要将 service 配置文件放置在letc/firewalld/services/ 目录中。service 配置具有以下优点。

通过服务名字来管理规则更加人性化。

>  通过服务来组织端口分组的模式更加高效,如果一个服务使用了若干个网络端口,则服

务的配置文件就相当于提供了到这些端口的规则管理的批量操作快捷方式。

firewall-cm d 命令区域中服务管理的常用选项说明

选项                                              说明

[-zone=]-list-services

[--zone=]--add-service=

[--zone=]--remove-service=

[-zone=]--list-ports

显示指定区域内允许访问的所有服务

为指定区域设置允许访问的某项服务

删除指定区域已设置的允许访问的某项服务

显示指定区域内允许访问的所有端口号

[-zone=]--add-port=[-]为指定区域设置允许访问的某个/某段端口号(包括

[-zone=]

--remove-port=[-]/

[--zone=]-list-icmp-blocks

[-zone=]--add-icmp-block=

[--zone=]--remove-icmp-block=

协议名)

删除指定区域已设置的允许访问的端口号(包括协

议名)

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

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

删除指定区域已设置的拒绝访问的某项ICMP类

型,省略--zone=时表示对默认区域操作

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

[root@localhost ~]#firewall-cmd --add-service=http

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

[root@localhost~]#firewall-cmd --zone=internal --add-service=mysql
[root@localhost~]#firewall-cmd-zone=internal -remove-service=samba-client //设置internal区域不允许访问samba-client服务

5 .端口管理

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

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

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

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

6.两种配置模式

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

firewall-cmd   命令工具与配置模式相关的选项有三个。

--reload:    重新加载防火墙规则并保持状态信息,即将永久配置应用为运行时配置。

--permanent: 带有此选项的命令用于设置永久性规则,这些规则只有在重新启动 firewalld  或重新加载防火墙规则时才会生效;若不带有此选项,表示用于设置运行时规则。

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

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

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

相关文章

【笔记】手工部署之linux中开放已安装的mysql与tomcat端口

在需要打包的springboot项目中输入mvn clean package 在target下面获得jar包 进入linux中你想要该jar包存在的位置 将jar包上传至linux中 此时在浏览器中输入linux的ip地址:端口号/mapping路径为404 故: 在linux中另开一个标签页 检查mysql和tomcat已…

JMH319【亲测整理】2017剑侠情缘2剑网2汉化版+网游VM单机版+修复纹饰翅膀+内置GM命令无限道具+一键端视频安装教学

资源介绍: 这一套新端早就在手上 一直没分享出来 既然大家放出来了 我也就发出来大家研究吧 目前在改另外一套 是否需要虚拟机:是 文件大小:压缩包约7G 支持系统:win7、win10、win11 硬件需求:运行内存12G …

遇到多语言跨境电商系统源码问题?这里有解决方案!

从手机到电脑,从线下到线上,如今,跨境电商正在打破地域界限,成为全球贸易的新引擎。在这个全球化的背景下,跨境电商平台的运营也面临着一系列的挑战,其中之一就是多语言问题。如果你遇到了多语言跨境电商系…

c进阶篇(三):字符串函数

1.strlen: strlen - C Reference strlen 函数是一个标准库函数&#xff0c;用于计算以 null 结尾的字符串的长度&#xff0c;也就是字符串中实际字符的数量&#xff0c;不包括最后的 null 终止符 \0。它定义在 <string.h> 头文件中。 函数原型:size_t strlen(const ch…

PyCharm 著名编程利器下载安装:Python开发者的必备神器!

PyCharm&#xff0c;它不仅拥有卓越的性能&#xff0c;更以其丰富多样的功能和工具&#xff0c;让开发者在 Python 项目的开发中事半功倍&#xff0c;无论是 Web 开发、科学计算&#xff0c;还是数据分析等领域&#xff0c;都能轻松应对。 在代码编辑方面&#xff0c;PyCharm 的…

C#中的时间数据格式化详解与应用示例

文章目录 1、基本概念基本格式化方法 2、实用的时间格式化方法格式化日期格式化时间格式化时间戳解析日期时间字符串 3、实际应用4、应用示例结论 在软件开发中&#xff0c;时间数据是无处不在的。无论是用户登录时间、数据备份时间&#xff0c;还是日志记录&#xff0c;都需要…

嵌入式学习——硬件(IIC、ADC)——day56

1. IIC 1.1 定义&#xff08;同步串行半双工通信总线&#xff09; IIC&#xff08;Inter-Integrated Circuit&#xff09;又称I2C&#xff0c;是是IICBus简称&#xff0c;所以中文应该叫集成电路总线。是飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备…

Pytorch实战(二)

文章目录 前言一、LeNet5原理1.1LeNet5网络结构1.2LeNet网络参数1.3LeNet5网络总结 二、AlexNext2.1AlexNet网络结构2.2AlexNet网络参数2.3Dropout操作2.4PCA图像增强2.5LRN正则化2.6AlexNet总结 三、LeNet实战3.1LeNet5模型搭建3.2可视化数据3.3加载训练、验证数据集3.4模型训…

在 Postman 中使用 Body 进行 POST 请求

Postman 是开发者日常工具箱中不可缺少的一部分&#xff0c;特别是在 API 开发和调试环节中。 为什么使用 POST 请求 POST 请求用于向服务器发送数据&#xff0c;这些数据通常被处理后存储。与 GET 请求不同&#xff0c;POST 请求将数据嵌入请求体&#xff08;Body&#xff0…

最细最有条理解析:事件循环(消息循环)是什么?进程与线程的定义、关系与差异

目录 事件循环&#xff1a;引入 一、浏览器的进程模型 1.1、什么是进程&#xff08;Process&#xff09; 1.2、什么是线程&#xff08;Thread&#xff09; 1.3、进程与线程之间的关系联系与区别 二、浏览器有哪些进程和线程 2.1、浏览器的主要进程 ①浏览器进程 ②网络…

Vue 快速入门案例

步骤一&#xff1a;引入vue.js文件 添加<script>标签并标明路径 步骤二&#xff1a;定义Vue对象 el Vue接管区域 data 定义数据模型 步骤三&#xff1a;编写视图层的展示 v-model 绑定数据模型 {{要展示的数据模型}} 运行效果 总结 文本框里的值&a…

顺序表(C语言详细版)

1. 线性表 线性表(lina list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串...... 线性表在逻辑上是线性结构&#xff0c;也就是说连续的一条直线。但是在物理结构上并…

进程,线程,虚拟内存,交换技术

参考资料&#xff1a; 参考视频1https://www.bilibili.com/video/BV1Hs421M78w/?spm_id_from333.999.0.0&vd_source97411b9a8288d7869f5363f72b0d7613 参考视频2https://www.bilibili.com/video/BV1jE411W7e8/?spm_id_from333.337.search-card.all.click&vd_source…

动手学深度学习5.6 GPU-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记&#xff0c;以及对课后练习的一些思考&#xff0c;自留回顾&#xff0c;也供同学之人交流参考。 本节课程地址&#xff1a;17 使用和购买 GPU【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址&#xff1a;5.6. GPU —…

STM32第十四课:低功耗模式和RTC实时时钟

文章目录 需求一、低功耗模式1.睡眠模式2.停止模式3.待机模式 二、RTC实现实时时钟1.寄存器配置流程2.标准库开发3.主函数调用 三、需求实现代码 需求 1.实现睡眠模式、停止模式和待机模式。 2.实现RTC实时时间显示。 一、低功耗模式 电源对电子设备的重要性不言而喻&#xff…

springboot校园购物网站APP-计算机毕业设计源码041037

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

以太网常用协议——ARP协议

文章目录 一、 ARP协议与MAC层1.TCP/IP协议2. MAC地址3. ARP映射4. ARP请求和ARP应答 二、以太网帧格式三、ARP协议1. 以太网ARP通信测试&#xff1a; 以太网使用的协议很多&#xff0c;常用的有ARP、UDP等。 再介绍具体协议之前需要先知道一些基本的概念&#xff1a; 一、 AR…

生产环境部署与协同开发-Docker(原创超全)

关闭防火墙 systemctl stop firewalld.service 关闭SELinux vim /etc/selinux/config 查看yum支持的包并安装docker引擎 yum listyum install -y docker 启动docker设置docker自启动测试docker是否安装成功&#xff1f; systemctl start dockersystemctl enable dockerdoc…

HCIE实验这样玩太高级了吧?实现FRR+BFD+OSPF与BGP的联动

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 晚上好&#xff0c;我的网工朋友。 今天搞个HCIE实验玩玩&#xff0c;上回分享了个张总讲解的防火墙配置实验思路&#xff0c;后来还特地搞了个视…

【电路笔记】-A类放大器

A类放大器 文章目录 A类放大器1、A类放大器概述2、A类放大器基本通用发射极配置3、变压器耦合配置4、总结在 放大器类型简介的文章中,我们介绍了不同类别的放大器。 在本文中,我们将更详细地介绍A类放大器。 在介绍不同的A类放大器配置前,首先的是要记住放大器类别的选择标…