服务器流量想先过防火墙检测再放行?华为交换机业务编排拖一条链自动引流
不少公司的做法是把防火墙串在服务器区前面,想检测哪股流量就把哪股流量引过去,传统做法要改动路由、调整组网,牵一发动全身。华为交换机有个更省事的方案叫业务编排:由 Controller 做策略控制器,交换机做编排设备,防火墙等安全设备集中放在一个资源池里,哪条业务流需要过检测,在 Controller 上把流量拖到链上,交换机自动通过 GRE 隧道把流量引到防火墙,检测完再送回原路。不用给每个区域单独部署安全设备,设备利用率也上去了。官方示例的场景很典型:M 公司机房有一台存研发数据的 FTP 服务器,要求研发部门能访问、市场部门不能访问、研发的访问流量必须先过防火墙检测、防火墙故障时宁可不访问也不能绕过检测。
配置步骤
第一步配交换机侧基本参数。接口划 VLAN、配地址,关键是两个 Loopback 接口和指向 Controller 的注册命令:
<HUAWEI> system-view
[HUAWEI] sysname SwitchA
[SwitchA] vlan batch 100
[SwitchA] interface gigabitethernet 1/0/1
[SwitchA-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-GigabitEthernet1/0/1] port trunk allow-pass vlan 100
[SwitchA-GigabitEthernet1/0/1] quit
[SwitchA] interface vlanif 100
[SwitchA-Vlanif100] ip address 10.85.10.5 24
[SwitchA-Vlanif100] quit
[SwitchA] interface LoopBack 100
[SwitchA-LoopBack100] ip address 10.7.2.1 255.255.255.255
[SwitchA-LoopBack100] quit
[SwitchA] interface LoopBack 101
[SwitchA-LoopBack101] ip address 10.7.2.2 255.255.255.255
[SwitchA-LoopBack101] quit
[SwitchA] ip route-static 10.6.2.1 255.255.255.255 10.85.10.6
[SwitchA] ip route-static 10.6.2.2 255.255.255.255 10.85.10.6
[SwitchA] group-policy controller 10.85.10.3 password YsHsjx_202206 src-ip 10.85.10.5
官方给了个提醒:Loopback 编号要保证在设备中是最大的,示例用的是 100 和 101,这两个地址后面要作 GRE 隧道的端点。最后一条 group-policy 命令就是交换机向 Controller 注册的 XMPP 通道。
第二步配防火墙侧。Web 上先把直连接口 GE1/0/1 配好:安全区域 trust,IP 地址 10.85.10.6/24。再到「对象 > 认证服务器 > RADIUS」新建,参数与 RADIUS 服务器保持一致,共享密钥 YsHsjx_2022063。然后到「系统 > 敏捷网络配置」勾选启用敏捷网络功能,配置与 Controller 的对接参数,「Controller主服务器IP」后面状态显示「已连接」即对接成功。注意官方强调:业务编排场景中防火墙要配内容安全检测功能,「安全策略配置」必须选「手工配置」。两个 Loopback 接口要用 CLI 控制台配:
<sysname> sysname NGFW
[NGFW] interface LoopBack 100
[NGFW-LoopBack100] ip address 10.6.2.1 255.255.255.255
[NGFW-LoopBack100] quit
[NGFW] interface LoopBack 101
[NGFW-LoopBack101] ip address 10.6.2.2 255.255.255.255
[NGFW-LoopBack101] quit
[NGFW] ip route-static 10.7.2.1 255.255.255.255 10.85.10.5
[NGFW] ip route-static 10.7.2.2 255.255.255.255 10.85.10.5
第三步在 Controller 上把链搭起来,全程拖拽。先「资源 > 设备 > 设备管理」点「增加」,把交换机和防火墙都添加进来,密码填设备上配的通信密码 YsHsjx_202206。再到「策略 > 业务链编排 > 业务流定义」增加业务流,把研发部门五名员工的地址 10.85.100.11~10.85.100.15 逐条配上,协议 TCP、源端口 22、目的地址 10.85.10.2、目的端口 21——只有匹配这组 ACL 的流量才会上链,市场部门流量根本不在名单里,直接就不能访问。然后「策略 > 业务链编排 > IP地址池」增加一个池,名称 10.10.192.0、IP 地址 10.10.192.0、掩码长度 24,这是 GRE 隧道的地址资源,官方提醒池里不能包含网络中正在使用的 IP。接着「策略 > 业务链编排 > 业务链资源」点「增加」,把编排设备区域的 SwitchA 拖到编排设备节点、业务设备区域的 NGFW 拖到防火墙节点、选好地址池,保存。最后「策略 > 业务链编排 > 业务链编排」点「增加」,把业务流 User_to_Datacenter、SwitchA、NGFW 分别拖到对应节点,「链异常处理方式」选「阻断」,保存部署。选阻断就是示例里那条硬要求:防火墙故障时研发部门不能访问 FTP 服务器,宁可断服务也不能绕过检测。
验证
三个动作确认部署成功。Controller 上查看交换机和防火墙之间的隧道信息,隧道建立说明业务链资源已下发。交换机上 display acl all 能看到 Controller 自动生成的业务流规则,五条 permit 精确匹配五名研发员工的源地址:
[SwitchA] display acl all
Total nonempty ACL number is 1
Advanced ACL S_ACL_20140401153202_B3E0 3998, 5 rules
Acl's step is 5
rule 5 permit tcp source 10.85.100.11 0 source-port eq 22 destination 10.85.1
0.2 0 destination-port eq 21 (match-counter 0)
再看 display current-configuration | include traffic-redirect,能看到引流配置已自动下发,隧道接口的描述里写着 Controller 下发的来源,源 10.7.2.1、目的 10.6.2.1 的 GRE 隧道把研发流量接去防火墙:
[SwitchA] display current-configuration | include traffic-redirect
traffic-redirect inbound acl name S_ACL_20140401153202_B3E0 3998 interface Tunnel16370
给关键数据流过安检又不改组网,业务编排把安全设备从「串在线上」变成「拖到链上」。贵州诚鑫致达科技在数据中心与研发网之间做安全加固时,引流不改路是客户最容易接受的说法。你的防火墙现在是一股脑全检,还是也想按流点名?