ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【FortiOS 8.0】❀ 15. 阻止同网段有线设备互相访问 ❀ FortiGate 防火墙

2026/8/17 3:27:13 拓冰建站 浏览量
【FortiOS 8.0】❀ 15. 阻止同网段有线设备互相访问 ❀ FortiGate 防火墙

【简介】虽然可以利用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 global,set 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,并设置防火墙策略。