阿国运维网技术分享平台:桌面运维、网络运维、系统运维、服务器运维(及云服务器),精品软件分享、阿国网络、尽在北京运维网
我们在规划网络的时候,要根据场景同时考虑安全问题。9月14日-9月20日是国家网络安全宣传周,本期我们就学习一期二层网络安全小特性。主要内容包含端口安全、端口隔离、DHCP Snooping、BPDU保护等。
很多网工朋友们习惯把安全的重点放在三层,采用ACL、路由过滤等等手段,但是交换机作为整个网络的核心设备,安全不仅要考虑网络层,还要覆盖到数据链路层。因为数据链路层是流量转发的第一站,如果二层本身安全没做到位,上层安全做的再好基础也是不牢固。
三层安全往往是重点放在南北向(纵向)流量,以防护外部安全隐患为主要目的,而二层安全的重点是东西向(横向)流量,防止病毒、木马内部扩散,入侵者横向移动等。有些小伙伴可能听说过纵向加密、横向隔离设备,是一种电力调度中常用的安全防护设备,目的就是对纵向流量加密传输,横向流量安全隔离,从而达到东西向、南北向的一个全面防护。接下来,我们就边实践边学习。
一、实验拓扑
二、安全特性分布学习
1、DHCP Snooping:核心作用是在二层网络中充当“安全监控”,防止 DHCP 相关的欺骗与攻击。它通过建立并维护一张“DHCP Snooping 绑定表”(记录合法用户的 IP、MAC、端口和 VLAN 信息),来确保只有合法的 DHCP 服务器才能分配地址,并阻止终端仿冒他人身份
主要作用:
防止 DHCP 服务器仿冒:通过划分“信任端口”和“非信任端口”。只有连接合法 DHCP 服务器的“信任端口”才能转发服务器发来的 DHCP 响应报文,用户侧的“非信任端口”无法仿冒服务器下发地址,可以杜绝私接小路由。
防止 IP/MAC 欺骗与中间人攻击:基于生成的绑定表,设备可以检查用户侧的 ARP 报文和 IP 报文。如果报文中的 IP 或 MAC 与绑定表不匹配,就会被丢弃,从而防止用户盗用他人 IP 或 MAC 进行攻击。
防止 DHCP 报文攻击:可以检查 DHCP Request 报文是否合法(防止用户伪造续租报文耗尽地址),以及检查客户端mac地址字段是否与帧头源MAC一致,防止攻击者通过篡改字段发起DoS攻击
配置实例:
SW1作为合法DHCP服务器为PC1和PC2分配地址,SW1的DHCP配置过程和接口配置忽略,如果忘记的小伙伴可以查看前期文章MAC地址学习、vlan、DHCP,本期主要配置SW2,DHCP Snooping在接入交换机配置。
SW2配置:
interface GigabitEthernet0/0/10 #配置上联接口
port link-type trunk
port trunk allow-pass vlan 5
port-group group-member g0/0/1 g0/0/2 #批量配置端口,老版本用此命令,新版本已更新为interface range g0/0/1 g0/0/2
port link-type access
port default vlan 5
打开终端,看一下地址获取情况:
SW6模拟非法DHCP服务器:
Vlan batch 5 #创建vlan5
Dhcp enable #启用全局dhcp
interface Vlanif5 #配置地址,模拟非法DHCP的lan口
ip address 192.168.1.1 255.255.255.0
dhcp select interface #启用接口dhcp服务
interface GigabitEthernet0/0/15
port link-type access
port default vlan 5
SW2配置:
interface GigabitEthernet0/0/15 #非法DHCP接入的接口
port link-type access
port default vlan 5
接下来看一下PC获取地址情况:
图中可以看出,PC2获取到了合法DHCP服务器给的地址,但是PC1获取到了非法DHCP的地址,此时PC1就已经无法正常上网或者与其他终端通信了。
开启DHCP Snooping:
SW2配置:
[SW2]dhcp enable #全局开启DHCP,否则无法配置dhcp snooping
[SW2]dhcp snooping enable #全局开启dhcp snooping
[SW2-vlan10]dhcp snooping enable #业务vlan下开启dhcp snooping
[SW2]port-group group-member g0/0/1 g0/0/2 #批量配置端口
[SW2-port-group]dhcp snooping enable #终端端口下开启dhcp snooping
interface GigabitEthernet0/0/10 #进入上联接口,此步骤很重要,必须配置,否则终端无法获取地址
dhcp snooping trusted #上联接口视图下,配置dhcp snooping信任接口
到此配置基本结束,再来看一下终端地址获取情况:
可以看到,PC1和PC2已经可以正常获取地址了。
2、端口隔离:端口隔离的核心作用是在同一VLAN内实现端口之间的二层数据隔离,从而在不消耗额外VLAN资源的前提下提升网络安全性。
主要作用:
节省VLAN资源:传统上隔离用户需要划分不同VLAN,但是VLAN ID数量有限。端口隔离允许用户在同一个VLAN内实现隔离,无需为每个隔离组单独分配VLAN。
抑制广播报文:隔离组内的端口无法互相转发二层广播/组播报文,可以有效抑制ARP病毒等广播风暴在用户之间传播。
灵活的安全控制:默认支持“二层隔离三层互通”或“二层三层都隔离”,满足不同安全等级需求。
配置实例:
图中PC1和PC2都属于vlan5,要求PC1和PC2之间二层不能互通,在接入层配置:
SW2配置:
省略vlan等配置,只列出接口关键配置
port-group group-member g0/0/1 g0/0/2 #批量配置端口,老版本用此命令,新版本已更新为interface range g0/0/1 g0/0/2
port-isolate enable group 1 #开启端口安全并加入组1,默认二层隔离三层互通
* 备注:port-isolate mode all #全局下配置此条命令,则二层和三层均不互通
验证配置:
看一看到,PC1 ping不通PC2,但是可以ping通网关地址。
3、端口安全:核心作用是基于 MAC 地址对端口接入进行控制,防止未授权设备接入和 MAC 泛洪攻击。
主要作用:
限制接入数量:默认只允许一个 MAC 地址,可手动调整,防止私接小交换机扩展端口。
防御 MAC 泛洪:攻击者伪造大量源MAC耗尽交换机MAC表,端口安全通过限制学习数量直接缓解此类攻击。
阻止非法接入:非授权设备发出的报文会被丢弃,并触发告警或关闭端口。
配置实例:
图中以SW3为例,SW4属于非法接入的交换机或者HUB、小路由之类的设备,不做任何配置。其中PC3属于合法终端,PC4属于非法终端,为了方便测试,同样规划到vlan5。要求终端接入后动态学习+自动固化mac地址。
SW3配置:
[SW3]vlan batch 5
interface GigabitEthernet0/0/11 #配置上联接口
port link-type trunk
port trunk allow-pass vlan 5
interface GigabitEthernet0/0/4 #配置下联接口
port link-type access
port default vlan 5
此时我们看一下PC获取地址情况:
此时非法PC和PC3均可以获取地址,且SW3的mac地址表可以看到均是来自g04接口,接下来我们开启端口安全。
SW2配置:
interface GigabitEthernet0/0/4 #配置下联接口
port-security enable #开启端口安全
port-security max-mac-num 1 #配置最大可学习mac地址数量,默认为1,设置为1的时候此命令无需输入,设置为大于1的值才需要单独配置。
port-security mac-address sticky #自动固化mac地址
port-security protect-action shutdown #检测到非法接入终端以后接口会自动shutdown
接下来我们测试一下效果,将PC3和非法PC全部关闭,先开启PC3,等PC3获取到地址以后,再开启非法PC,看是否还可以获取到地址:
此时我们再看一下SW3的mac地址表:
这里可以看到PC3的mac地址,并且类型已经sticky静态,而非dynamic动态。
此时开启非法PC以后,看下SW3的G04接口是否已经自动shutdown:
可以看到接口已经down,并且前边带有*,这就类似于我们手动将端口shutdown以后的状态,此时需要我们去检查,排除问题以后再进行手动undo shutdown操作。这是旧版本的交换机端口安全惩罚配置,还有两个参数分别是警告和警告并丢弃。新版本交换机里会有error-down参数,配置此参数以后接口同样会down掉,但是配合全局命令error-down auto-recovery cause portsec-reachedlimit interval 20 可以实现自动恢复端口up状态。portsec-reachedlimit是端口安全超限的意思,后面的20代表20秒。
4、BPDU保护:BPDU是运行了生成树STP协议以后交互数据的报文。交换机之间必须不断交换信息,才能选出谁是“根桥”、哪些端口该转发、哪些端口该阻塞。这些交换的信息就封装在 BPDU 里。
BPDU 保护的作用就是:在配置了边缘端口的交换机上启用该功能后,一旦收到BPDU报文,就立即将端口关闭(进入 error-down 状态),并通知网管,防止恶意攻击影响整个网络。如果攻击者伪造 BPDU 报文发给边缘端口,交换机会误以为有交换机接入,从而触发重新计算生成树,导致网络震荡甚至中断。
配置实例:
SW3作为纯接入交换机,只接入终端,不接入交换机,因此在SW3配置BPDU保护,并将除上联接口外的所有接口配置为边缘端口。配置边缘端口还有一个好处,可以实现终端快速接入。
SW3配置:
stp bpdu-protection #全局开启BPDU保护
int g0/0/11 #上联接口
stp edged-port disable #取消边缘端口,防止触发BPDU保护
int g0/0/20 #模拟接入非法BPDU的接口
stp edged-port enable #开启边缘端口
可以看到目前交换机的互联接口是down的状态,就是因为SW7发送BPDU报文,触发了保护机制,将接口down掉了
我们在SW7上执行以下命令,关闭stp:
[SW7]undo stp enable
再看一下接口情况:
此时接口已经自动up。
以上就是我们这期内容,主要学习了几个二层安全防护小特性,这些配置看似不起眼,在数据链路层安全防护可以起到至关重要的作用。
















