Firewalld 概述

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.mzph.cn/news/864435.shtml

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

相关文章

以太网基础知识

文章目录 一、以太网(Ethernet)介绍二、协议介绍三、什么是PHY?1.标准接口协议:2.寄存器配置:3.自动协商: 四、时序4.1RGMII接口时序4.1.1 对其模式4.1.2 延时模式(常用) 4.2MDIO接口…

WEB01MySQL安装和数据库

第一天、WEB课程 web课程主要讲三部分内容 数据库 数据库介绍 什么是数据库 数据存储的仓库,其本质也是一个文件系统 数据库会按照特定的格式对数据进行存储,用户可以对数据库中的数据进行增加,修改,删除及查询操作。 数据库…

2024/6/30 英语每日一段

Years of economic and political turbulence have brought stagnation.“In a world where there is more risk and uncertainty, people become reluctant to voluntarily move jobs and find better jobs,” says Manning. At the same time, businesses have cut back on i…

企业互联网建站源码系统 附带完整的安装代码包以及搭建部署教程

系统概述 企业互联网建站源码吸系统是一款集众多先进功能于一身的建站工具。它提供了丰富的模板和组件,允许企业根据自身需求和品牌形象进行个性化定制,快速搭建出具有独特风格的网站。 代码示例 系统特色功能一览 1.用户友好界面:系统采用…

你还搞不懂串口的格式转换问题吗?

相信大多数人在使用串口传输不同单片机之间的数据时都会运到数据格式怎么对应起来的问题,今天我们就来聊聊! 在开始之前我插一个内容,就是不同的单片机之间的电平可能不相同,是不能直接使用杜邦线连接通信的,需要进行电…

带安全启动—Ubuntu系统—手动安装Nvidia驱动

教程1:在启用安全启动的 Fedora 中安装英伟达驱动 教程2:UEFI安全启动模式下安装Ubuntu的NVIDIA显卡驱动 1. 搜索合适的驱动 Nvidia驱动官网 选择这个 驱动(.run)链接 2. 安装必要的软件依赖 CUDA底层用C写的,因此导入编译器 sudo apt i…

ts语法---数据类型,interface和type的用法

ts的数据类型 ts的数据类型自上而下的分级有 第一层 any-任意类型和unknow类型, 第二层 原型链的Object类型, 第三层 js类的类型 第四层 标准的typescript类型 第五层 对应的实例数据类型 第六层 never类型,never表示不合理&#xff0c…

整除分块的题目

链接 思路: 求1到n中的因数个数和等价于求,设x为因子,就是求x在1到n里出现了几次,求1到n里是x的倍数的数有几个,即n/x。需要用整除分块,n/i的值是分块分部的,右端点是n/(n/i)。 代…

Application Studio 学习笔记(3)

一、工具栏按钮 1、panel控件添加工具栏按钮 展开panel控件的Advanced属性并点击Action Data,进入Action Data编辑界面 新增Action Data数据,Sequence设定工具按钮的显示顺序 默认工具按钮会显示在弹出工具栏中 勾选Add to Primary ToolBar后&#xff…

deepin基于apt-mirror同步软件源及构建本地内网源

1.安装apt-mirror sudo apt install -y apt-mirror2.配置apt-mirror(/etc/apt/mirror.list) sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.deepin.bak #备份配置文件 sudo gedit /etc/apt/mirror.list修改如下: deb [trustedyes] https://mirrors.bfsu.ed…

Django学习第一天

Django安装: pip install Django -i https://mirrors.aliyun.com/pypi/simple/ 在需要创建文件的文件目录下写这个命令 django-admin startproject mysite 注意:C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Scripts已加入环境变…

JAVA:Word2Vec的使用

1、简介 Word2Vec是 Google 在 2013 年年中开源的一款将词表征为实数值向量的高效工具, 其利用深度学习的思想,可以通过训练,把对文本内容的处理简化为 K 维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。 Wo…

windows USB设备驱动开发-双角色驱动

在USB的通讯协议中,规定发起连接的一方为主机(Host),接受连接的一方为设备,这可以用U盘插入电脑举个例子,当U盘插入电脑后,电脑这边主动发起查询和枚举,U盘被动响应查询和数据存取。 USB 双角色驱动程序堆…

使用Qt designer辅助开发pyqt应用,如何将自定义组件添加到designer中

背景: 我想要实现列表项的拖拽功能,于是自定义类 MyListWidget 通过Qt designer生成的代码,使用的是原始类型 QListWidget 我需要手动修改 Ui_xxx.py文件: 1.导入MyListWidget 2.将QListWidget替换为MyListWidget #Ui_xxx.pyf…

Generating Diverse Structure for Image Inpainting With Hierarchical VQ-VAE

Jialun Peng1 Dong Liu1* Songcen Xu2 Houqiang Li1 1 University of Science and Technology of China 2 Noahs Ark Lab, Huawei Technologies Co., Ltd.pjlmail.ustc.edu.cn, {dongeliu, lihq}ustc.edu.cn, xusongcenhuawei.com 原文提供代码链接: GitHub - UST…

3款免费宝藏电脑软件,每一个都非常实用

LICEcap LICEcap是一款简洁易用的动画屏幕录制软件,主要功能是将屏幕录像的内容直接保存为高质量(每帧颜色数量可超过256)GIF动态图片格式。该软件安装包轻量级,不到500KB,运行后会以窗口的方式显示在桌面上&#xff…

分布式存储和分布式计算两个哪个更适合作为工作深入方向发展?

有朋友问,分布式存储比如hdfs,ceph,minio,tidb,glusterfs;分布式计算比如Hadoop,spark,flink;它们在实际工作中咋样?具体开发工作是啥?哪个更有发…

财务RPA与数字化转型——财务RPA如何促进企业的数字化转型

在数字化时代,企业面临着推动创新、提高效率的巨大挑战。RPA财务机器人作为智慧财务不可或缺的新动能,不仅能够优化财务流程,还能够在整个企业中引领数字化变革。本文金智维将深入探讨财务RPA如何成为企业数字化转型的战略利器,为…

【哈哈大一上学的全忘了,重开!!】STM32从零入门物联网开发

本笔记资料来源 :STM32物联网入门30步=单片机物联网入门教程 WIFI连接阿里云物联网CubeMXHAL库蓝牙ESP8266杜洋主讲_哔哩哔哩_bilibili IOT:Internet of things 学习目标: 1.掌握洋桃IoT开发板的各功能以及驱动与基本应用 2.掌…

docker 部署jitsi meet

1. 部署环境: 1.1 vm 虚拟机 安装的 centos 7 1.2 centos7安装docker 和 docker-compose 2.docker命令 官网部署文档地址:(文档地址有可能失效) Self-Hosting Guide - Docker | Jitsi Meet 2.1Download and extract the late…