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

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

相关文章

利用Jpom在线构建Spring Boot项目

1 简介 前面介绍了运用Jpom构建部署Vue项目&#xff0c;最近研究了怎么部署Spring Boot项目&#xff0c;至此&#xff0c;一套简单的前后端项目就搞定了。 2 基本步骤 因为就是一个简单的自研测试项目&#xff0c;所以构建没有使用docker容器&#xff0c;直接用java -jar命令…

Java程序设计进阶

Java异常处理机制 异常 异常的最高父类是 Throwable&#xff0c;在 java.lang 包下。 Throwable 类的方法主要有&#xff1a; 方法说明public String getMessage()返回对象的错误信息public void printStackTrace()输出对象的跟踪信息到标准错误输出流public void printSta…

【项目设计】网络对战五子棋(下)

我不再装模作样地拥有很多朋友&#xff0c;而是回到了孤单之中&#xff0c;以真正的我开始了独自的生活。有时我也会因为寂寞而难以忍受空虚的折磨&#xff0c;但我宁愿以这样的方式来维护自己的自尊&#xff0c;也不愿以耻辱为代价去换取那种表面的朋友。 文章目录 一、项目设…

Postman笔记

文章目录 1.安装2.简介和使用流程3 postman使用3.1 测试集与HTTP请求发送HTTP请求和分析响应数据 3.2 发送HTTP请求和分析响应数据3.3 Postman中请求体提交方式3.4 Postman使用之接口测试3.5 使用Postman新建一个mock服务3.6 请求数据的参数化3.7 断言与脚本导出 1.安装 官网地…

DP读书:《openEuler操作系统》(五)进程与线程

进程与线程 进程的概念程序&#xff1a;从源码到执行1. 编译阶段:2. 加载阶段:3. 执行阶段: 程序的并发执行与进程抽象 进程的描述进程控制块1. 描述信息2. 控制信息3. CPU上下文4. 资源管理信息 进程状态1.就绪状态2.运行状态3.阻塞状态4.终止状态 进程的控制进程控制源语1.创…

CrossOver23.6软件激活码怎么获取 CrossOver软件2023怎么激活

CrossOver一款类虚拟机&#xff0c;它的主要功能是在mac系统中安装windows应用程序。其工作原理是将exe格式的windows应用程序安装包安装至CrossOver容器中&#xff0c;并将运行该exe文件所需的配置文件下载至容器中&#xff0c;便能在mac正常运行windows应用程序了。下面就让我…

如何构建一个外卖微信小程序

随着外卖行业的不断发展&#xff0c;越来越多的商家开始关注外卖微信小程序的开发。微信小程序具有使用方便、快速上线、用户覆盖广等优势&#xff0c;成为了商家们的首选。 那么&#xff0c;如何快速开发一个外卖微信小程序呢&#xff1f;下面就让我们来看看吧&#xff01; 首…

【C++入门:C++世界的奇幻之旅】

1. 什么是C 2. C发展史 3. C的重要性 4. C关键字 5. 命名空间 6. C输入&输出 7. 缺省参数 8. 函数重载 9. 引用 10. 内联函数 11. auto关键字(C11) 12. 基于范围的for循环(C11) 13. 指针空值---nullptr(C11)05. 1. 什么是C C语言是结构化和模块化的语言&…

什么是web3.0?

Web 3.0&#xff0c;也常被称为下一代互联网&#xff0c;代表着互联网的下一个重大演变。尽管关于Web 3.0的确切定义尚无共识&#xff0c;但它通常被认为是一种更分散、更开放且更智能的互联网。 以下是Web 3.0的一些主要特征和概念&#xff1a; 1. 去中心化 Web 3.0旨在减少…

人工智能:CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的知识梳理

卷积神经网络&#xff08;CNN&#xff09; 卷积神经网络&#xff08;CNN&#xff09;&#xff0c;也被称为ConvNets或Convolutional Neural Networks&#xff0c;是一种深度学习神经网络架构&#xff0c;主要用于处理和分析具有网格状结构的数据&#xff0c;特别是图像和视频数…

CSS中 通过自定义属性(变量)动态修改元素样式(以 el-input 为例)

传送门&#xff1a;CSS中 自定义属性&#xff08;变量&#xff09;详解 1. 需求及解决方案 需求&#xff1a;通常我们动态修改 div 元素的样式&#xff0c;使用 :style 和 :class 即可&#xff1b;但想要动态修改 如&#xff1a;Element-ui 中输入框&#xff08;input&#x…

Windows与Linux服务器互传文件

使用winscp实现图形化拖动的方式互传文件. 1.下载winscp软件并安装&#xff0c;官方地址&#xff1a; https://winscp.net/eng/index.php 2.打开软件&#xff1a; 文件协议选择scp&#xff0c;输入linux服务器的IP和端口号&#xff0c;然后输入你的用户名和密码就可以登陆了。…

postman打开后,以前的接口记录不在,问题解决

要不这些文件保存在C:\Users\{用户名}\AppData\Roaming\Postman 比如&#xff0c;你目前使用的window登录用户是abc&#xff0c;那么地址便是C:\Users\abc\AppData\Roaming\Postman 打开后&#xff0c;这个目录下会有一些命名为backup-yyyy-MM-ddThh-mm-ss.SSSZ.json类似的文…

渗透攻击漏洞——原型链污染

背景 2019年初&#xff0c;Snyk的安全研究人员披露了流行的JavaScript库Lodash中一个严重漏洞的详细信息&#xff0c;该漏洞使黑客能够攻击多个Web应用程序&#xff0c;这个安全漏洞就是一个“原型污染漏洞”&#xff08;JavaScript Prototype Pollution&#xff09;&#xff…

【分布式】大模型分布式训练入门与实践 - 04

大模型分布式训练 数据并行-Distributed Data Parallel1.1 背景1.2 PyTorch DDP1&#xff09; DDP训练流程2&#xff09;DistributedSampler3&#xff09;DataLoader: Parallelizing data loading4&#xff09;Data-parallel&#xff08;DP&#xff09;5&#xff09;DDP原理解析…

图论06-【无权无向】-图的遍历并查集Union Find-力扣695为例

文章目录 1. 代码仓库2. 思路2.1 UF变量设计2.2 UF合并两个集合2.3 查找当前顶点的父节点 find(element) 3. 完整代码 1. 代码仓库 https://github.com/Chufeng-Jiang/Graph-Theory 2. 思路 2.1 UF变量设计 parent数组保存着每个节点所指向的父节点的索引&#xff0c;初始值为…

Java IDEA controller导出CSV,excel

Java IDEA controller导出CSV&#xff0c;excel 导出excel/csv&#xff0c;亲测可共用一个方法&#xff0c;代码逻辑里判断设置不同的表头及contentType&#xff1b;导出excel导出csv 优化&#xff1a;有数据时才可以导出参考 导出excel/csv&#xff0c;亲测可共用一个方法&…

【多线程】Java如何实现多线程?如何保证线程安全?如何自定义线程池?

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 多线程 Java多线程1. 进程与线程2. 多线程1&am…

人工智能基础_机器学习001_线性回归_多元线性回归_最优解_基本概念_有监督机器学习_jupyter notebook---人工智能工作笔记0040

线性和回归,就是自然规律,比如人类是身高趋于某个值的概率最大,回归就是通过数学方法找到事物的规律. 机器学习作用: 该专业实际应用于机器视觉、指纹识别、人脸识别、视网膜识别、虹膜识别、掌纹识别、专家系统、自动规划、智能搜索、定理证明、博弈、自动程序设计、智能控制…