
旁挂部署的三大核心优点
1. 高可靠性与业务零中断
-
核心优势 :不对原始业务流量造成任何中断风险。
-
原理 :防火墙仅接收流量的一个副本 。即使防火墙断电、重启、故障、升级,业务流量依然在核心交换机上直通,用户无感知。
-
适用场景:对业务连续性要求极高的环境,如金融交易系统、核心生产网。在无法容忍任何网络抖动或中断的场合,这是首选方案。
2. 部署灵活,无需改动网络拓扑
-
核心优势 :无需切割网络,实施简单快捷。
-
原理 :通常只需在核心交换机上配置端口镜像(SPAN) 或流镜像,将需要分析的流量引向防火墙的接口即可。不需要更改现有路由、IP地址或物理线路。
-
适用场景 :网络已经稳定运行,希望在不改变现有结构的前提下增加安全监测能力。也适用于临时性安全审计。
3. 性能压力小,可专注于分析
-
核心优势 :防火墙无需处理所有流量的转发性能压力,可以更专注于深度分析。
-
原理 :串联防火墙的吞吐量(Throughput)是关键瓶颈,需要处理线速转发。而旁挂防火墙的性能瓶颈在于检测能力(如每秒新建连接数CPS、应用识别性能),转发压力小,可以开启更多深度检测功能(如IPS、AV、DLP)而不担心成为网络瓶颈。
-
适用场景 :用于入侵检测系统、高级威胁分析、数据泄密监控等需要深度包检测但对实时阻断要求不高的场景。

使用PBR策略路由强行将流量推到防火墙,这个实验要做到的就是非首包要创建回话,还有就是安全策略要放。
实验说明
bash
[外网客户端] --- [路由器] --- [内部服务器]
|
|--- [旁挂防火墙](镜像口)
关键配置:
-
路由器上配置了端口镜像,将 "外网到内网" 的流量镜像给防火墙
-
防火墙开启了状态检测(默认就是开启的)
-
外网客户端访问内部服务器(比如HTTP)
二、流量路径详解(这是理解的关键!)
让我们追踪一个TCP连接:
第1步:外网发送SYN包
bash
外网客户端 → 路由器 → 内部服务器
↓(镜像)
防火墙看到SYN包
防火墙行动 :创建会话,状态=SYN_SENT,并期待看到 SYN-ACK。
第2步:服务器回复SYN-ACK包
bash
内部服务器 → 路由器 → 外网客户端
问题来了 :这个SYN-ACK包是从内网到外网的方向!
-
如果您的镜像配置是
inbound(从外网接口进入路由器的流量) -
那么
SYN-ACK是 "出"外网接口 的流量,不会被镜像! -
防火墙完全看不到这个包!
第3步:外网发送ACK包
bash
外网客户端 → 路由器 → 内部服务器
↓(镜像)
防火墙看到ACK包
防火墙的逻辑判断:
-
查找会话表:找到状态=
SYN_SENT的会话 -
状态机检查:"按照规则,我应该收到
SYN-ACK,但现在收到了ACK" -
结论:这是一个非法包!可能是个攻击!
-
行动 :丢弃这个包,不为它创建新会话
三、为什么"无法连接"?
虽然实际流量(外网↔服务器)是通的,但防火墙的拦截动作会影响后续处理:
如果防火墙只是旁挂监控
-
它无法阻止真实流量(因为流量不经过它)
-
但它的入侵检测(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、入侵检测、内容过滤等
失去的功能:
-
TCP状态验证:不检查三次握手、序列号
-
协议一致性检查:不验证协议是否符合RFC标准
-
防欺骗保护:可能接受伪造的ACK、RST包
-
连接完整性:不跟踪连接建立和拆除过程

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

这个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地址

还可以建立地址集



可以调用地址集