阻止同一 VLAN 中的主机之间的通信

网络工程 VLAN 感知
2021-07-26 06:00:00

我有一个带管理交换机的 pfsense 防火墙,我创建了一个 VLAN:一切正常,但我想要做的是阻止我的 VLAN 中主机之间的通信。例如,我希望主机无法 ping 另一台主机并且 nmap 扫描仅显示本地主机和虚拟网关。我怎样才能做到这一点?我以这种方式尝试(第一条规则),但不起作用。 在此处输入图片说明

3个回答

如前所述,同一 VLAN(或第 2 层网段)上的设备之间的通信不跨越路由器,而仅跨越设备之间的交换机。

根据交换机的功能,有多种方法可以控制 VLAN 内的流量。

  1. 基于 VLAN 的 ACL:当从端口或通过三层交换进入某个 VLAN 时,数据包会被过滤
  2. 基于端口的 ACL:在某个端口接收到数据包时进行过滤
  3. 基于端口的过滤:数据包流仅限于某些入口/出口端口组合

ACL 的工作原理是允许或拒绝某些源/目标 IP,或者 TCP 或 UDP 端口。例如,您可以允许 10.1.2.0/24 内的所有设备与位于 10.1.2.10 的服务器通信,同时拒绝所有其他 VLAN 间流量:

1000 permit ip 10.1.2.0/24 10.1.2.10/32
1010 permit ip 10.1.2.10/32 10.1.2.0/24
1010 deny ip 10.1.2.0/24 10.1.2.0/24
9999 permit ip any any

基于端口的过滤通过将客户端端口限制为与服务器和路由器端口进行通信并过滤所有其他端口来工作。这有时也称为受保护端口源端口过滤,其中不允许这些端口相互通信。基于端口的过滤在上行链路和下行链路之间不能很好地工作,因为它们无法区分跨多个交换机的想要的服务器和不需要的对等流量。

除了 Ron Maupin 所说的(私有 VLAN),另一个(有时更好)的选择是应用所谓的 VACL(VLAN ACL)。VACL 与 RACL(路由器 ACL)不同,RACL 过滤第 3 层流量,而 VACL 过滤第 2 层流量,允许您过滤同一 VLAN 上的主机之间的流量。

以下是如何使用 VACL 的示例。本文档适用于 Cisco 6500 交换机,但您可以将其改编为几乎任何其他型号。

是 Cisco 3850 交换机的类似文档,如果它更接近您所拥有的。

就您当前的网络设计而言 - 您无法使用现有的 pfsense 框执行此操作。

要在当前环境中执行此操作,您必须在两个客户端之间添加一些内容,方法是将它们分割为不同的 VLAN,或者添加某种额外的安全设备。


您的网络设计需要将逻辑上相同的事物组合在一起。

例如,所有会计 PC 可能与其本地服务器位于一个 VLAN 中,而开发 PC 位于另一个 VLAN 中,而脏的不受信任设备则位于第三个 VLAN 中。
电话通常也位于自己的网络中,交换机和安全摄像头的管理界面也是如此。

每个 VLAN 在 pfsense 中都有自己的防火墙规则,显示流量可能去哪里。

您的网络可能存在我们不知道的细微差别,因此请考虑全面反思。

简短的回答是将一个或其他设备放在自己的 vlan 上,并使用 pfsense 盒或第 3 层核心交换机(如果有的话)在 vlan 之间路由。


另一种可能的选择是使用子网划分。

客户端 A 可能位于 /24 块的下半部分,而客户端 B 可能位于上半部分。如果每个主机都配置为使用 /25(或 255.255.255.128)作为其网络掩码,并且默认网关配置为 /24,则每个客户端将通过网关与其他客户端通信。无论您的 pfsense 框是否通过接口的防火墙规则运行它,都需要测试。