Linux防火墙-4表5链

news2024/9/27 22:35:14

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们经过上小章节讲了Linux的部分进阶命令,我们接下来一章节来讲讲Linux防火墙。由于目前以云服务器为主,而云服务器基本上就不会使用系统自带的防火墙,而是使用安全组来代替了防火墙的功能,可以简单理解安全组就是web版的防火墙,我们主要从以下几个方面来讲解Linux防火墙:

Linux防火墙-什么是防火墙

Linux防火墙-4表5链(本章节)

Linux防火墙-filter表

Linux防火墙-nat表

Linux防火墙-常用命令

Linux防火墙-案例(一)

Linux防火墙-案例(二)

Linux防火墙-小结

我们上一节讲了门卫手里的小本本记录着很多规则,这些规则如果没有统一的规范来管理,就会显得很混乱,如果真有人来访无法快速找到规则,如果规则有冲突怎么办?今天我们就来讲防护墙里面的4表5链,可以通过它来管理所有的小本本里面的规则。

4表

  1. raw 表

    • 作用:主要用于决定是否对数据包进行状态跟踪的豁免处理。

    • 场景示例:在某些情况下,一些特殊的网络应用程序或者服务需要快速处理大量的数据包,并且不希望这些数据包受到 netfilter 状态跟踪机制的影响(因为状态跟踪可能会消耗一定的系统资源和时间),此时就可以在 raw 表中设置相应的规则,将这些特定的数据包标记为不受状态跟踪处理。例如,一些高性能的网络测试工具或者实时性要求极高的网络通信应用,就可以通过 raw 表来优化其网络性能。

  2. mangle 表

    • 作用:用于对数据包进行修改、标记等操作,以便后续的处理和分类。

    • 场景示例:企业网络中可能需要对不同类型的网络流量进行区分和标记,以便进行不同的处理策略。例如,可以使用 mangle 表对来自特定部门的网络流量进行标记,然后在后续的网络设备中根据这些标记进行流量整形(如限制带宽或优先处理)。另外,还可以在 mangle 表中修改数据包的 IP 头部的某些字段,如 TTL(Time To Live)值,以满足特定的网络拓扑或性能需求。

  3. nat 表

    • 作用:主要负责网络地址转换相关的操作,包括源地址转换(SNAT)和目的地址转换(DNAT)。

    • 场景示例:在企业网络中,当内部使用私有 IP 地址的设备需要访问外部网络时,就需要使用 SNAT 将内部设备的私有 IP 地址转换为公共 IP 地址。例如,一个公司内部有多个员工同时访问互联网,通过在 nat 表中设置 SNAT 规则,将他们的私有 IP 地址转换为公司的公共 IP 地址,这样就可以实现多个设备共享一个公共 IP 地址上网。而对于外部网络访问内部服务器的情况,就需要使用 DNAT 将外部网络请求的目标 IP 地址(通常是公共 IP 地址)转换为内部服务器的私有 IP 地址,实现内部服务器的对外提供服务。

  4. filter 表

    • 作用:主要用于过滤数据包,决定是否允许数据包通过或者丢弃。

    • 场景示例:这是最常用的一个表,用于实现基本的防火墙功能。例如,在企业网络中,可以在 filter 表的 INPUT 链中设置规则,阻止来自特定 IP 地址或者特定端口的数据包进入内部网络,以保护内部系统的安全。同时,也可以在 OUTPUT 链中设置规则,限制内部系统向外发送某些类型的数据包,防止敏感信息泄露或者恶意软件传播。在 FORWARD 链中,可以根据企业的网络安全策略,决定是否允许转发某些数据包,实现对网络流量的精细控制。

5链

  1. INPUT 链

    • 作用:用于处理进入本地系统的数据包。

    • 场景示例:当其他设备发送数据到本地 Linux 系统时,这些数据包在经过网络协议栈的初步处理后,会进入 INPUT 链进行进一步的过滤和决策。比如,当你在本地系统上运行一个 Web 服务器,外部用户通过浏览器访问该服务器时,其发送的 HTTP 请求数据包就会进入 INPUT 链。如果 INPUT 链中的规则允许该数据包通过,那么系统才会将其传递给相应的 Web 服务器应用程序进行处理;如果规则阻止了该数据包,那么它就会被丢弃。

  2. OUTPUT 链

    • 作用:主要处理本地系统产生的向外发送的数据包。

    • 场景示例:当本地系统中的应用程序(例如浏览器)发起一个网络请求时,该请求数据包在系统内部经过一系列准备工作后,会进入 OUTPUT 链。在 OUTPUT 链中,可以根据需要对这些数据包进行过滤和修改。比如,企业内部的安全策略可能要求所有从本地系统发出的数据包都必须添加一个特定的标识字段,那么就可以在 OUTPUT 链中设置相应的规则来实现这一功能。当数据包在 OUTPUT 链中完成处理后,才会被发送到网络上。

  3. FORWARD 链

    • 作用:负责处理需要转发的数据包,即那些不是本地系统的目标数据包,但需要通过本地系统转发到其他设备的数据包。

    • 场景示例:在一个作为网络中间设备(如路由器或具备路由功能的 Linux 系统)的场景中,当接收到一个数据包,并且根据路由规则判断该数据包的目标地址不是本地系统本身,而是要转发到其他网络设备时,这个数据包就会进入 FORWARD 链。在 FORWARD 链中,可以根据设定的规则决定是否允许转发该数据包。例如,在一个企业网络中,为了防止内部网络中的某些恶意设备通过转发数据包进行攻击,可以在 FORWARD 链中设置规则,只允许特定源地址和目标地址的数据包进行转发。

  4. PREROUTING 链

    • 作用:在数据包进入路由决策之前进行处理。

    • 场景示例:当一个数据包刚刚进入 Linux 系统的网络接口时,在进行路由判断(即确定数据包的目标地址以及应该将其发送到哪个网络接口)之前,会先进入 PREROUTING 链。在这个链中,可以进行一些数据包的修改和转换操作。比如,网络地址转换(NAT)功能中的目的地址转换(DNAT)通常就在 PREROUTING 链中实现。例如,企业内部的服务器使用私有 IP 地址,通过在 PREROUTING 链中设置 DNAT 规则,可以将来自外部网络的访问请求的目标地址转换为内部服务器的私有 IP 地址,从而实现外部网络对内部服务器的访问。

  5. POSTROUTING 链

    • 作用:在数据包经过路由决策并且即将离开本地系统时进行处理。

    • 场景示例:当本地系统已经完成对数据包的处理,并且根据路由规则确定了数据包的发送出口时,在数据包离开系统之前会进入 POSTROUTING 链。在这个链中,常见的操作是进行源地址转换(SNAT)。例如,在一个企业网络中,内部多个设备使用私有 IP 地址共享一个公共 IP 地址访问外部网络时,就可以在 POSTROUTING 链中设置 SNAT 规则,将内部设备的私有 IP 地址转换为公共 IP 地址,使得数据包能够顺利发送到外部网络。

表与链的关联

  1. raw 表:关联 PREROUTING 和 OUTPUT 链,在这些链中对数据包进行状态跟踪豁免处理等操作。
  2. filter 表:与 INPUT、FORWARD 和 OUTPUT 链相关,在这些链中依据防火墙规则对数据包进行过滤。
  3. nat 表:涉及 PREROUTING、OUTPUT 和 POSTROUTING 链,主要负责网络地址转换相关操作,如目的地址转换(DNAT)在 PREROUTING 链进行前期处理,源地址转换(SNAT)在 OUTPUT 和 POSTROUTING 链分步完成。
  4. mangle 表:涵盖 PREROUTING、INPUT、FORWARD、OUTPUT 和 POSTROUTING 链,在各链中实现数据包的修改、标记等,以满足不同阶段的网络处理需求。

总结

1.我们平时常用的表就是nat表和filter表

2.filter表其实就是一般而言的防火墙功能,用于控制普通流量的进出。

3.net表则主要用户控制网络地址转换,实际上功能就是和我们的路由器功能差不多。

 

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

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

相关文章

反问面试官:如何实现集群内选主

面试官经常喜欢问什么zookeeper选主原理、什么CAP理论、什么数据一致性。经常都被问烦了,我就想问问面试官,你自己还会实现一个简单的集群内选主呢?估计大部分面试官自己也写不出来。 本篇使用 Java 和 Netty 实现简单的集群选主过程的示例。…

JS---获取浏览器可视窗口的尺寸

innerHeight 和 innerWidth 这两个方法分别是用来获取浏览器窗口的宽度和高度&#xff08;包含滚动条的&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&q…

Linux驱动开发(速记版)--高级字符设备进阶

第二十四章 IO 模型引入 24.1 IO 的概念 IO是计算机系统内外数据交换过程&#xff0c;冯诺依曼架构下各部件协同工作。用户输入&#xff0c;CPU处理&#xff0c;结果输出。磁盘IO是内存与磁盘数据交换的核心&#xff0c;对信息交互至关重要。 24.2 IO 执行过程 Linux操作系统…

C++11中智能指针以及标准模板库 My_string My_stack

My_string.h #ifndef MY_STRING_H #define MY_STRING_H#include <iostream> #include <cstring> #include <stdexcept>using namespace std;template<typename T> class My_string { private:T *ptr; // 指向字符数组的指针int size; /…

你的下一台手机会是眼镜吗?RTE 大会与你一同寻找下一代计算平台丨「空间计算和新硬件」论坛报名

周四 Meta 刚公布新一代 AR 眼镜 Orion 后&#xff0c;Perplexity 的 CEO 发了一条状态&#xff1a;「如果你还在做软件&#xff0c;请转型硬件。」 一家估值 30 亿美元的 AI 软件公司 CEO 说出这样的言论&#xff0c;既有有见到「最强 AR 眼镜」Orion 后的激动情绪&#xff0c…

【Redis】持久化机制--RDB和AOF

目录 1. RDB持久化 1.1 触发机制 1.2 流程说明 1.3 RDB文件的处理 1.4 RDB机制演示 1.5 RDB的优缺点 2. AOF持久化 2.1 使用AOF与基本演示 2.2 AOF的工作流程 2.3 文件同步&#xff08;缓冲区刷新策略&#xff09; 2.4 重写机制 2.5 AOF重写流程 2.6 启动时数据恢复 …

基于Diffusion的图像修复方法

基于Diffusion的图像修复方法 本文介绍基于 Diffusion 的几个图像修复的工作。图像修复任务有两种应用的场景&#xff0c;一是图片的某部分真的缺失了&#xff0c;需要修复处这部分内容&#xff1b;二是想要修改图片中的某个部分&#xff0c;更换/新增/删除物体&#xff0c;这…

godot4.2入门项目 dodge_the_creep学习记录

前言 在学习博客Godot4 你的第一个2d游戏中的项目时&#xff0c;遇到了点小问题&#xff0c;记录一下。 官方项目 传送门 问题 怪兽直接从屏幕中间部分冒出来&#xff0c;以及角色出现时位于屏幕外角色被设置的背景图遮挡 解决方法 1.节点的位置没有对齐&#xff0c;正确示例…

李宏毅机器学习2022-HW8-Anomaly Detection

文章目录 TaskBaselineReportQuestion2 Task 异常检测Anomaly Detection 将data经过Encoder&#xff0c;在经过Decoder&#xff0c;根据输入和输出的差距来判断异常图像。training data是100000张人脸照片&#xff0c;testing data有大约10000张跟training data相同分布的人脸…

9.27每日作业

将之前实现的顺序表、栈、队列都更改成模板类 顺序表&#xff1a; list.hpp #ifndef LIST_HPP #define LIST_HPP#include <iostream> #include<memory.h> #include<stdlib.h> #include<string.h> using namespace std;//typedef int T; //类…

nginx常用的性能优化

第一步调整工作进程数&#xff1a; 设置成auto&#xff0c;会自动按照CPU核心数来启动工作进程数&#xff0c;如果设置具体数字&#xff0c;则只会使用指定数量的CPU核心&#xff0c;无法将CPU同一时间都能用得到&#xff0c;所以就不能发挥服务器的最大的性能。 第二步增加进程…

章管家 listUploadIntelligent.htm SQL注入漏洞

漏洞描述&#xff1a; 章管家 listUploadIntelligent.htm 接口处存在SQL注入漏洞&#xff0c;未经身份验证的远程攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息&#xff08;例如&#xff0c;管理员后台密码、站点的用户个人信息&#xff09;之外&#xff0c;甚至在高权限…

基于大数据的高血压人群数据分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

MMD模型及动作一键完美导入UE5-衣服布料模拟(四)

1、给角色刷布料 1、打开角色,通过Window->Clothing打开模型布料窗口 2、选中裙子右键,创建布料数据 3、选择裙子,右键->应用布料数据 4、激活布料画笔,就可以开始绘制布料了 5、调整画笔大小和布料值进行绘制,布料值为0表示刚体

网络安全:保护数字时代的堡垒

网络安全&#xff1a;保护数字时代的堡垒 引言&#xff1a; 在数字化时代&#xff0c;网络安全的重要性日益凸显。它不仅关系到个人隐私保护&#xff0c;还涉及国家安全和经济发展。随着技术的发展&#xff0c;网络安全的威胁也在不断进化&#xff0c;从个人设备到企业网络&am…

2024图纸加密软件集锦|10款好用不踩雷的图纸加密软件推荐!

小李&#xff1a;“老张&#xff0c;最近咱们公司的设计图纸泄密事件频发&#xff0c;真是让人头疼啊&#xff01;你有没有什么好的图纸加密软件推荐&#xff0c;能帮我们加强设计文件的安全性&#xff1f;” 老张&#xff1a;“小李啊&#xff0c;你算是问对人了。随着数字化…

《pyqt+open3d》open3d可视化界面集成到qt中

《pyqtopen3d》open3d可视化界面集成到qt中 一、效果显示二、代码三、资源下载 一、效果显示 二、代码 参考链接 main.py import sys import open3d as o3d from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget from PyQt5.QtGui import QWindow from PyQt5.Qt…

高通Android 12 push framework.jar和service.jar

1、Android framework.jar和service.jar替换注意事项 2、单编 adb push service.jar脚本 如下 adb root adb disable-verity adb remountadb push services.jar system/framework adb push services.jar.prof system/framework adb push oat/arm64/services.art /system/fram…

重磅首发!大语言模型LLM学习路线图来了!

ChatGPT的出现在全球掀起了AI大模型的浪潮&#xff0c;2023年可以被称为AI元年&#xff0c;AI大模型以一种野蛮的方式&#xff0c;闯入你我的生活之中。 从问答对话到辅助编程&#xff0c;从图画解析到自主创作&#xff0c;AI所展现出来的能力&#xff0c;超出了多数人的预料&…

酒店智能门锁SDK接口pro[V10] 对接酒店收银-模块封装C#-SAAS本地化-未来之窗行业应用跨平台架构

一、代码 public class CyberWin_hoteldoor_prousbv10_2024{[DllImport("024.dll", CharSet CharSet.Ansi, CallingConvention CallingConvention.StdCall, EntryPoint "GetDLLVersion")]public static extern int GetDLLVersion(StringBuilder sDllVer…