【简介】虽然可以利用VLAN将网络分割成多个小网段,避免中招电脑扩散到整个网络,但是由于整个小网段是可以互相访问的,还是存在安全隐患,那有没有办法阻止相同VLAN内设备互相访问呢?


 验证VLAN流量是否到达防火墙

  首先我们看看如何在防火墙上能看到VLAN的流量是否到达防火墙。

  ① 最简单的方法就是查看流量日志。还是以上一篇文章研发部VLAN访问服务器VLAN为例,选择菜单【策略&对象】-【防火墙策略】,选择研发部VLAN访问服务器VLAN策略,弹出菜单选择【编辑】。

  ② 移到策略的最下方,将日志记录允许流量由【安全事件】改为【全部会话】,这样经过这条策略的所有会话都会保存日志。【注意】只是测试和排错时这样设置,平时使用不要这样设置,因为会产生大量日志,并拖累防火墙的反应速度。点击【OK】。

  ③ 从研发部电脑Ping服务器,可以正常Ping通。(上篇文章内容)

  ④ 选择菜单【日志&报表】-【转发流量】,可以看到一条从172.18.70.2 Ping 172.18.200.200的日志记录。说明流量是经过防火墙的。

  ⑤ 另外还有一种验证方法就是抓包验证,抓包之前先创建一条允许服务器VLAN访问研发部VLAN的策略,具体操作步骤就不详叙了。

  ⑥ 然后点击防火墙界面右上角的命令图标,弹出菜单选择【CLI 控制台】。

  ⑦ 输入抓包命令 diagnose sniffer pack VLAN_R&D 'host 172.18.200.200 and icmp' 4 0 1,这里指定了抓172.18.200.200这个IP的包,以免抓到其它包。

  ⑧ 从服务器VLAN上的电脑Ping研发部VLAN电脑的IP,可以正常Ping通(因为创建了访问策略)。

  ⑨ 防火墙抓到172.18.200.200的Ping包。这也就说明服务器VLAN访问研发部VLAN也是经过了防火墙的。

 VLAN内流量互访

  经过前面的操作,我们已经知道不同VLAN的互相访问是需要经过防火墙的,那么同一VLAN内的流量访问需要经过防火墙吗?

  ① 将两台电脑都接入到研发部VLAN。

  ② 选择菜单【仪表板】-【Asset and Identities】,选择子菜单【DHCP】,可以看到两台电脑分别分配了172.18.70.2和172.18.70.3两个同网段IP。

  ③ 首先还是用日志来判断VLAN流量是否达到防火墙。选择菜单【策略&对象】-【防火墙策略】,点击【新建】。

  ④ 和其它策略不同的时,这条策略的流入接口和流出接口都是研发部VLAN。

  ⑤ 同样日志记录允许流量选择【全部会话】。

  ⑥ 从172.18.70.2电脑Ping 172.18.70.3电脑,可以Ping通,因为他们都是在同一网段。

  ⑦ 再次查看流量日志,并没有产生新的172.18.70.2到172.18.70.3的访问日志,说明什么问题?两台电脑的访问并没有经过防火墙的策略。

  阻止VLAN内的流量

  某些特定情况下,我们需要阻止相同网段的IP互相访问,以确保每个客户端都是独立的,这种情况下就需要阻止VLAN内的流量。

  ① 从官方文档中得知,如果在 FortiGate 设备上对同一接口进出的报文阻断 VLAN 内部流量,则必须先禁用 set allow-traffic-redirect 命令,然后再阻断 VLAN 内部流量。

  ② 在命令窗口执行以下命令:config system globalset allow-traffic-redirect disable, end

  ③ 选择菜单【网络】-【接口】,选择FortiLink,弹出菜单中选择研发部VLAN,点击【编辑】。

  ④ 启用【阻止VLAN内流量】,点击【确认】。是不是觉得很眼熟?我们在阻止无线SSID内的流量也是这样操作的。

  ⑤ 再从172.18.70.2去Ping 172.18.70.3,就已经Ping不通了,虽然它们是在同一VLAN,同一网段内。但是它们访问其它VLAN还是不受影响的,比如能正常访问服务器VLAN。

  允许VLAN内指定IP访问

  前面我们已经通过仅使用 FortiGate 设备聚合流量来阻止 VLAN 内的通信,从而在二层 VLAN 层面上防止客户端之间的直接通信可见性。客户端只能与 FortiGate 设备通信。但有的时候又有指定IP需要互相访问的需求,那应该怎么做?

  ① 再次编辑研发部VLAN。

  ② 当客户端流量到达 FortiGate 设备后,若防火墙策略允许且启用了代理 ARP,FortiGate 设备可根据需要调整客户端的网络 VLAN,以决定是否允许其访问不同级别的资源。这里启用【Proxy ARP】。

  ③ 点击【新建】。

  ④ 输入研发部VLAN的网络地址范围。

  ⑤ 点击【确认】,代理ARP就设置完成。从 FortiOS 7.4.2 开始,最多可创建 256 个代理 ARP 条目。每个代理 ARP 条目最多可包含 1,024 个 IP 地址。因此,每个 VDOM 可覆盖的地址总数为 256 × 1,024 个 IP 地址。

  ⑥ 为了限制只有指定的IP地址可以互访,我们需要创建地址对象。选择菜单【策略&对象】-【地址】,点击【新建】。

  ⑦ 输入地址对象名称以及IP/掩码,其它默认,点击【确认】。注意,指定单个IP地址子网掩码是32或255.255.255.255。

  ⑧ 同样的方法创建另一个IP地址的地址对象。

  ⑨ 由于前面已经创建过了研发部VLAN到研发部VLAN的策略,因此这里需要编辑修改一下,如果没有这条策略的话就创建新的策略。

  ⑩ 策略的流入和流出接口都是研发部VLAN,源和目标地址都设置为刚刚创建的两个地址对象,NAT不要启用。这条策略的作用就是允许研发部VLAN下的172.18.70.2和172.18.70.3可以互相访问。

  ⑪ 从172.18.70.2电脑上Ping 172.18.70.3,又可以正常Ping通了。

  ⑫ 选择菜单【日志&报表】-【转发流量】,由于研发部VLAN到研发部VLAN的策略里日志记录允许流量选择了【全部会话】,因此可以看到172.18.70.2 Ping通 172.18.70.3 产生的日志。

  ⑬ 再从172.18.70.3 Ping 172.18.70.2,也可以Ping通。

  ⑭ 防火墙上用命令下抓VLAN_R&D下的172.18.70.2与172.18.70.3之间的icmp包,可以抓包内容,抓包和日志都已经说明,同一VLAN一的两个IP,是通过防火墙才进行互相访问的,而不是直接走交换机的VLAN。

【注意】

  ● 当启用VLAN内流量阻断时,客户端之间不支持IPv6。

  ● 当 FortiLink 接口类型为硬件交换机或软件交换机时,不支持内网流量阻断。

  ● 当启用VLAN内流量阻断时,若要允许主机之间的通信,需配置代理ARP,并设置防火墙策略。


Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐