Linux防火墙-4表5链

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

我们经过上小章节讲了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表则主要用户控制网络地址转换,实际上功能就是和我们的路由器功能差不多。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值