3、网络层基础防护:VLAN隔离与划分、ACL访问控制列表的精细化配置、端口安全策略

各位好,咱们今天聊聊网络层的基础防护。说实话,很多刚入行的朋友觉得这玩意儿太基础,不就是划个VLAN、配几条ACL嘛。但我在专线项目里见过太多翻车案例了——说白了,基础不牢,地动山摇。你想想看,专线承载的都是核心业务,一旦网络层被突破,那损失可不是闹着玩的。

我个人习惯把网络层防护比作大楼的门禁系统。VLAN就是楼层分区,ACL就是每个房间的权限卡,端口安全则是门口的保安。这三样东西配合好了,才能做到真正的纵深防御。

3.1 VLAN隔离与划分:把“邻居”隔开

VLAN这东西,核心思想就一句话:逻辑上隔离,物理上共享。为什么需要它?因为传统的扁平网络里,一台PC发个广播包,整个广播域都能收到。你想想,如果财务部和研发部在同一个广播域,财务的敏感数据就可能被嗅探到。

核心原则:不同安全等级、不同业务类型的设备,必须划入不同VLAN。

我在项目中遇到过一家企业,把所有服务器和办公PC都放在VLAN 1里。结果一台办公PC中了蠕虫病毒,整个内网广播风暴,专线链路直接被堵死。嗯,这就是典型的“省事一时爽,出事火葬场”。

划分VLAN时,我建议遵循以下策略:

  • 按业务部门划分:财务、研发、人事、运维各自独立VLAN
  • 按安全等级划分:核心服务器区、DMZ区、办公区、访客区严格隔离
  • 按物理位置划分:不同楼层、不同机房可以单独VLAN

举个例子,一个典型的专线接入场景,VLAN规划可以这样:

VLAN ID 用途 网段 安全等级
10 核心服务器 10.0.10.0/24
20 办公网络 10.0.20.0/24
30 视频会议 10.0.30.0/24
99 管理VLAN 10.0.99.0/24 极高
100 访客WiFi 10.0.100.0/24

小技巧:管理VLAN一定要单独划出来,并且只允许特定管理IP访问。我曾经见过有人把交换机管理地址放在办公VLAN里,结果被员工误操作给改了配置……

配置VLAN时,记得在交换机上启用Trunk端口,并明确允许哪些VLAN通过。别偷懒用allowed vlan all,那等于没隔离。

# 配置示例:创建VLAN并划分端口
Switch(config)# vlan 10
Switch(config-vlan)# name Server
Switch(config-vlan)# exit

Switch(config)# interface gigabitEthernet 0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10

# Trunk端口配置
Switch(config)# interface gigabitEthernet 0/24
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan 10,20,30,99  # 只允许必要VLAN通过

3.2 ACL访问控制列表的精细化配置:别做“一刀切”

ACL这东西,说白了就是一张“通行证清单”。你允许谁过、拒绝谁过,都得写清楚。很多人的ACL配置就两条:permit ip any any,然后完事。这跟没配有什么区别?

我个人习惯遵循最小权限原则:只开放必要的端口和协议,其余一律拒绝。而且ACL的顺序很重要——从上到下匹配,匹配到就停止。所以要把最严格的规则放在前面。

注意:ACL最后一定要加一条deny ip any any,否则默认是permit all。我见过有人忘了加这条,结果ACL形同虚设。

举个例子,专线出口的ACL,我通常会这样配置:

# 专线出口ACL示例
access-list 100 deny ip 10.0.0.0 0.255.255.255 any          # 阻止私有地址出公网
access-list 100 deny ip 172.16.0.0 0.15.255.255 any
access-list 100 deny ip 192.168.0.0 0.0.255.255 any
access-list 100 permit tcp any host 203.0.113.10 eq 80      # 只允许访问特定Web服务器
access-list 100 permit tcp any host 203.0.113.10 eq 443
access-list 100 permit udp any host 203.0.113.20 eq 53      # DNS查询
access-list 100 deny ip any any log                          # 记录被拒绝的流量

为什么要加log参数?因为排查问题的时候,你能看到谁在试图访问不该访问的东西。我曾经靠这个抓到过内网一台被挖矿病毒感染的机器——它一直在试图连接外网的矿池地址。

对于专线网络,我建议把ACL分为三个层次:

  • 边界ACL:部署在专线出口路由器上,控制进出专线的流量
  • VLAN间ACL:部署在核心交换机上,控制不同VLAN之间的互访
  • 端口ACL:部署在接入交换机上,控制单个端口的流量

你想想看,三层ACL叠加起来,攻击者想横向移动都难。

3.3 端口安全策略:管好每一根网线

端口安全,说白了就是防止有人乱插设备。你公司内部网络,突然有人接了个无线路由器或者集线器,那整个网络拓扑就乱了。更可怕的是,如果有人插了个恶意设备,直接抓包怎么办?

我曾经处理过一个案例:某公司财务部突然出现大量ARP欺骗攻击,导致财务系统频繁断网。查了半天,发现是实习生自己带了个路由器插到工位网口上,开启了DHCP服务……从那以后,我强烈建议所有接入层交换机都开启端口安全。

端口安全的核心功能有三个:

  • MAC地址限制:限制每个端口允许学习的MAC地址数量
  • MAC地址绑定:只允许特定MAC地址的设备接入
  • 违规处理:发现违规时,可以选择关闭端口、丢弃数据包或发送告警

配置示例:

# 端口安全配置示例
Switch(config)# interface gigabitEthernet 0/1
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 2          # 最多允许2个MAC地址
Switch(config-if)# switchport port-security mac-address sticky  # 自动学习并绑定MAC
Switch(config-if)# switchport port-security violation shutdown  # 违规直接关闭端口

# 手动绑定特定MAC
Switch(config-if)# switchport port-security mac-address 0050.7966.6800

重要提醒:端口安全不要用在Trunk端口上,否则会导致VLAN间通信异常。另外,如果交换机连接的是IP电话,记得把电话的MAC也加进去,或者调大MAC数量限制。

对于专线网络,我建议在接入层交换机上统一开启端口安全,并设置违规动作为shutdown。虽然一开始可能会有些误报(比如员工换电脑忘了报备),但安全性和便利性之间,我永远选安全性。

知识体系总览

下面这张图,是我自己总结的网络层基础防护知识体系。你可以把它当作一个检查清单,每部署一个节点,都对照着看看有没有遗漏。

网络层基础防护知识体系 VLAN隔离与划分 核心目标: 逻辑隔离广播域 划分原则: • 按业务部门 • 按安全等级 • 按物理位置 关键配置: • Access端口划分 • Trunk端口限制 • Native VLAN管理 避坑: 别用VLAN 1做业务 Trunk别用allowed all ACL精细化配置 核心原则: 最小权限原则 三层部署: • 边界ACL(出口) • VLAN间ACL(核心) • 端口ACL(接入) 配置要点: • 顺序匹配,精确在前 • 最后加deny any any • 启用日志记录 避坑: 别用permit ip any any 注意规则顺序 端口安全策略 核心功能: 防止非法设备接入 三大机制: • MAC地址数量限制 • MAC地址绑定 • 违规处理动作 违规动作: • shutdown(推荐) • restrict(丢弃) • protect(静默丢弃) 避坑: Trunk端口别开 注意IP电话场景 三者配合:VLAN做隔离 → ACL做控制 → 端口安全做准入,形成纵深防御

好了,这一章的内容就这些。VLAN、ACL、端口安全,这三板斧用好了,网络层的基础防护就稳了。下一章咱们聊聊更深入的东西,到时候见。


公众号:蓝海资料掘金营,微信deep3321