Linux CentOS stream 9 firewalld

随着互联网行业快速发展,服务器成为用户部署网络业务重要的网络工具,但随之而来的就是更密集的网络攻击,这给网站带来了很大的阻碍。防火墙作为保障网络安全的主要设备,可以很好的抵御网络攻击。

防火墙基本上使用硬件和软件两种机制来限制流量。可以使用硬件,如电路级网关、代理服务器、应用网关等,来提供深入的保护。亦可以使用软件,如包过滤等手段,允许/禁止流量。如同时使用软硬件进行防护,效果会更好。本文仅讨论软件机制。

从centos7开始,引入firewalld防火墙管理工具,引入区域概念。相较于原版本一直使用的iptables工具,有重大改变。

对于初次接触防火墙管理的读者,只需关注区域、服务、端口、目标和源等概念,全面使用firewalld工具;而对于使用linux老系统、低版本的读者,则只能尽快熟悉"五表五键"等概念,使用iptables管理工具。

PS:centos7系统默认没有安装iptables工具,想训练其使用,需要单独下载、安装。

防火墙底层原理

管理员在用户态,通过防火墙管理工具来设置防火墙的规则,配置在相关文件中。是否应用或启动,由iptables命令接口传递到内核netfilter模块。需要执行时,防火墙的规则由内核中的netfilter模块具体执行。

当数据包经过防火墙时,系统内核会将客户请求逐一与所设置的规则进行匹配,当匹配成功之后,由防火墙执行规则中定义的行为,如放行、阻止、丢弃等。

配置防火墙就是添加、删除、修改这些规则。例如,设置一条规则,拒绝所有的ICMP数据包,设置好该规则之后,该规则就会保存到内核的netfilter模块,之后所有的ICMP数据包都会被拒绝。

防火墙的规则,早期的CentOS 5/6操作系统默认使用iptables工具,从CentOS 7开始,默认使用firewalld工具。

两个管理工具的底层原理在于,iptables从细节入手,从物理层面设置规则,分析网络连接的各个层次,有表有链等。而firewalld从大处着手,从逻辑层面设置规则与要求。区域、目标、源是其核心概念,而关注端口、服务亦具独特视角。

一个系统中只能选择一项管理工具,不能同时使用。原因在于:iptables允许所有流量通过,只限制指定规则的流量;而firewalld则相反,禁止所有流量通过,只允许符合规则的才允许通过。二者原理与手段完全相左。本文主要讨论firewalld的概念与使用。

一、firewalld服务

在CentOS 7中,新引入了firewalld服务,取代了CentOS 6之前的iptables服务。

1.firewalld特点

比较而言,firewalld允许哪些服务可用,哪些端口可用,属于更高一层的防火墙。firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具。它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算),并且拥有两种配置模式:运行时(Runtime)模式和永久(Permanent)模式。

firewalld是一种动态的、用户友好的Linux防火墙管理工具。相较于传统的iptables,firewalld提供了更灵活、更方便的防火墙配置方式,使得管理员能够更容易地管理网络安全策略。

传统的iptables配置可能比较复杂,尤其是对于新手来说。firewalld通过引入概念化的“区域”、“服务”和“端口”等概念,简化了防火墙的配置。管理员无需深入了解iptables的规则语法,只需使用简单的命令和配置文件就能轻松管理防火墙。

2.firewalld核心概念

区域(Zones)

Firewalld引入了"区域"的概念,用于定义不同的网络区域,每个区域可以有不同的防火墙规则。常见的区域包括public、private、work、home等。默认情况下,网络接口会被分配到public区域。

服务(Services)

服务是一组预定义的规则,用于定义允许通过防火墙的特定网络服务。例如,HTTP、SSH等服务都可以被定义为服务,从而简化防火墙规则的配置。

端口(Ports)

端口用于标识网络通信中的特定应用程序。Firewalld允许你通过端口来控制流入或流出的数据包。可以打开或关闭特定端口,也可以定义自定义端口。

源和目标

firewalld允许你根据数据包的来源和目标来定义规则。这使得你可以限制特定IP地址或地址范围的访问,增强了网络安全性。

3.使用方式

a.firewall-cmd

firewall-cmd是firewalld的字符界面管理工具

可以通过远程连接工具,配置防火墙规则。

b.firewall-config

firewall-config是firewalld的图形用户界面管理工具

在系统桌面中,命令行执行firewall-config命令,打开firewalld的图形用户界面管理工具。

如用远程连接工具,如xshell,执行命令firewall-config,将不能打开图形管理工具,提示在windows系统中安装xmanager,可以直接打开该工具且配置防火墙规则。

c.修改firewalld配置文件

firewalld的配置文件分为主配置文件和区域/服务/端口配置文件。

主配置文件位于/etc/firewalld/firewalld.conf,包含一般的Firewalld设置,如默认区域等。

每个区域都有一个对应的配置文件,位于/etc/firewalld/zones/目录下。这些文件包含特定区域的防火墙规则。

服务配置文件位于/etc/firewalld/services/目录下,定义了预定义服务的防火墙规则。

4.管理工具关系

现有防火墙管理手段的基本框架如下,供参考。

二、命令语法

在三种使用firewalld的方法中,我们重点讨论firewall-cmd。

1.启动firewalld

CentOS Stream 9操作系统默认开启了firewalld服务,用户可以使用systemctl命令查看firewalld服务状态。

2.命令格式

firewalld命令格式简单:

        firewall-cmd [options..]

firewall-cmd命令常用选项

参数

含义

--get-default-zone

查询默认的区域名称

--set-default-zone=区域名称

设置默认的区域,使其永久生效

--get-zones

显示可用的区域

--get--services

显示预先定义的服务

--get-active-zones

显示当前正在使用的区域与网卡名称

--add-source=

将源自此IP或子网的流量导向指定的区域

--remove-source

不再将源自此IP或子网的流量都导向某个指定区域

--add-service=服务名

设置默认区域允许该服务的流量

--add-port=端口号/协议

设置默认区域允许该端口的流量

--remove-service=服务名

设置默认区域不再允许该端口的流量

--add-interface=网卡名称

将源自该的所有流量都导向某个指定区域

--change-interface=网卡名称

将某个网卡与区域进行关联

--list-all

显示当前区域的配置参数、资源、端口以及服务等信息

--list-all-zones

显示所有区域的配置参数、资源、端口以及服务等信息

--reload

让永久生效的配置规则立即生效,并覆盖当前的配置规则

--panic-on

开启应急状况模式

--panic-off

关闭应急状况模式

3.常见区域

firewalld常见区域及相应策略规则

区域

策略

trusted

允许所有数据包

home

拒绝流入的流量,除非与流出的流量相关。若流量与ssh、mdns、ipp-client、amba-client、dhcpv6-client服务相关,则允许流量通过

internal

等同于home区域

work

拒绝流入的流量,除非与流出的流量相关,若流量与ssh、ipp-client、dhcpv6-client相关,则允许流量通过

public

拒绝流入的流量,除非与流出的流量相关,若流量与ssh、dhcpv6-client服务相关,则允许流量通过

external

拒绝流入的流量,除非与流出的流量相关,若流量与ssh服务相关,则允许流量通过

dmz

拒绝流入的流量,除非与流出的流量相关,若流量与ssh服务相关,则允许流量通过

block

拒绝流入的流量,除非与流出的流量相关(阻断)

drop

拒绝流入的流量,除非与流出的流量相关(丢弃)

4.帮助信息

firewalld命令众多,一般可以通过帮助查看详细使用方法。

5.模式选择

firewalld配置的防火墙策略,分为运行时(Runtime)模式、永久(Permanent)模式两种。

默认的是运行时(Runtime)模式,配置的策略便会立即生效,但是,系统一旦重启就会失效。

永久生效(Permanent)模式,可以使firewalld配置永久生效,但是,此模式需要重启系统,或者手动执行firewall-cmd --reload命令,配置的策略才会立即生效。

三、使用技巧

1.命令应用别名

firewalld命令比较复杂,也不易录入,可以设置别名,加快录入,并确保正确无误。建议如下:

        alias f=firewall-cmd

        alias fz='firewall-cmd --zone=public'

        alias fp='firewall-cmd --permanent'

        alias fl='firewall-cmd --list-all'

        alias fr='firewall-cmd --reload'

2.简写参数/选项

firewalld命令使用中,系统支持简写。这是系统一大特点,各版本都可应用。

一般是用单词的前三个字母。

        --state   简写  --st[ate]

        --masquerade  简写  --mas

        --permanent  简写  --per

        --list-service  简写  --list-ser

        --remove-masquerade  简写  --remove-mas

        --add-service  简写  --add-ser

3.补全

正常使用firewall-cmd命令录入参数时,可以按Tab键补全命令,按两次,可以提示可选择的内容。

如使用别名,不再支持Tab键补全。

4.符号使用

a.空格

在使用firewalld命令中,可以用空格代替=号

执行上述命令时,可用空格代替=号,功能相同。

了解这一特性后,可用空格代替命令中的=号,录入时相对容易些。

b.双引号

在配置富规则时,根据习惯,可以加双引号。

配置一条富规则,拒绝192.168.100.2主机的ssh服务:

firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.2" service name="ssh" reject'

第1次添加时命令中加双引号。查看效果后删除该富规则。

firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.100.2" service name="ssh" reject'

第2次添加时不加双引号,效果相同

firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.100.2 service name=ssh reject'

c.=号

我们添加一个httpd服务,把=号替换为空格,结果相同

firewall-cmd  --add-service http

d.-

添加多个端口时,开始端口加上“-”结束端口:

四、案例

首先使用systemctl命令,查看firewalld(防火墙)的状态(status)、重新启动(restart)、临时关闭(stop)、临时开启(start)防火墙服务。

1.查看使用区域

查看firewalld服务当前所使用的区域

命令:

        firewall-cmd --get-default-zone

效果:

2.查看所有信息

查看firewalld当前区域的配置参数、资源、服务等信息

命令:

        firewall-cmd --list-all

效果:

3)查看单项信息

查看public区域是否允许https服务和FTP协议数据包通过

命令:

        firewall-cmd --zone=public --query-service=https

        firewall-cmd --zone=public --query-service=ftp

效果:

4)永久设置

将https设置为永久允许,并立即生效

命令中添加选项--permanent,为永久设置;没有此选项,为临时设置。

命令:

        firewall-cmd --permanent --zone=public --add-service=https     #设置规则

        firewall-cmd –reload     #立即生效

        firewall-cmd --zone=public --query-service=https

效果:

将http设置为永久允许,并立即生效

命令:

        f --zone public --add-ser http --per #--per位置任意

        f –rel #使规则生效,用命令别名和简写

        f --list-ser #查看所有允许的服务

效果:

5)设置端口

将10000端口的数据包设置为允许,仅限当前有效

命令:

        firewall-cmd --list-port #默认查看当前的区域

        firewall-cmd --zone=public --add-port=10000/tcp

        firewall-cmd --list-port #不加--zone=public时,默认查看当前的区域

效果:

6)设置富规则

配置一条富规则,拒绝172.168.1.0/24网段的所有用户访问本机的ssh服务

命令:

        firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source  address="192.168.1.0/24" service="ssh" reject'

效果:

基础规则是设置前几项,而最后一项是富规则。

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

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

相关文章

虚拟机 安装 centos7 带桌面

虚拟机 安装 centos7 流程 https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/ CentOS-7-x86_64-DVD-2009.iso vmware 安装 centos7 的时候, 如果 不是 选择的 稍后 安装操作系统 , 会不让你选择配置选项,自动帮你把系统…

高数总结(6

目录 1.总结:小结: 1.总结: 小结: 关注我给大家分享更多有趣的知识,以下是个人公众号,提供 ||代码兼职|| ||代码问题求解|| 由于本号流量还不足以发表推广,搜我的公众号即可:

RK3588平台开发系列讲解(视频篇)ffmpeg 的移植

文章目录 一、ffmpeg 介绍二、ffmpeg 的组成三、ffmpeg 依赖库沉淀、分享、成长,让自己和他人都能有所收获!😄 📢ffmpeg 是一种多媒体音视频处理工具,具备视频采集功能、视频抓取图像、视频格式转换、给视频加水印并能将视频转化为流等诸多强大的功能。它采用 LGPL 或 G…

【办公类-16-07-03】“2023下学期 周计划-户外游戏 每班1周五天相同场地,6周一次循环、有场地、贴墙版”(python 排班表系列)

作品展示——有场地说明 背景需求: 前期做了一份“贴周计划”用的班主任版的户外游戏安排表(中X班19周,没有场地) 【办公类-16-07-02】“2023下学期 周计划-户外游戏 每班1周五天相同场地,6周一次循环”(…

React近一年的发展趋势与挑战,以及距离v19版本的进展情况

大家好,我是宝哥 React近一年的发展趋势和挑战主要体现在以下几个方面: 版本发布频率下降:React自上一次版本更新以来,已经有一年多没有发布新的稳定版本,这引起了社区的广泛关注和讨论。最后一次更新是在2022年6月&…

从入门到精通:AI绘画与修图实战指南

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在这篇文章中,我们将深入探讨如何利…

面试官:如何设计幂等性接口

什么是幂等性? 所谓幂等性,就是一次操作和多次操作同一个资源,所产生的影响均与一次操作的影响相同。 "幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 幂等函数&…

ubuntu解决“E: Unable to locate package lrzsz“

今天在ubuntu上安装rzsz包时报错,提示无法定位包,提示如下 出现这个问题是因为apt的源没有更新,我们直接说解决办法 把下面的命令执行一遍即可 sudo add-apt-repository main sudo add-apt-repository universe sudo add-apt-repository re…

物流EDI:Verizon EDI 需求分析

作为物流行业的企业,Verizon与其供应商之间通过EDI来传输业务单据。在与Verizon建立EDI连接时,需要参考EDI 指南、采购订单条款和条件以及运输路线指南这三个文档。 点击此链接,获取上述的三个文档 Verizon供应商可以通过上述链接找到用于处…

ThreadLocal用法

一.项目需求 在我们进行新增用户时,会涉及到创建人和修改人字段如何获取的问题.我们不可能再后端将这两个字段写成静态的值. 1.1 解决方案 通过某种方式动态获取当前登录员工的id 员工登录成功后会生成JWT令牌并响应给前端: /*** 员工管理*/ RestController RequestMapping(&q…

【软考问题】-- 2 - IT知识 - 信息技术发展

一、基本问题 2 - IT知识 - 信息技术发展 问题1:数据库根据存储方式可以分为什么? 数据结构模型 层次模型:最早使用的 一种模型,它用 “树 ” 结构表示实体集之间的关联,其中实体集(用矩形框表示)为结点,而树中各结点之间的连线表示它们之间的关联。格式化数据模型 网状…

CDC 整合方案:MySQL > Flink CDC > Kafka > Hudi

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…

力扣145 二叉树的后序遍历 Java版本

文章目录 题目描述递归解法代码 非递归解法思路代码 题目描述 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[3,2,1] 示例 2: 输入:root [] 输出…

log4j2的使用

基础用法 1. pom文件导入依赖 junit用来做测试 <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.5</version></dependency><dependency><groupId>org.…

第五次作业(防御安全)

需求: 1.办公区设备可以通过电信链路和移动链路上网&#xff08;多对多的NAT&#xff0c;并且需要保留一个公网IP 不能用来转换&#xff09; 2.分公司设备可以通过总公司的移动链路和电信链路访问到DMZ区的http服务器 3.分公司内部的客户端可以通过公网地址访问到内部的服务…

两大公示 总结先行先试经验,提炼可复制推广成果

2024年1月18日&#xff0c;水利部官网发布《数字孪生水利建设典型案例名录&#xff08;2023年&#xff09;》&#xff08;共28项&#xff0c;排名不分先后&#xff09;、《数字孪生水利建设十大样板名单&#xff08;2023年&#xff09;》&#xff08;排名不分先后&#xff09;等…

从数据库中读取文件导出为Excel

使用的库&#xff08;org.apache.poi&#xff09; 在poi包中有Apache提供的各种分类文件&#xff0c;如下 结构功能HSSF读写Microsoft Excel XLS文件XSSF读写Microsoft Excel OOXML XLSX文件HWPF读写Microsoft Word DOC文件HSLF读写Microsoft PowerPoint文件 下面以XSSF为例&…

代码随想录算法训练营29期|day55 任务以及具体安排

第九章 动态规划part12 309.最佳买卖股票时机含冷冻期 class Solution {public int maxProfit(int[] prices) {//0代表持股票&#xff0c;1代表保持卖出状态&#xff0c;2代表卖出股票。3代表冷冻int[][] dp new int[prices.length][4];dp[0][0] -prices[0];for(int i 1 ; …

Redis事务长什么样?一文带你全面了解

一、概述 1.1、Redis事务简介 在 Redis 中&#xff0c;事务是一组命令的有序队列&#xff0c;Redis 使用 MULTI、EXEC、WATCH 和 DISCARD 等命令来实现事务。事务的执行是原子的&#xff0c;要么所有命令都执行成功&#xff0c;要么所有命令都不执行。事务中的命令在 EXEC 执行…

Avalonia学习(二十五)-系统界面

目前项目式练习&#xff0c;界面内容偏多&#xff0c;所以不给大家贴代码了&#xff0c;可以留言交流。此次为大家展示的是物联项目的例子&#xff0c;仅仅是学习&#xff0c;我把一些重点列举一下。 界面无边框 同前面 treeview控件 通过treevie控件导航 tabcontrol控件 …