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、ACL、端口安全,这三板斧用好了,网络层的基础防护就稳了。下一章咱们聊聊更深入的东西,到时候见。
公众号:蓝海资料掘金营,微信deep3321