1. 在如上图中,企业网络可以为根据使用者获得的授权不同,把LAN划分为不同的虚拟区域(我们称为VLAN),以方便进行VLAN之间的访问控制,每个VLAN内部的PC互访是自由的,不受限的。
2. 我们为不同的VLAN划分不通的网段,比如无线PC所属的VLAN1的网段为192.168.1.0/24,网关是192.168.1.1;相应的,普通员工PC的网段是192.168.8.0/24,网关192.168.8.1,以此类推,这么设置的目的是方便网关人员记忆,降低维护难度。
3. 在专栏第三期《访问互联网和LAN通信》中,我们知道PC在访问不同网段的PC时必须要网关(指如192.168.8.1的网关地址)帮忙转发,访问相同网段则不需要网关,比如VLAN 8内的普通员工PC互相访问,流量是不需要经过网关转发的(即内部互访可以不用设置网关地址);VLAN 9的主管PC访问VLAN 10的服务器则需要各自的网关192.168.9.1和192.168.10.1的帮忙。
4. 从这种网段的划分,我们就可以在商领网关上做灵活的访问控制,限制不同VLAN间的互访,或者更高级的单向访问控制,如只有VLAN8和VLAN9可以访问VLAN10,而VLAN10却不能主动访问VLAN9、VLAN8等。
访问在数据流中的表现形式是双向的数据传输,比如A要访问B,除了AàB的数据能够正确到达B外,还要求BàA的数据能够正确到达A,只要限制任意一方流量,该访问就会被限制住。
根据用户接入方式和授权不同划分成不同的VLAN后,对于最基本的无线PC和有线PC的相互隔离就可以使用简单的包过滤防火墙访问控制规则,可以如下添加配置:
接下来我们还需要实现单向访问控制,如只有VALN8和VLAN9可以任意访问VLAN10,而VALN10不能主动发起访问,可以使用包过滤防火墙+应用状态检测ASPF(Application Status Packet Filtering)来实现。应用状态检测的是IP访问的方向,如下图所示:
图中VLAN9内主机192.168.9.2访问192.168.10.2的TCP 80端口(HTTP应用),该访问在网关转发时会触发建立一个称为<5元组>的流(Flow),同时ASPF模块会根据触发流建立镜像流<5元组>,镜像流就是匹配192.168.9.2访问192.168.10.2 HTTP应用的返回数据,因此当192.168.10.2返回流量能够匹配镜像流而被正常转发:
如果VLAN10主动发起访问VLAN9的远程桌面(TCP 3389端口),因为没有镜像流<5元组>的存在,该访问被网关拒绝
由于网关上VLAN10和VLAN9都可以配置防火墙和ASPF,那么在那边配置比较合适呢?我们根据要求单向访问控制的是VLAN10不能向VLAN9、VLAN8发起访问,可见在VLAN10中配置可以减少配置量,可以如下配置
我们来分析一下VLAN10接口的配置和逻辑关系:
1. 首先2301是出方向允许vlan8和vlan9,其余访问拒绝,也就是说只有vlan8和vlan9能够访问vlan10
2. 其次2302是入方向拒绝所有,即禁止vlan10发起任何访问
3. 在出方向应用ASPF策略1检测TCP和UDP,联合2301就是检测VLAN8和VLAN9发起的TCP、UDP访问,然后建立镜像流<5元组>,然后准予放行
如果有更灵活需求,我们可以分析单向访问控制条件,制定ASPF和防火墙的逻辑关系,加以实现。