【Linux安全】Firewalld防火墙基础

目录

一、Firewalld概述

二、Firewalld和iptables的关系

三、Firewalld网络区域

1、firewalld防火墙预定义了9个区域:

2、firewalld 数据包处理原则

3、firewalld数据处理流程

4、firewalld检查数据包的源地址的规则

四、Firewalld防火墙的配置方法

1、firewalld 命令行操作管理

1)查

2)增

3)删

4)改

五、Firewalld防火墙案例


一、Firewalld概述

  • 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
  • 支持IPv4、IPv6防火墙设置以及以太网桥
  • 支持服务或应用程序直接添加防火墙规则接口
  • 拥有两种配置模式
    • 运行时配置
    • 永久配置

二、Firewalld和iptables的关系

 netfilter

  • 位于Linux内核中的包过滤功能

     体系

  • 称为Linux防火墙的“内核态

Firewalld/iptables

  • CentOS7默认的管理防火墙规则的工具(Firewalld)
  • 称为Linux防火墙的“用户态

Firewalld和iptables的区别
Firewalldiptables
配置文件

/usr/lib/firewalld/

/etc/firewalld/

/etc/sysconfig/iptables
对规则的修改不需要全部刷新策略,不丢失现行连接需要全部刷新策略,丢失连接
防火墙类型动态防火墙静态防火墙

三、Firewalld网络区域

1、firewalld防火墙预定义了9个区域:

  1. trusted(信任区域):允许所有的传入流量。
  2. public(公共区域):允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的默认区域。
  3. external(外部区域):允许与 ssh 预定义服务匹配的传入流量,其余均拒绝。 默认将通过此区域转发的IPv4传出流量将进行地址伪装,可用于为路由器启用了伪装功能的外部网络。
  4. home(家庭区域):允许与ssh、mdns、samba-client或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。
  5. internal(内部区域):默认值时与home区域相同。
  6. work(工作区域):允许与 ssh、dhcpv6-client 预定义服务匹配的传入流量,其余均拒绝。
  7. dmz(隔离区域也称为非军事区域):允许与 ssh 预定义服务匹配的传入流量,其余均拒绝。
  8. block(限制区域):拒绝所有传入流量。
  9. drop(丢弃区域):丢弃所有传入流量,并且不产生包含 ICMP的错误响应。

2、firewalld 数据包处理原则

激活某个区域,需要先将区域与 源地址或网卡接口 关联绑定(一个区域可以关联绑定多个源地址或网卡接口,一个源地址或网卡接口只能关联绑定一个区域

3、firewalld数据处理流程

firewalld对于进入系统的数据包,会根据数据包的源IP地址或传入的网络接口等条件,将数据流量转入相应区域的防火墙规则。对于进入系统的数据包,首先检查的就是其源地址。

4、firewalld检查数据包的源地址的规则

  1. 源地址关联到特定的区域(即源地址或接口绑定的区域有冲突),则执行该区域所制定的规则。
  2. 源地址未关联到特定的区域(即源地址或接口绑定的区域没有冲突),则使用传入网络接口的区域并执行该区域所制定的规则。
  3. 若网络接口也未关联到特定的区域(即源地址或接口都没有绑定特定的某个区域),则使用默认区域并执行该区域所制定的规则。
     

四、Firewalld防火墙的配置方法

1、firewalld 命令行操作管理

1)查

firewall-cmd --get-default-zone                 查看当前默认区域--get-active-zones                 查看当前已激活的区域--get-zones                        查看所有可用的区域--list-all-zones                   查看所有区域的规则--list-all --zone=区域名           查看指定区域的规则--list-services --zone=区域名      查看指定区域允许访问的服务列表--list-ports --zone=区域名         查看指定区域允许访问的端口列表--get-zone-of-interface=网卡名     查看与网卡绑定的区域--get-icmptypes                    查看所有icmp类型

2)增

firewall-cmd --add-interface=网卡名 --zone=区域名                    给指定区域添加绑定的网卡--add-source=源地址 --zone=区域名                       给指定区域添加源地址--add-service=服务名 --zone=区域名                      给指定区域添加允许访问的服务--add-service={服务名1,服务名2,...} --zone=区域名       给指定区域添加允许访问的服务列表--add-port=端口/协议 --zone=区域名                      给指定区域添加允许访问的端口--add-port=端口1-端口2/协议 --zone=区域名               给指定区域添加允许访问的连续的端口列表--add-port={端口1,端口2,...}/协议 --zone=区域名         给指定区域添加允许访问的不连续的端口--add-icmp-block=icmp类型 --zone=区域名                 给指定区域添加拒绝访问的icmp类型

3)删

firewall-cmd --remove-service=服务名 --zone=区域名  --remove-port=端口/协议 --zone=区域名--remove-icmp-block=icmp类型 --zone=区域名--remove-interface=网卡名 --zone=区域名       从指定区域里删除绑定的网卡--remove-source=源地址 --zone=区域名          从指定区域里删除绑定的源地址

4)改

firewall-cmd --set-default-zone                            修改当前默认区域--change-interface=网卡名 --zone=区域名       修改/添加网卡 绑定给指定区域--change-source=源地址 --zone=区域名          修改/添加源地址 绑定给指定区域
  • 运行时配置
    • 实时生效,并持续至Firewalld重新启动或重新加载配置
    • 不中断现有连接
    • 不能修改服务配置
    • firewall-cmd ....
      firewall-cmd --runtime-to-permanent       将之前的运行时配置都转换成永久配置
  • 永久配置
    • 不立即生效,除非Firewalld重新启动或重新加载配置
    • 中断现有连接
    • 可以修改服务配置
    • firewall-cmd ....  --permanent
      firewall-cmd --reload   或   systemctl restart firewalld

/etc/firewalld/中的配置文件

  • Firewalld会优先使用/etc/firewalld/中的配置,如果不存在配置文件,则使用/usr/lib/firewalld/中的配置
    • /etc/firewalld/:用户自定义配置文件,需要时可通过从/usr/lib/firewalld/中拷贝
    • /usr/lib/firewalld/:默认配置文件,不建议修改,若恢复至默认配置,可直接删除/etc/firewalld/ 中的配置

五、Firewalld防火墙案例

永久生效

富规则
https://blog.51cto.com/u_3823536/2552274

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

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

相关文章

SpringBoot项目热部署-解决html修改后需要重启项目的问题

前言:启动热部署之后修改html无需再次重启项目,每次都要重新重启项目 2022IDEA以下版本 1、打开file->Settings->Compiler,勾选Build project automatically 2、按住ctrlshiftalt/ 选Registry进去吧app.running的勾打上、 2022IDEA及以上

NVIDIA Orin/Jetson 平台+数字同轴GMSL 车载AI视觉方案,应用于车载,机器人等领域

专注于成像和视觉技术于近期正式发布了可适配NVIDIA DRIVE AGX Orin平台的一系列摄像头产品,该产品是自主开发的数字同轴GMSL2摄像头模组,可满足智能汽车的高质量成像需求。 目前,推出可适配于NVIDIA DRIVE AGX Orin平台的摄像头产品一共有11…

Modular military character

角色具有31个模块化骨架网格,每个模块具有多个蒙皮: 3个头(4skins) 3件衬衫(9skins) 3条裤子(9skins) 3只靴子(9skins) 7件战术背心(3skins) 4只手和手臂(2skins) 3顶帽子和头盔(9skins) 2个背包(3skins) 3支步枪(3skins) 模块允许您组装超过200万个不同的…

Oracle按照主键排序分页sql

在Oracle数据库中,当你想要按照主键排序并进行分页查询时,可以使用以下两种方法: 1. 使用 ROWNUM 和子查询 在Oracle 12c及更早的版本中,ROWNUM 是常用的分页方法。但是,因为 ROWNUM 是在结果集产生之前分配的&#…

spring boot 之 集成 druid数据库连接池

spring boot版本:2.3.12.RELEASE MySQL版本:8.0 Druid简介 Druid是阿里开源的一个数据库连接池和SQL查询优化工具,用于提高应用程序对数据库的性能和可扩展性。主要提供的功能:数据库连接池、数据库连接池监控、SQL查询优化、数…

.NET 分享一款多种方式维持权限的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

2024,java开发,已经炸了吗?

网友: 炸的透透的了,坐标南京。 一月底,一个好哥们,双休朝九晚六不加班18K,被裁。 入职不到两年,算是工资和年终奖才赔了6.5W左右。 上周五新公司入职,周六开始加班。现在每周134加班到晚上八…

Unity功能——通过按键设置物体朝左/右旋转(含C#转xlua版)

博文简介: 开发场景:unity的3d场景; 功能:当设定的键被按下时,进行物体朝左/右旋转; 适用范围:本文代码适用于设置3d物体朝左右旋转,也适用于设置UI对象朝左右旋转&#xf…

第22讲:RBD块存储COW克隆解除父子镜像的依赖关系

RBD块存储COW克隆解除父子镜像的依赖关系 1.COW镜像克隆存在的依赖关系 在前面使用copy-on-write机制基于快照做出来的链接克隆,与快照依赖性很强,如果快照损坏或者丢失,那么克隆的镜像将无法使用,使用这个镜像创建的虚拟机也会…

深度学习模型

深度学习模型 深度学习网络模型是人工智能领域的重要分支,它通过模拟人脑神经网络的工作方式来处理数据并识别模式。以下是对深度学习网络模型的一些主要类型的详细概述: 卷积神经网络(Convolutional Neural Network, CNN) 结构&a…

数据库模块名称汇总

1.Oracle。 2.SQLServer。

MyBatis中的Where标签:提升你的SQL查询效率

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 理解MyBatis的Where标签 MyBatis是一款优秀的持久层框架&#xff0c;它提供了许多强大的标签来帮助编写更优雅、高效的SQL语句。其中&#xff0c;<where>标签是使用频率极高的一个&#xff0c;它能够自动处理…

【分别介绍在vue2和vue3下如何使用ElementUI的图标组件,并举例说明】

在Vue 2和Vue 3下使用Element UI的图标组件&#xff0c;其方法和步骤有所不同。以下将分别进行介绍&#xff0c;并给出相应的示例。 Vue 2下使用Element UI的图标组件 安装Element UI 首先&#xff0c;你需要确保已经安装了Vue 2项目。然后&#xff0c;使用npm或yarn安装Eleme…

Mac配置node环境

1.下载nvm(node版本管理工具&#xff0c;同Anaconda对Python的关系&#xff09;。 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash 2.配置vi ~/.zshrc文件&#xff0c;添加如下配置&#xff1a; export NVM_DIR"$HOME/.nvm" [ -…

git生成公钥私钥

如果您在安装 Git 后没有看到 .ssh 目录,这是正常的。.ssh 目录并不是 Git 自动创建的,而是需要您手动创建和配置。 以下是一般的步骤: 打开您的终端或命令提示符。 检查是否已经生成了 SSH 密钥对: ls -al ~/.ssh如果看到 id_rsa 和 id_rsa.pub 文件,说明已经有 SSH 密钥对了…

pytest:指定测试用例执行顺序

在自动化测试中&#xff0c;测试用例的执行顺序有时对测试结果具有重要影响。本文将介绍如何在pytest框架中使用pytest-ordering插件以及Collection hooks来控制测试用例的执行顺序。 方式1&#xff1a; 使用pytest-ordering插件控制执行顺序 1.1 安装pytest-ordering插件 首…

生命在于学习——Python人工智能原理(1.1)

说明&#xff1a;今年学一部分人工智能方向的知识&#xff0c;网安也会穿插&#xff0c;看后续如何将二者结合起来。 一、人工智能的基本知识 1、人工智能的起源 1956年美国达特茅斯学院召开了一个夏季论班&#xff0c;首次提出人工智能的概念。 1950年图灵提出了图灵测试&a…

springboot + Vue前后端项目(第十二记)

项目实战第十二记 1.写在前面2. 整合Echarts2.1 vue安装Echarts2.2 使用Echarts2.3 EchartsController编写2.4 Home.vue编写 总结写在最后 1.写在前面 本篇主要讲解系统整合Echarts 2. 整合Echarts 2.1 vue安装Echarts npm i echarts -S2.2 使用Echarts vue中使用echarts的…

Thinkphp5内核宠物领养平台H5源码

源码介绍 Thinkphp5内核流浪猫流浪狗宠物领养平台H5源码 可封装APP&#xff0c;适合做猫狗宠物类的发信息发布&#xff0c;当然懂的修改一下&#xff0c;做其他信息发布也是可以的。 源码预览 源码下载 https://download.csdn.net/download/huayula/89361685

React项目,结合 Antd 的Upload上传组件实现上传前校验

背景 最近工作中&#xff0c;遇到这样一个需求&#xff1a;在登录首页&#xff0c;开发一个上传文件的功能&#xff0c;用户可以在该页面点击该区域上传文件&#xff0c;但是点击前需要做一些判断&#xff0c;若用户未登录&#xff0c;则直接弹出登录弹框&#xff1b;否则&…