正确的 ACL 规则将 WiFi 流量与其他 VLAN 隔离?

网络工程 VLAN ACL 戴尔 电源连接
2021-07-22 23:09:42

我已经为 Dell PowerConnect 8024F 编写了 ACL 规则(在大多数情况下,它使用 Cisco ACL“语言”)将 WiFi 流量与网络的其余部分隔离,但允许 VLAN 上的流量访问互联网流量。

也就是说,ACL 规则允许来自携带 WIFI 流量的 VLAN 的流量到另一个端点是防火墙接口的传输 VLAN,但不允许来自该 VLAN 的任何入口/出口流量(即我试图禁止“串扰”无线和有线流量之间,如果有道理的话)。

到目前为止我所做的工作,但我观察到的未来问题是我目前的规则以“全部允许”规则而不是“全部拒绝”规则结束 - 因此扩展性很差,因为我必须修改一堆我添加的每个新 VLAN 的 ACL。增加的工作量并不是问题——而是心灵的脆弱/健忘;感觉......必须这样做是错误的,我几乎可以肯定有更好的方法。不幸的是,我还没有找到更好的方法,并且肯定想这样做。

只是为了让它稍微不那么非正式 - 假设有四个 VLAN:

- A and B => wired VLAN traffic    (VLAN 10/20 - IP range 10.0.10.0/24 and 10.0.20.0/24)
- W       => wireless VLAN traffic (VLAN 240   - IP range 10.0.240.0/24)
- T       => transit VLAN traffic  (VLAN 300   - IP range 172.16.0.0/29)

我想编写一组规则,以便流量:

- A <-> W => denied
- A <-> T => permitted
- B <-> W => denied
- B <-> T => permitted
- W <-> T => permitted

<->意思是双向流动的交通)

我最初编写的规则是这样写的:

  • A)access-list secure_wifi permit ip 10.0.240.0 0.0.0.255 172.16.0.0 0.0.0.7(意思是:“允许无线流量通过vlan”)
  • B) access-list secure_wifi permit ip 172.16.0.0 0.0.0.7 10.0.240.0 0.0.0.255(意思是:“允许传输 vlan 流量到无线 vlan”)
  • C) access-list secure_wifi permit ip 0.0.0.0 127.255.255.255 172.16.0.0 0.0.0.7(意思是:“允许流量到 WAN 穿越传输 vlan”)

这就是我认为我应该拥有的所有内容,但是应用这些会让我tracert在 VLAN 之后超时并且没有互联网流量。我尝试了这些规则的许多不同组合作为入站和出站规则(以及两者之间的混合),但我从未真正让它正常工作。我所做的最好的事情是tracert跳到传输 VLAN,然后神秘地超时。我还发现自己对“给定端口的入站或出站流量是什么?”感到困惑。

相反,我最终做的是这样的事情(这些被绑定为端口入站 ACL):

access-list secure_wifi deny ip 10.0.10.0 0.0.0.255 10.0.240.0 0.0.0.255
access-list secure_wifi deny ip 10.0.240.0 0.0.0.255 10.0.10.0 0.0.0.255
access-list secure_wifi deny ip 10.0.15.0 0.0.0.255 10.0.240.0 0.0.0.255
access-list secure_wifi deny ip 10.0.240.0 0.0.0.255 10.0.15.0 0.0.0.255
access-list secure_wifi deny ip 10.0.20.0 0.0.0.255 10.0.240.0 0.0.0.255
access-list secure_wifi deny ip 10.0.240.0 0.0.0.255 10.0.20.0 0.0.0.255
access-list secure_wifi deny ip 10.0.30.0 0.0.0.255 10.0.240.0 0.0.0.255
access-list secure_wifi deny ip 10.0.240.0 0.0.0.255 10.0.30.0 0.0.0.255
access-list secure_wifi permit any any

我缺乏什么知识?我怎样才能更简单和可维护地编写这些规则?

编辑:修正了一个错字并添加了一个我尝试过的“C)”规则,有点绝望。

1个回答

由于您想允许 WAN 流量,仅匹配any,因此您需要permit any any在末尾添加 a 。

基本上,您希望拒绝进出 Wi-Fi VLAN 的流量。对于其他每个 VLAN,您都需要一个

deny ip 10.0.240.0 0.0.0.255 <otherSubnet> <subnetWildcard>

在传入接口或无线子网的 VLAN 上,以及

deny ip <otherSubnet> <subnetWildcard> 10.0.240.0 0.0.0.255

在非无线子网的传入接口或 VLAN 上 - 这基本上就是您所拥有的。

根据您的整体逻辑,您也可以简单地申请

 deny ip 10.0.240.0 0.0.0.255 10.0.0.0 0.255.255.255
 deny ip 10.0.0.0 0.255.255.255 10.0.240.0 0.0.0.255

拒绝 Wi-Fi 节点进出任何当前和未来10.0.0.0/8子网的所有本地流量如果有来自其他 RFC 1918 范围的更多私有子网,只需添加

 deny ip 10.0.240.0 0.0.0.255 172.16.0.0 0.15.255.255
 deny ip 172.16.0.0 0.15.255.255 10.0.240.0 0.0.0.255
 deny ip 10.0.240.0 0.0.0.255 192.168.0.0 0.0.255.255
 deny ip 192.168.0.0 0.0.255.255 10.0.240.0 0.0.0.255

之前permit any any如果您需要豁免那些一般拒绝,请permit在第一行上方添加更多特定deny(因为 ACL 条目是在第一次命中的基础上应用的)。

关于您的“传输 VLAN”编辑:传输网络与 ACL 无关。基本 ACL 仅按数据包源 IP 和目标 IP 进行过滤。除非您希望(否则被拒绝)无线客户端与传输 VLAN节点通信,否则不需要该规则。