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

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

相关文章

C++函数模板、特例化、非类型参数、类模板、allocator

函数模板 模板对类型能进行参数化成【模板参数】,输入的是类型,生成的是代码。使用的时候,每指定一份类型,模板就会根据类型生成一份新的代码(比如函数模板实例化生成的是【模板函数】),有利于…

深度学习(16)--基于经典网络架构resnet训练图像分类模型

目录 一.项目介绍 二.项目流程详解 2.1.引入所需的工具包 2.2.数据读取和预处理 2.3.加载resnet152模型 2.4.初始化模型 2.5.设置需要更新的参数 2.6.训练模块设置 2.7.再次训练所有层 2.8.测试网络效果 三.完整代码 一.项目介绍 使用PyTorch工具包调用经典网络架构…

redis 主从模式,sentinel 模式配置

编辑 sentinel.xml 和 redis.conf redis.conf 中核心是配置 bind 192.168.64.144 daemonize yes protected-mode no dbfilename redis-6379.rdb #默认dump.rdb replica-read-only yes # 自动2.6副本默认只读,也就是slave只有只读权限 replicationOf myapplicat…

Win10/Win11复制粘贴必须刷新才能显示

问题描述: 新建文件夹或复制粘贴文件时,不管是在桌面还是在其他磁盘中都需要右击刷新一下才显示。比如新建一个文件夹不显示以为没有新建成功,导致重复建了好几个。 解决方法: 使用WinR打开运行,输入regedit&#x…

HCIE-Datacom证书有效期多久?HCIE考试有哪些内容?

如今越来越多的人开始关注并参与到华为认证的学习中来。 其中,华为认证数据通信专家(HCIE-Datacom)作为华为认证体系中的高级认证,备受瞩目。 那么,关于HCIE-Datacom证书的有效期以及HCIE考试的内容,你知道多少呢?下…

PCIe学习笔记(2)错误处理和AER/DPC功能

文章目录 PCIe ErrorAER (Advanced Error Reporting)DPC (Downstream Port Containment) 处理器上错误通常可分为detected和undetected error。Undetected errors可能变得良性(benign),也可能导致系统故障如silent data corruptions (SDC)。Detected errors则又可分…

Flutter面试之渲染流程

Flutter面试中必问的一个面试题就是渲染相关的话题。作为Google在2018年发布的一款跨平台UI框架,使用Dart作为其开发语言,底层使用Skia图形库进行视图渲染,渲染速度和用户体验堪比原生。 Flutter渲染流程 总的来说,Flutter中一帧的渲染可以分为三个过程:请求渲染、绘制和…

MySQL基础学习

MySQL基础 注意:本文的图片截图自尚硅谷MySQL笔记。 一:基本概述: 什么是数据库: 数据库是一种用来存储和管理数据的系统。它是一个组织化的数据集合,可以通过计算机系统进行访问、管理和更新。数据库可以存储各种…

如何使用CloakQuest3r获取受安全服务保护的网站真实IP地址

关于CloakQuest3r CloakQuest3r是一款功能强大的纯Python工具,该工具可以帮助广大研究人员获取和查看受Cloudflare和其他安全服务商保护的网站真实IP地址。 Cloudflare是一种广泛采用的网络安全和性能增强服务,而CloakQuest3r的核心任务就是准确识别隐…

每天一个数据分析题(一百六十)

以下关于代码片段(使用sklearn)的使用和PCA(主成分分析)的描述中,哪项是正确的? A. preprocessing.scale(data)用于对数据进行归一化处理,确保PCA分析前各特征处于同一量级。 B. PCA(n_compon…

怎么在抖音带自己的货?带货方式和带货要求,如下所示

我是王路飞。 不管你是无货源的新手小白,还是有货源的厂家/供应链,想在抖音卖货的话,无非就两种方式:要么开店、要么开直播带货。 看似都是在抖音卖货,但其实这是两条不同的赛道。 这篇文章就给你们聊下想在抖音卖货…

C语言系列13——网络编程基础

网络编程是计算机编程的一个分支,它允许程序在网络中发送和接收数据。本文将深入探讨网络编程的基础,包括Socket编程入门、客户端与服务器端的通信,以及常见网络协议的应用。 目录 写在开始1 Socket编程的基本概念与原理1.1 什么是Socket&…

【Redis】理论进阶篇------Redis的持久化

一、前言 前面学习了Redis的相关的十大数据类型以及用SpringBoot集成我们的Redis的工具代码的书写。从这篇文章开始,就会从Redis相关的一些理论(也是面试和工作的热点知识)如:Redis的持久化、Redis的订阅发布模型、Redis集群环境搭…

用python绘制黄金价格变化曲线

首先你得从mt4把数据导出为csv:mt4如何导出数据-CSDN博客 1、引入必要的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt 2、然后通过pandas载入csv数据 raw pd.read_csv("XAUUSDm1.csv", headerNone, index_colNone, p…

P1024 [NOIP2001 提高组] 一元三次方程求解题解

题目 有形如:这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在−100至100之间),且根与根之差的绝对值≥1。要求由小到大依次在同一…

YOLOv5代码解读[01] train.py

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license import argparse import math import os import random import sys import time from copy import deepcopy from datetime import datetime from pathlib import Path import numpy as np import yaml from tqdm import tqdmim…

文件包含+文件上传漏洞(图片马绕过)

目录 一.文件包含二.文件上传三.图片马四.题目 一.文件包含 将已有的代码以文件形式包含到某个指定的代码中,从而使用其中的代码或者数据,一般是为了方便直接调用所需文件,文件包含的存在使得开发变得更加灵活和方便(若对用户输入…

网络安全-pikachu之文件上传漏洞1

文件上传漏洞是危害极大的,一旦成功,可以获取服务器的最高权限。 pikachu介绍: 文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判…

☀️将大华摄像头画面接入Unity 【1】配置硬件和初始化摄像头

一、硬件准备 目前的设想是后期采用网口供电的形式把画面传出来,所以这边我除了大华摄像头还准备了POE供电交换机,为了方便索性都用大华的了,然后全都连接电脑主机即可。 二、软件准备 这边初始化摄像头需要用到大华的Configtool软件&#…

【知识点】CNN中concat与add的区别

cat操作经常用于将特征联合,多个卷积特征提取框架提取的特征融合或者是将输出层的信息进行融合;而add层更像是信息之间的叠加。 add是在一个特征上增加其语义信息,对最终的图像的分类是有益;cat导致的结果改进可能是由于cat操作通…