【NAC】【安装部署】防火墙无法转发天擎NAC管控报文

王燚发表于:2021年03月21日 13:01:11更新于:2021年06月08日 22:27:45

1 问题描述

网络中存在防火墙等状态检测网关设备,导致NAC阻断包无法发送至终端,阻断失效。

简化拓扑如下:                   image.png

 

2 适用场景

•应用准入

•网络环境中存在防火墙

3 原因分析

  1. 客户端198.19.1.159访问服务器198.19.2.39,流量经交换机转发给服务器,同时,交换机将流量镜像至NAC。NAC根据主机检测设置,向客户端发出重定向报文。

image.png

由于客户端是与服务器通信,所以这里的重定向报文需要进行伪造,伪造的报文会使用客户端发起访问所使用的五元组信息。

2. NAC的镜像接口只能用于接收镜像流量,因此从NAC发出的重定向报文只能通过NAC上的其他三层接口转发至与该接口对接的防火墙,当防火墙收到重定向报文后,由于当前流量缺少建立连接所需的首包信息,会话无法建立,因此包被丢弃,造成客户端无法收到重定向报文。

    在防火墙上进行debug,会发现如下报错日志:

    “tcp non syn packet can not create session”

4 解决办法

•规避办法:防火墙上做策略放行或绕开防火墙部署。

4.1 QAX防火墙

以TCP为例,通信的双方需经过完整的3次握手之后才能正常建立连接,而对于基于状态监测机制的防火墙来说,如果缺失这3次握手信息,出于安全考虑,流量会被丢弃,通信双方将无法建立连接。

为解决该问题,可在防火墙上开启“非首包建连”功能

NSG>

NSG> config terminal

NSG-config]

NSG-config] flow asymmetric enable              //开启非首包建连;默认为disable

 

调整nac配置,默认去掉发送fin标识

把/etc/nac_monitor.conf中的tcp_graceful_close改成False后重启nac_monitor服务。

image.png

4.2 天融信防火墙

在天融信防火墙打开“非Syn建立连接”。

image.png

4.3 华为防火墙

在华为防火墙关闭“对TCP的状态检测”。

image.png