FW旁挂实验

旁挂部署的三大核心优点

1. 高可靠性与业务零中断

  • 核心优势不对原始业务流量造成任何中断风险。

  • 原理 :防火墙仅接收流量的一个副本 。即使防火墙断电、重启、故障、升级,业务流量依然在核心交换机上直通,用户无感知。

  • 适用场景:对业务连续性要求极高的环境,如金融交易系统、核心生产网。在无法容忍任何网络抖动或中断的场合,这是首选方案。

2. 部署灵活,无需改动网络拓扑

  • 核心优势无需切割网络,实施简单快捷。

  • 原理 :通常只需在核心交换机上配置端口镜像(SPAN)流镜像,将需要分析的流量引向防火墙的接口即可。不需要更改现有路由、IP地址或物理线路。

  • 适用场景 :网络已经稳定运行,希望在不改变现有结构的前提下增加安全监测能力。也适用于临时性安全审计。

3. 性能压力小,可专注于分析

  • 核心优势 :防火墙无需处理所有流量的转发性能压力,可以更专注于深度分析。

  • 原理 :串联防火墙的吞吐量(Throughput)是关键瓶颈,需要处理线速转发。而旁挂防火墙的性能瓶颈在于检测能力(如每秒新建连接数CPS、应用识别性能),转发压力小,可以开启更多深度检测功能(如IPS、AV、DLP)而不担心成为网络瓶颈。

  • 适用场景 :用于入侵检测系统、高级威胁分析、数据泄密监控等需要深度包检测但对实时阻断要求不高的场景。


使用PBR策略路由强行将流量推到防火墙,这个实验要做到的就是非首包要创建回话,还有就是安全策略要放。


实验说明

bash 复制代码
[外网客户端] --- [路由器] --- [内部服务器]
                     |
                     |--- [旁挂防火墙](镜像口)

关键配置

  1. 路由器上配置了端口镜像,将 "外网到内网" 的流量镜像给防火墙

  2. 防火墙开启了状态检测(默认就是开启的)

  3. 外网客户端访问内部服务器(比如HTTP)

二、流量路径详解(这是理解的关键!)

让我们追踪一个TCP连接:

第1步:外网发送SYN包

bash 复制代码
外网客户端 → 路由器 → 内部服务器
                ↓(镜像)
               防火墙看到SYN包

防火墙行动 :创建会话,状态=SYN_SENT,并期待看到 SYN-ACK

第2步:服务器回复SYN-ACK包

bash 复制代码
内部服务器 → 路由器 → 外网客户端

问题来了 :这个SYN-ACK包是从内网到外网的方向!

  • 如果您的镜像配置是 inbound(从外网接口进入路由器的流量)

  • 那么SYN-ACK"出"外网接口 的流量,不会被镜像!

  • 防火墙完全看不到这个包!

第3步:外网发送ACK包

bash 复制代码
外网客户端 → 路由器 → 内部服务器
                ↓(镜像)
               防火墙看到ACK包

防火墙的逻辑判断

  1. 查找会话表:找到状态=SYN_SENT的会话

  2. 状态机检查:"按照规则,我应该收到SYN-ACK,但现在收到了ACK"

  3. 结论:这是一个非法包!可能是个攻击!

  4. 行动 :丢弃这个包,不为它创建新会话

三、为什么"无法连接"?

虽然实际流量(外网↔服务器)是通的,但防火墙的拦截动作会影响后续处理

如果防火墙只是旁挂监控

  • 它无法阻止真实流量(因为流量不经过它)

  • 但它的入侵检测(IPS)模块可能会因为这个"非法状态"而产生告警

  • 在实验界面中,您可能看到大量"TCP非首包攻击"告警


路由器上配置

bash 复制代码
int g0/0/2
ip address 172.16.1.254 24  # 连接服务器

int g0/0/1
ip address 10.1.1.254 24    # 连接防火墙

int g0/0/0
ip address 192.168.1.254 24 # 连接客户端

防火墙上配置

bash 复制代码
user-interface console 0
idel-timeout 0    # 设置不超时


firewall zone trust
add interface g1/0/1

interface g1/0/1
ip address 10.1.1.1 24

# 指定路由 把数据丢回给路由器
ip route-statiic 0.0.0.0 10.1.1.254


int g1/0/1
service-manage ping permit  # 为了测试方便,放开Ping

现在路由器上去ping服务器,防火墙,客户端,都是能通的

服务器上开启http功能

客户端去访问

现在说明服务器跟客户端的直接访问是没有问题的

流量规划

客户端是代表内网区域,内部区域流量出去的时候不过防火墙,当服务器的回来的流量是过防火墙的。

这样营造出来回路径不一致的场景。

主要的配置在路由器连接服务器的接口 GE0/0/2上做PBR,把外部服务器过来的流量丢给防火墙,不能通过直连路由直接回给客户端。

这里也不能在路由器上写主机路由丢给防火墙,否则会产生路由黑洞。

特性 主机路由(静态路由) PBR(策略路由)
控制粒度 基于目的地址,全局生效 基于ACL多条件,可精确匹配
影响范围 影响路由器所有接口的流量 只影响应用了PBR的接口的入方向流量
避免黑洞 无法避免,返回流量会走最优路由 可以避免,通过不在回程接口应用PBR
实现U型引流 困难,容易造成路由环路 容易,两个接口分别配置PBR即可
灵活性 高,可基于协议、端口、时间等

路由器上配置(MQC模块化命令行)

bash 复制代码
# 使用acl把流量匹配处理
acl number 3000
# 只要是源端口是80,172.16.1.1访问192.168.1.1的流量都会被匹配掉
rule permit tcp source 172.16.1.1 0 destination 192.168.1.1 0 source-port eq 80


# 配置流分类
traffic classifier http
if-match acl 3000

# 流行为
traffic behavior http
redirect ip-nexthop 10.1.1.1

traffic policy http
classifier http behavior http


# 运用于外部流量进来的接口
int g0/0/2
traffic-policy http inbound

从内部client发出的访问请求的流量直接穿过路由器,服务器接收到请求后,回包流量经过路由器,然后推给防火墙,防火墙上配置了默认路由,又会丢回给路由器。然后路由器又会将就来回给客户端。

还需要重点的一步:防火墙上关闭状态监测

bash 复制代码
undo firewall session link-state check

防火墙关闭了状态监测,仍然会执行:安全策略检查、NAT、入侵检测、内容过滤

失去的功能:

  1. TCP状态验证:不检查三次握手、序列号

  2. 协议一致性检查:不验证协议是否符合RFC标准

  3. 防欺骗保护:可能接受伪造的ACK、RST包

  4. 连接完整性:不跟踪连接建立和拆除过程

在路由器连接防火墙的接口上可以抓到三次握手的第二个包

这个80 -- > 2050 就是三次握手的第二个包

查看防火墙回话

由于模拟器的原因,http服务留下来的回话看的可能并不明显,改用ICMP去做防火墙旁挂实验

路由器的PBR修改

bash 复制代码
# 使用acl把流量匹配处理
acl number 3000

# 推icmp的流量
rule permit icmp source 172.16.1.1 0 destination 192.168.1.1 0


# 配置流分类
traffic classifier http
if-match acl 3000

# 流行为
traffic behavior http
redirect ip-nexthop 10.1.1.1

traffic policy http
classifier http behavior http


# 运用于外部流量进来的接口
int g0/0/2
traffic-policy http inbound

现在在client上ping服务器

查看防火墙会话

箭头的方向参照的是第一个包的方向


查看会话表老化时间

bash 复制代码
display firewall session aging-time

配置安全策略

bash 复制代码
secutiry-policy
# 区域内部安全检查开启,那么相同区域内的流量默认是拒绝的
default packet-filter intrazone enable
# 不能够随便放行相同安全区域的流量

现在配置了这个安全策略之后,客户端跟服务器就没法正常建立连接了。

这是华为防火墙的一个重要全局安全开关。

防火墙上配置安全策略进行流量放行

bash 复制代码
security-policy
rule name http
source-zone trust
destination-zone trust
source-address 172.16.1.1 32
destination-address 192.168.1.1 32
service http
action permit

先执行的是http,没有匹配到才执行default packet-filter intrazone

现在还是没法让client跟服务器正常建立连接,因为有个地方写错了

service http 这个命令匹配的是目的端口80

但是服务器回的流量是源端口

防火墙上配置

bash 复制代码
ip service-set abc type object
service protocol tcp source-port 80  # 指定源端口是80

华为防火墙中的服务对象(Service-Set)配置 ,用于定义一组服务(端口、协议)供安全策略引用

修改防火墙的安全策略

bash 复制代码
security-policy
rule name http
source-zone trust
destination-zone trust
source-address 172.16.1.1 32
destination-address 192.168.1.1 32
service abc  # 使用服务级的方式
action permit

undo service http

现在客户端就能跟服务器正常建立连接了


使用tracert来分析,服务器跟客户端都换成PC,因为要使用tracert

PC的tracert是ICMP,路由器tracert是UDP

系统/设备 命令 默认使用的协议
Windows tracert ICMP
Linux/Unix traceroute UDP
思科/华为路由器 traceroute UDP(默认)

第一个是PC,发到路由器,TTL超时

第二个tracert,其实已经发到外部PC了,但是流量要绕到防火墙

由于防火墙上没有放行ICMP,可以第二个tracert一直不通

现在在防火墙上放行ICMP

现在两次tracert都能通了


现在分析从外部PC发起的tracert

第一个tracert

路由器上也把ICMP的包重定向给防火墙了

第二个tracert

主要是过防火墙的时候,防火墙没有回PC4

现在在防火墙上开启ICMP超时

现在PC4的tracert就都能追踪了


知识点:放行一段范围的IP地址

还可以建立地址集

可以调用地址集

相关推荐
talenteddriver2 小时前
web: jwt令牌构成、创建的基本流程及原理
java·开发语言·python·网络协议·web
乾元2 小时前
AI 在云网络(VPC / VNet)部署的编排与安全对齐——从“手工堆资源”到“意图驱动的网络生成”(含 Terraform 工程化)
运维·网络·人工智能·网络协议·安全·云计算·terraform
盛满暮色 风止何安2 小时前
负载均衡的部署模式
运维·服务器·网络·网络安全·负载均衡
程序员三明治4 小时前
【重学计网】TCP如何保证可靠传输?怎么保证可靠性?可靠传输的原理?
java·网络·后端·网络协议·tcp/ip·tcp·可靠传输
渡我白衣4 小时前
多路转接之epoll:理论篇
人工智能·神经网络·网络协议·tcp/ip·自然语言处理·信息与通信·tcpdump
sweet丶11 小时前
DNS域名解析:从入门到优化必备基础
网络协议
代码游侠17 小时前
学习笔记——IO多路复用技术
linux·运维·数据库·笔记·网络协议·学习
陌路2018 小时前
TCP/IP模型传输层协议
网络·网络协议·tcp/ip
不染尘.19 小时前
应用层之WWW
服务器·javascript·css·网络·网络协议·计算机网络·html