Linux CentOS 8(firewalld的配置与管理)


Linux CentOS 8(firewalld的配置与管理)


目录

    • 一、firewalld 简介
    • 二、firewalld 工作概念
      • 1、预定义区域(管理员可以自定义修改)
      • 2、预定义服务
    • 三、firewalld 配置方法
      • 1、通过firewall-cmd配置
      • 2、通过firewall图形界面配置
    • 四、配置 firewalld 的富规则
      • 1、富规则语法
      • 2、富规则相关命令
      • 3、实例


一、firewalld 简介

firewalld(动态防火墙管理器)自身和 iptables 一样,并不具备防火墙的功能,而是需要通过内核的 netfilter 来实现,也就是说 firewalld 和 iptables 的作用都是用于维护规则,而真正使用规则的是内核的 netfilter。只不过 firewalld 和 iptables 的结构以及使用方法不一样。

firewalld 跟 iptables 比起来,firewalld 可以动态修改单条规则,不需要像 iptables 那样,修改了规则后必须全部刷新才可以生效。缺点是每个服务都需要去设置才能放行,因为默认是拒绝,而 iptables 里默认是每个服务是允许,需要拒绝的才去限制。普遍应用于 Rhel7、CentOS7 及之后。且最小化安装的 Linux 系统不会安装 firewalld。

firewalld 只能做和 IP/Port 相关的限制,web 相关的限制无法实现。

二、firewalld 工作概念

1、预定义区域(管理员可以自定义修改)

通过将网络划分成不同的区域,制定出不同区域间的访问控制策略来控制不同程序区域间传送的数据流。一个网卡仅能绑定一个区域,但一个区域可以绑定多个网卡。如表1-1所示的几种不同的预定义区域。

表1-1 预定义区域名称及配置
区域名称默认配置
trusted允许所有数据包传入和数据包流出,lo接口被分配为此区域
home拒绝任何数据包流入,但允许数据包流出和预定义服务(ssh、mdns、ipp-client、sbmclient、dhcpv6-client)的数据包可以流入
work拒绝任何数据包流入,但允许数据包流出和预定义服务(ssh、ipp-client、dhcpv6-client)的数据包可以流入
public拒绝任何数据包流入,但允许数据包流出和预定义服务(ssh、dhcpv6-client)的数据包可以流入。新添加的网卡默认绑定到该区
dmz隔离区域也称为非军事区域。拒绝任何数据包流入,但允许数据包流出和预定义服务(ssh)的数据包可以流入
block阻止所有传入的数据包
drop拒绝所有传入的数据包
internal拒绝任何数据包流入,但允许数据包流出和预定义服务(ssh)的数据包可以流入
external拒绝任何数据包流入,但允许数据包流出和预定义服务(ssh、dhcpv6-client)的数据包可以流入

相应地,firewalld提供了九个区域的配置文件,分别是trusted.xml、home.xml、work.xml 、public.xml、dmz.xml、block.xml、drop.xml、internal.xml、external.xml,他们都保存在“/usr/lib/firewalld/zones/”目录下。

注:默认区域是public,默认区域可以修改。

2、预定义服务

通过预定义服务,可以很方便的允许特定网络的流量通过防火墙,如表1-2所示。

表1-2 预定义服务节选
服务名称配置
ssh本地SSH服务器。到22/tcp的流量。
dhcpv6-client本地DHCPv6客户端。到fe80::/64 IPv6网络中546/udp的流量。
ipp-client本地IPP打印。到631/udp的流量。
samba-client本地Windows文件和打印共享客户端。到137/udp和138/udp的流量。
mdns多播DNS(mDNS)本地链路名称解析。到5353/udp指向224.0.0.251(IPv4)或ff02::fb(IPv6)多播地址的流量。

三、firewalld 配置方法

firewalld的配置方法主要有三种:firewall-config、firewall-cmd和直接编辑xml文件。其中 firewall-config是图形化工具,firewall-cmd是命令行工具。

1、通过firewall-cmd配置

1.1 安装firewalld

[root@localhost ~]# yum install firewalld firewall-config
//firewall-config为图形工具

1.2 启动firewalld

[root@localhost ~]# systemctl start firewalld

1.3 屏蔽服务

[root@localhost ~]# systemctl mask iptables
[root@localhost ~]# systemctl mask ip6tables
[root@localhost ~]# systemctl mask ebtables
//由于iptables、ip6tables、ebtables这三个服务与filrewalld冲突,为防止意外启动,需要屏蔽这三个服务。

1.4 配置文件所在位置

[root@localhost ~]# cd /lib/firewalld/{services,zones}/*.xml
//系统配置文件,尽量不要修改
[root@localhost ~]# cd /etc/firewalld/{services,zones}/*.xml
//用户配置文件

1.5 查看状态

[root@localhost ~]# firewalld-cmd --state

1.6 配置 firewalld

[root@localhost ~]# firewalld-cmd [选项··· ]

默认情况下是修改运行时配置(马上临时生效),如果要修改永久配置,添--permanent选项,但一定要重启才能生效。

zone区域相关命令,如表2-1所示。

表2-1 zone区域命令及作用说明
参数作用
–get-default-zone查询当前默认区域
–set-default-zone=设置默认区域,使其永久生效
–get-active-zones列出当前正在使用的所有区域(具有关联的接口或源)及其接口和源信息。
–get-zones列出所有可用区域
–new-zone=新增区域

服务相关命令,如表2-2所示。

表2-2 services服务命令及作用说明
参数作用
–get-services列出所有预定义服务
–add-service= [–zone=]允许到的流量。如果未提–zone=选项,则将使用默认区域
–remove-service= [–zone=]移除到的流量。如果未提–zone=选项,则将使用默认区域

port端口相关命令,如表2-3所示。

表2-3 port端口命令及作用说明
参数作用
–add-port=<PORT/PROTOCOL> [–zone=]允许到<PORT/PROTOCOL>端口的流量。如果未提–zone=选项,则将使用默认区域
–remove-port=<PORT/PROTOCOL> [–zone=]移除到<PORT/PROTOCOL>端口的流量。如果未提–zone=选项,则将使用默认区域

interface接口相关命令,如表2-4所示:

表2-4 interface接口命令及作用说明
参数作用
–add-interface= [–zone=]将来自的所有流量路由到指定区域,如果未提–zone=选项,则将使用默认区域
–remove-interface= [–zone=]将来自的所有流量路由取消到指定区域,如果未提–zone=选项,则将使用默认区域

source源相关命令,如表2-5所示:

表2-5 source源命令及作用说明
参数作用
–add-source= [–zone=]将来自IP地址或网络/子网掩码的所有流量路由到指定区域。如果未提–zone=选项,则将使用默认区域
–remove-source= [–zone=]将来自IP地址或网络/子网掩码的所有流量路由取消到指定区域。如果未提–zone=选项,则将使用默认区域

其他相关命令,如表2-6所示:

表2-6 其他命令及作用说明
参数作用
–list-all [–zone=]列出的所有已配置接口、源、服务和端口。如果未提–zone=选项,则将使用默认区域。
–reload更新防火墙规则
–version查看版本

1.7 重启firewalld服务

[root@localhost ~]# firewalld-cmd --reload
或
[root@localhost ~]# systemctl restart firewalld

2、通过firewall图形界面配置

2.1 启动图形化界面

通过命令firewalld-config启动图形界面,如图2-1所示:

[root@localhost ~]# firewalld-config

在这里插入图片描述

图2-1 通过命令启动图形界面

通过菜单启动图形界面:应用—杂项—防火墙,如图2-2所示:

在这里插入图片描述

图2-2 通过菜单启动图形界面

2.2 选择配置规则的状态,如图2-3所示:

在这里插入图片描述

图2-3 选择配置规则的状态

注:自定义区域、服务只能在“永久”配置下设置

2.3 在区域内的services、ports、interfaces等选项页设置运行的流量,如图2-4所示:

在这里插入图片描述

图2-4 在区域内设置运行的流量

2.4 在服务内的ports、protocols等选项页设置运行的流量,如图2-5所示:

在这里插入图片描述

图2-5 在服务内设置运行的流量

四、配置 firewalld 的富规则

firewalld 中的富规则表示更复杂的防火墙策略配置,它可以针对系统服务、端口号、原地址和目标地址等诸多信息进行更有针对性的策略配置,优先级在所有的防火墙策略中也是最高的。

1、富规则语法

[root@localhost ~]# man firewalld.richlanguage
rule
  [source]
  [destination]  service|port|protocol|icmp-block|icmp-type|masquerade|forward-port|source-port
  [log]
  [audit]
  [accept|reject|drop|mark]
  
Rule 
rule [family="ipv4|ipv6"]
Source 
source [not] address="address[/mask]"|mac="mac-address"|ipset="ipset"
Destination 
destination [not] address="address[/mask]"
Service 
service name="service name"
Port 
port port="port value" protocol="tcp|udp"
Protocol 
protocol value="protocol value"
Forward-port 
forward-port port="port value" protocol="tcp|udp" to-port="port value" to-addr="address"
Source-port 
source-port  port="port value" protocol="tcp|udp"
[ accept | reject | drop | mark ]

2、富规则相关命令

firewall-cmd 有四个选项用于处理富规则,这些选项都能加上--permanent--zone=<ZONE>组合使用,如表3-1所示:

表3-1 富规则命令及作用说明
参数作用
–add-rich-rule=‘’在指定的区域添加一条富规则。如果未指定区域,则向默认区域中添加
–remove-rich-rule=‘’在指定的区域删除一条富规则。如果未指定区域,则向默认区域中添加
–query-rich-rule=‘’查询富规则是否已添加到指定区域,如果未指定区域,则为默认区域。找到规则返回0,找不到返回1。
–list-rich-rules列出指定区域的所有富规则

3、实例

3.1 在work区域中拒绝172.25.0.11的所有流量

[root@localhost ~]# firewall-cmd --zone=work --add-rich-rule='rule family=ipv4 source address=172.25.0.11 reject'

3.2 允许172.25.0.0网段的主机能够访问http服务

[root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.25.0.0/24 service name=http accept'

3.3 默认public区域对外开放,但拒绝172.16.0.0/24网段通过ssh连接

[root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.25.0.0/24 service name=ssh drop'

3.4 网站禁止ping服务

[root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv4 protocol value=icmp drop'
//drop和reject区别
reject直接拒绝,返回拒绝
drop是丢弃,直到超时

制作成员: 何嘉愉
排版: 裕新
初审: 杨佳佳
复审: 二月二

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在Node.js中使用环境变量或命令行参数来设置HTTP爬虫ip?

首先&#xff0c;定义问题&#xff1a;在 Node.js 应用程序中&#xff0c;我们可以通过环境变量或命令行参数来设置HTTP爬虫ip&#xff0c;以便在发送请求时使用这些HTTP爬虫ip。 亲身经验&#xff1a;我曾经需要为一个项目设置HTTP爬虫ip&#xff0c;以便在发送请求时使用这些…

Claim Proof Bug——Aztec最大的45万美金bug bounty

1. 引言 近期&#xff0c;Aztec Labs通过其Immunefi bug bounty program&#xff0c;发出了其有史以来最大的bug bounty——45万美金&#xff0c;给白帽独立安全研究员lucash-dev&#xff0c;以感谢其所发现的Aztec Connect Claim Proof Bug&#xff0c;基本时间轴为&#xff…

一文2000字从0到1用Jmeter全流程性能测试实战

项目背景&#xff1a; 我们的平台为全国某行业监控平台&#xff0c;经过3轮功能测试、接口测试后&#xff0c;98%的问题已经关闭&#xff0c;决定对省平台向全国平台上传数据的接口进行性能测试。 01、测试步骤 1、编写性能测试方案 由于我是刚进入此项目组不久&#xff0c…

【CSS】包含块

CSS规范中的包含块 包含块的内容&#xff1a; 元素的尺寸和位置&#xff0c;会受它的包含块所影响。 对于一些属性&#xff0c;例如 width, height, padding, margin&#xff0c;绝对定位元素的偏移值&#xff08;比如 position 被设置为 absolute 或 fixed&#xff09;&…

数据类型与运算符-java

数据类型与运算符 1、变量和类型 1.1、整形变量 基本语法格式&#xff1a; int 变量名 初始值;代码示例&#xff1a; int num 10 //定义一个整型变量 System.out.println(num);注意&#xff1a; 1&#xff09;java中&#xff0c;一个int变量占4个字节&#xff0c;和操作…

IDEA 2023.2.2 使用 Scala 编译报错 No scalac found to compile scala sources

一、问题 scala: No scalac found to compile scala sources 官网 Bug 链接 二、临时解决方案 Incrementality Type 先变成 IDEA 类型 Please go to Settings > Build, Execution, Deployment > Compiler > Scala Compiler and change the Incrementality type to …

【Idea】idea启动同一程序不同端口

前言 在idea中配置两个不同端口&#xff0c;同时运行两个相同的主程序。 更多端口配置同理 idea版本:2022.2.3 1.在service中复制一个进程,指定不同端口 右键打开点击 copy Configuration 2.点击Modify option 2. 选择VM option(用于指定新的端口) 页面就会出现下面的指定…

lunar-1.5.jar

公历农历转换包 https://mvnrepository.com/artifact/com.github.heqiao2010/lunar <!-- https://mvnrepository.com/artifact/com.github.heqiao2010/lunar --> <dependency> <groupId>com.github.heqiao2010</groupId> <artifactId>l…

【C++】详解map和set基本接口及使用

文章目录 一、关联式容器与键值对1.1关联式容器&#xff08;之前学的都是序列容器&#xff09;1.2键值对pairmake_pair函数&#xff08;map在插入的时候会很方便&#xff09; 1.3树形结构的关联式容器 二、set2.1set的基本介绍2.1默认构造、迭代器区间构造、拷贝构造&#xff0…

A星算法(A* A Star algorithm)原理以及代码实例,超详细,超简单,大白话谁都能看懂

本文以这篇博主的文章为基础【精选】A*算法&#xff08;超级详细讲解&#xff0c;附有举例的详细手写步骤&#xff09;-CSDN博客 这篇文章的博主做了一个UI界面&#xff0c;但我感觉&#xff0c;这样对新手关注算法和代码本身反而不利&#xff0c;会被界面的代码所干扰。所以笔…

Linux - 进程的优先级 和 如何使用优先级调度进程

理解linux 当中如何做到 把一个PCB 放到多个 数据结构当中 在Linux 当中&#xff0c;一个进程的 PCB 不会仅仅值存在一个 数据结构当中&#xff0c;他既可以在 某一个队列当中&#xff0c;又可以在 一个 多叉树当中。 队列比如 cpu 的 运行队列&#xff0c;键盘的阻塞队列等等…

git教程(1)---本地仓库操作

git教程 git安装-Centos基本操作git initgit config工作区和版本库工作区暂存区/索引版本库 添加文件---场景一git statusgit log查看.git目录结构 添加文件---场景二修改文件版本回退撤销修改场景一只有工作区有code工作区和暂存区有code所有区域都有code并且没有push到远程仓…

实体店做商城小程序如何

互联网电商深入各个行业&#xff0c;传统线下店商家无论产品销售还是服务业&#xff0c;仅靠以往的经营模式&#xff0c;很难拓展到客户&#xff0c;老客流失严重&#xff0c;同时渠道单一&#xff0c;无法实现外地客户购物及线上客户赋能等。 入驻第三方平台有优势但也有不足…

大数据采集技术与预处理学习一:大数据概念、数据预处理、网络数据采集

目录 大数据概念&#xff1a; 1.数据采集过程中会采集哪些类型的数据&#xff1f; 2.非结构化数据采集的特点是什么&#xff1f; 3.请阐述传统的数据采集与大数据采集的区别&#xff1f; ​​​​​​​ ​​​​​​​4.大数据采集的数据源有哪些&#xff1f;针对不同的数…

理解V3中的proxy和reflect

现有如下面试题 结合GeexCode和Gpt // 这个函数名为onWatch&#xff0c;接受三个参数obj、setBind和getlogger。 // obj是需要进行监视的对象。 // setBind是一个回调函数&#xff0c;用于在设置属性时进行绑定操作。 // getlogger是一个回调函数&#xff0c;用于在获取属性时…

C# 压缩图片

.net下跨平台图像处理 https://github.com/mono/SkiaSharp 安装包 skiasharp 效果 代码 ImageCompression.cs using SkiaSharp;namespace ImageCompressStu01 {/// <summary>/// 图片压缩/// </summary>public class ImageCompression{/// <summary>/…

在spring boot+vue项目中@CrossOrigin 配置了允许跨域但是依然报错跨域,解决跨域请求的一次残酷经历

首先&#xff0c;说一下我们的项目情况&#xff0c;我们项目中后端有一个过滤器&#xff0c;如果必须要登录的接口路径会被拦下来检查&#xff0c;前端要传一个token&#xff0c;然后后端根据这个token来判断redis中这个用户是否已经登录。 if (request.getMethod().equals(&qu…

深入了解 Elasticsearch 8.1 中的 Script 使用

一、什么是 Elasticsearch Script&#xff1f; Elasticsearch 中的 Script 是一种灵活的方式&#xff0c;允许用户在查询、聚合和更新文档时执行自定义的脚本。这些脚本可以用来动态计算字段值、修改查询行为、执行复杂的条件逻辑等等。 二、支持的脚本语言有哪些 支持多种脚本…

数据分享 I 地级市人口和土地使用面积基本情况

数据地址&#xff1a; 地级市人口和土地使用面积基本情况https://www.xcitybox.com/datamarketview/#/Productpage?id394 基本信息. 数据名称: 地级市人口和土地使用面积基本情况 数据格式: ShpExcel 数据时间: 2021年 数据几何类型: 面 数据坐标系: WGS84坐标系 数据…
最新文章