为什么不应该使用本地 VLAN?

网络工程 VLAN 安全
2021-07-07 17:07:59

目前正在学习 CCNA 安全,我被教导永远不要将本地 VLAN 用于安全目的。思科论坛上的这个旧讨论非常清楚地说明了这一点:

您也不应该使用默认 VLAN,因为从默认 VLAN 更容易实现 VLAN 跳跃。

但是,从实际的角度来看,我无法准确指出正在解决的实际威胁。

我的想法如下:

  • 攻击者位于本地 VLAN 上,也许他可以直接注入 802.1q 数据包,这些数据包将被第一个交换机转发而无需修改(来自本地 VLAN),接下来的交换机会将这些数据包视为来自任何选定 VLAN 的合法数据包由攻击者。

    这确实会使 VLAN 跳跃攻击“更加容易”但是,这不起作用,因为第一台交换机正确地认为在接入端口上接收 802.1q 数据包是异常的,因此丢弃了这些数据包。

  • 位于非本地 VLAN 上的攻击者设法将交换机接入端口变成中继端口。要将流量发送到本地 VLAN,他只需更改他的 IP 地址(一个命令),而不是在他的网络接口上启用 VLAN(四个命令),从而节省了三个命令。

    我显然认为这最多只是一个非常微不足道的收益......

  • 在挖掘历史时,我以为我在某处读到了一些旧建议,指出 802.1q 注入可能需要兼容的网卡和特定的驱动程序。这样的要求确实会限制攻击者注入 802.1q 数据包的能力,并使本机 VLAN 的利用在之前的场景中更加实用。

    然而,现在这似乎不是一个真正的限制,VLAN 配置命令是 Linux(至少)网络配置命令的常见部分。

我们是否可以将不使用本地 VLAN 的建议视为过时并仅出于历史和配置完整性目的而保留,即使这种做法不再解决任何特定威胁?或者是否有一个具体的场景,因为使用了本地 VLAN,VLAN 跳跃确实变得更加容易?

1个回答

您可以并且很可能需要在中继端口上使用本机 VLAN,至少在 Cisco 交换机上是这样,其他供应商的做法有所不同。但是您必须记住,安全风险更多地与将 VLAN 1(默认 VLAN)设置为本地 VLAN 相关。

您应该将本地 VLAN 从 VLAN 1 更改为您创建的新 VLAN。本地 VLAN 用于大量管理数据,例如 DTP、VTP 和 CDP 帧以及用于生成树的 BPDU。

当您获得一个全新的交换机时,VLAN 1 是唯一存在的 VLAN,这也意味着默认情况下所有端口都是该 VLAN 的成员。

如果您使用 VLAN 1 作为您的本地 VLAN,您将拥有所有尚未配置为该 VLAN 一部分的端口。因此,如果攻击者连接到未使用且未配置的端口(因为未使用),他可以立即访问您的管理 VLAN,并且可以读取和注入可能允许 VLAN 跳跃或捕获您不想要的数据包的数据包他/她可以看到,或者更糟的是,通过 SSH 连接到您的交换机/路由器(永远不允许 telnet)。

建议始终不要使用 VLAN 1,因此如果攻击者或不受欢迎的客户端连接并最终到达 VLAN 1 并且此 VLAN 上没有配置任何内容(例如可用的网关),则它们几乎被卡住并且无处可去,而您的本地 VLAN 类似于 VLAN 900,它不太可能具有任何端口访问权限,因为它不是默认 VLAN。

许多工程师不会禁用未使用的端口,并且将 VLAN 1 用于重要的东西会让您处于访问开放的情况,除非您使用 802.1x 之类的东西。工程师/网络管理员忘记了,您有一个可以使攻击者受益的小安全漏洞。如果您的 VLAN 1 未使用且端口保留为默认值,则问题不大,因为未使用它。

希望这对您的追求有所帮助。

困人