Fortinet针对SMB环境下内网终端、服务器控制的解决方案【实践分享】

发布时间: 2020-12-15      作者:并擎科技

随着现今网络边界的模糊化,通过对物理边界的网络进行安全进行防护,不能完全提供整个网络的安全防护,一旦终端出现安全问题,整个内部环境一定都会受到波及,因此,终端的安全问题越发明显。

在不久前支持的某个客户,由于单个分支办公地点没有完备的安全设备防护,在其中某台服务器被攻击后,导致分支整个办公生产环境爆发挖矿病毒,好在总部有安全设备进行防护,并没有从分部扩散到总部,导致更大的损失;但是这次问题也确实对分布的办公生产环境造成了极大影响。

下图为客户逻辑拓扑:


我们现在来看,针对SMB的环境如何更好的进行保护。首先,在一些企业的分支办公或生产的地点,由于环境较小,可能不会有专门的安全运维人员,所以在初期制定较为稳定且便捷的安全解决方案,既可以提高分支的安全性,也可以减少总部对分布管理压力。

试想在上述爆发病毒的环境下,如何进行防护可以将爆发范围降低到最小?

一般的SMB的环境中,同网段下的终端相互访问不需要经过网关,通过arp广播找到对方即可以实现互通。这也就导致当时一台受到感染,连带整个内部都受到波及。即使是不同网段间路由,流量到达核心交换机后,传统环境出口防火墙也不能对其进行控制,当携带问题终端接入内网,整个内部相当于裸露出来。

所以我们要解决的是,保证内部终端的相互隔离,自定义的去开放有互访需求的设备,并且可以通过防火墙的安全检查。当出现问题终端的时候,由防火墙将其通讯进行阻断,将影响范围降低到单个设备。

传统环境


上述场景中,同网段下的设备互访是没有限制的,防火墙可以为出口安全进行防护,但是涉及到内部横向流量,防火墙不能很好的隔离内部相同网段的设备互访,以达到终端之间的控制,倘若有终端被攻击,那么此设备所在的整个网段,都会有安全风险。

SMB环境下,Fortinet SAA解决方案,对于内网安全的优化,将防火墙策略下沉到终端接口上。


针对SMB的场景中,通过FortiGate联动其交换机FortiSwitch,由FortiGate统一管理,对其交换机接入的终端进行管理。

防火墙针对内网开启Block intra-vlan traffic功能,此功能直接隔离FortiSwitch下所有终端的互访流量,只允许终端接口到FortiLink接口(即FortiSwtichFortiGate互联接口)的流量,统一由防火墙进行管控,精细化到每个终端,并且可以在防火墙上记录内网设备间的互访流量;通过防火墙的安全策略对内网互访的流量放通或阻断,并且由防火墙提供七层的安全检测,一旦发现问题终端,通过策略阻断。

接下来,我们测试一下实际效果。

一、如何实现内网终端控制与测试效果

未隔离环境下

下图拓扑中主机PC1PC2同属于VLAN 100,网关在FortiGate上,交换机二层模式部署,此时PC1PC2能够相互访问,不受约束。


分析结果如下:

分别查看PC1PC2ARP表,可以相互获得到对方的MAC地址,

PC1信息


PC2信息


PC1上对PC2进行Ping测试,可以看到两台PC同网段互访,二层转发,TTL跳数不变;


这时在防火墙上运行Sniffer命令对源 目的IP进行抓包分析,同时PC1ping PC2


可以看到在Ping过程中,防火墙上没有抓到PC1PC2ICMP包,数据在到达FortiSwitch后转发给PC2。同时在防火墙上也抓不到其中的数据包。

VLAN下隔离测试

在防火墙开启Block intra-VLAN traffic功能, 可以阻止终端到终端的流量直接在二层VLAN上转发,终端只能与FortiGate设备通信。 终端的流量到达FortiGate后,由FortiGate确认是否允许其访问需求。

如果防火墙策略允许访问,并启用代理ARP,则经过ARP代理的终端可以进行互访。

防火墙上开启Block intra-VLAN traffic


GUI界面配置:


CLI配置:


对比防火墙开启Block intra-vlan traffic功能后,FortiSwitch上配置变化:


左边为防火墙未开启内部Vlan阻断功能时配置,右边为开启后配置,可以看到防火墙开启此功能后,FortiSwitch被下发了 access-vlan enable的配置;

此配置说明为:开启此功能后,FortiSwitch将阻止该Vlan(环境为Vlan100)所有端口之间的流量,只允许端口到Fortilink的流量,即防火墙和交换机互联的接口的流量;

此时在PC1上查看设备ARP表,可以发现无法获取PC2IPMAC

PC1 ARP表项更新后没有PC2信息:


同时在PC1上对PC2进行Ping测试,返回结果如下:


这时在FortiGate上运行Sniffer抓包分析:


此时同一VLAN下的PC1PC2无法进行访问,已实现流量隔离。

ARP绑定绕过阻断尝试:


测试通过绑定MAC,来看是否可以绕过防火墙的阻断功能。

可以看到即使PCMAC地址绑定,两台设备之间也无法进行通信。


防火墙隔离后对必要业务放通互访测试(proxy-arp):


如果要实现同一VLAN下,部分终端之间相互互访需求,需要在FortiGate上开启proxy-arp,同时调用策略进行放行,以达到对同一VLAN内,部分终端节点的访问控制。

策略配置


Proxy-arp配置


测试PC1PC2之间访问,可以发现二者能正常通信。


FortiGate上运行Sniffer192.168.100.3的包如下:


       当开启ARP代理后,防火墙收到PCARP包,匹配到自身的代理地址,通过策略,由防火墙(Fortilink接口)的MAC找到PC2设备,即PC1PC2看到对方的MAC均为防火墙上Fortilink接口的MAC地址。


FortiGate上收到来自PC1ARP请求的数据包,通过Proxy-arp代理后,匹配允许的策略,由防火墙(Fortilink接口)的MAC找到PC2设备,即PC1PC2看到对方的MAC均为防火墙上Fortilink接口的MAC地址。

红框内为聚合口生成MAC地址,即ARP表项中MAC



下图为PC1 MAC信息


       由于开启ARP代理后,内部流量均要通过防火墙,这样FortiLink接口的带宽的需求激增,这种情况,可以将多个物理接口直接划入到FortiLink口,增加FortiGateFortiSwitch的接口带宽,以达到内网的带宽需求。