diff --git "a/45 \345\210\230\350\213\217\350\220\214/20240508_\344\272\244\346\215\242\346\234\272\347\232\204\347\253\257\345\217\243\345\256\211\345\205\250.md" "b/45 \345\210\230\350\213\217\350\220\214/20240508_\344\272\244\346\215\242\346\234\272\347\232\204\347\253\257\345\217\243\345\256\211\345\205\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..743e49aac5e174c7996b73452d3212af7b2c5c8d --- /dev/null +++ "b/45 \345\210\230\350\213\217\350\220\214/20240508_\344\272\244\346\215\242\346\234\272\347\232\204\347\253\257\345\217\243\345\256\211\345\205\250.md" @@ -0,0 +1,191 @@ +#### 交换机的端口安全 + +##### 技术原理: + +- 端口安全:可根据MAC地址来对网络流量的控制和管理,比如MAC地址与具体的端口绑定,限制具体端口通过的MAC地址的数量,或者在具体的端口不允许某些MAC地址的帧流量通过。稍微引申下端口安全,就是可以根据802.1X来控制网络的访问流量。 +- Cisco交换机端口默认处于可取模式(指当检测到其他交换机连接时,端口倾向于中继连接),因此要保证交换机端口安全功能的正常工作,必须先将端口模式修改为接入端口或中继端口(3层交换机上须指定封装类型)。 +- 安全地址表项配置:交换机内有mac-address-table表,表示端口与MAC地址的对应关系,当设备接入时,交换机可学习到设备的MAC地址,并加入该表中。 + - 动态MAC地址:交换机主动学习MAC地址,当端口状态改变时,将重新学习并更新MAC地址表 + - 静态MAC地址:人为将”端口与MAC地址“进行绑定,并加入表中,该端口不再主动学习 + - 粘性MAC地址:首次主动学习MAC地址并绑定,当端口状态再次改变时,该端口不再主动学习 +- 当端口接收到未经允许的MAC地址流量时,交换机会执行以下违规动作: + - 保护(Protect):丢弃未允许的MAC地址流量,但不会创建日志消息。 + - 限制(Restrict):丢弃未允许的MAC地址流量,创建日志消息并发送SNMP Trap消息 + - 关闭(Shutdown):默认选项,将端口置于err-disabled状态,创建日志消息并发送SNMP Trap消息。若要重新开启该端口,需要"先关闭再打开"端口或使用errdisable recovery命令。后者在模拟器上无法使用。 + +##### 交换机端口安全的配置 + +1. 配置命令: + + - 选择要进行安全设置的端口 + + ```c# + Switch(config)#int f0/1 + ``` + + - 启用交换机接口的接口安全设置 + + ```C# + Switch(config-if)#switchport port-security // 直接这么写会报提示 + //Command rejected: FastEthernet0/1 is a dynamic port. 因为端口默认是动态的。要改成访问模式access + ``` + + - 改成访问模式access + + ```C# + Switch(config-if)#switchport mode access + Switch(config-if)#switchport port-security // 再次启用交换机接口的接口安全设置 + ``` + + - 启动安全设置后,还要做三件事,才能生效 + + ```C# + Switch(config-if)#switchport port-security maximum 1 // 设置最大允许连接的终端数量1 + Switch(config-if)#switchport port-security violation shutdown //设置超过最大连接数的违规设备的处理方式 + Switch(config-if)#switchport port-security mac-address sticky //绑定正确的MAC地址 + ``` + + - 如何测试是否生效,前提是交换机要记录到正确的MAC地址 + + - 为了让交换机记录到第一次正确的MAC地址,需要ping一次 + + - 清除交换机已经记录的安全MAC地址,重新开始记录 + + ```c# + Switch#clear port-security sticky + ``` + + - 要重新启用被安全规则关闭的端口,先手动关闭一次,再手动开启 + + ```C# + Switch(config)#int f0/1 + Switch(config-if)#shutdown + Switch(config-if)#no shutdown + ``` + +2. 清空后重新绑定 要回到全局模式继续完成前4步 + + + +#### 作业: + +![20240508_作业图](./imgs/20240508_作业图.png) + +要求: + +1、在二层交换机SW1创建VLAN100和VLAN200,分别命名为VLAN00100和VLAN00200,并将PC1加入VLAN 100,PC2加入VLAN 200; + +```c# +Switch>en +Switch#conf t +Enter configuration commands, one per line. End with CNTL/Z. +Switch(config)#host SW1 +SW1(config)#int fa 0/2 +SW1(config-if)#sw acc vlan 100 +% Access VLAN does not exist. Creating vlan 100 +SW1(config-if)#int fa 0/3 +SW1(config-if)#sw acc vlan 200 +% Access VLAN does not exist. Creating vlan 200 +``` + +2、交换机之间连接端口配置Trunk口; + +```C# +//SW1 +SW1(config-if)#int fa 0/1 +SW1(config-if)#sw mode trunk + +//SW2 +SW2(config-if)#int fa 0/2 +SW2(config-if)#switch mode acc //3层交换机要先封装 +SW2(config-if)#sw mode trunk //再切换trunk模式 + +``` + +3、三层交换机SW2启用路由功能; + +```C# +//Sw2 +SW2(config-if)#int fa 0/1 +SW2(config-if)#no shut +SW2(config-if)#exit +SW2(config)#ip routing //启用路由功能 +//R1 +Router>en +Router#conf t +Enter configuration commands, one per line. End with CNTL/Z. +Router(config)#host R1 +R1(config)#int fa 0/0 +R1(config-if)#no shut +``` + + + +4、在三层交换机SW2上创建VLAN100和VLAN200,分别命名为VLAN00100和VLAN00200,并配置相应的SVI地址; + +```c# +SW2(config-if)#ex +SW2(config)#vlan 100 //创建Vlan100 +SW2(config-vlan)#int vlan 100 //进入Vlan100 +SW2(config-if)#ip add 192.168.100.254 255.255.255.0 //配置IP地址+子网掩码 +SW2(config-if)#vlan 200 //创建Vlan200 +SW2(config-vlan)#int vlan 200 //进入Vlan200 +SW2(config-if)#ip add 192.168.200.254 255.255.255.0 //配置IP地址+子网掩码 +``` + + + +5、按下方表格中的要求完成设备主机名(hostname)及接口配置; + +![20240508_作业题](./imgs/20240508_作业题.png) + +```c# +//SW2 +SW2(config-if)#int fa 0/1 +SW2(config-if)#no switch //取消二层交换机,开启三层交换机 +SW2(config-if)#ip address 172.16.0.1 255.255.0.0 //配置相应接口IP+子网掩码 + +//R1 +R1(config-if)#int fa 0/0 +R1(config-if)#ip add 172.16.0.2 255.255.0.0 +``` + +6、三层交换机SW2和路由器R1之间配置RIPV2协议(要求通告子网信息,关闭自动汇总); + +```C# +//SW2 +SW2>en +SW2#conf t +SW2(config)#router rip +SW2(config-router)#version 2 +SW2(config-router)#network 172.16.0.0 +SW2(config-router)#network 192.168.100.0 +SW2(config-router)#network 192.168.200.0 + +//R1 +R1>en +R1#conf t +Enter configuration commands, one per line. End with CNTL/Z. +R1(config)#router rip +R1(config-router)#version 2 +R1(config-router)#net 172.16.0.0 +R1(config-router)#net 192.168.3.0 +R1(config-router)#do show ip route +``` + +7、在交换机SW1上开启telnet,允许其他设备远程访问,telnet登录的虚拟接口为0-4接口,telnet登录密码(明文password)和特权密码(明文password)均为jncs + +```C# +SW1>en +SW1#conf t +Enter configuration commands, one per line. End with CNTL/Z. +SW1(config)#enable password jncs //设置特权模式密码 +SW1(config)#line vty 0 4 +SW1(config-line)#password jncs //设置远程登陆密码 +``` + +8、调试并进行测试,实现PC1、PC2、PC3之间均能相互通信 + +- 终端显示 PC1、PC2、PC3之间均能相互通信 + + ![20240508_作业终端显示](./imgs/20240508_作业终端显示.png) \ No newline at end of file diff --git "a/45 \345\210\230\350\213\217\350\220\214/imgs/20240508_\344\275\234\344\270\232\345\233\276.png" "b/45 \345\210\230\350\213\217\350\220\214/imgs/20240508_\344\275\234\344\270\232\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..dfca59fed17fbc10fb0a7f0a35b7c0c2f9b8fe91 Binary files /dev/null and "b/45 \345\210\230\350\213\217\350\220\214/imgs/20240508_\344\275\234\344\270\232\345\233\276.png" differ diff --git "a/45 \345\210\230\350\213\217\350\220\214/imgs/20240508_\344\275\234\344\270\232\347\273\210\347\253\257\346\230\276\347\244\272.png" "b/45 \345\210\230\350\213\217\350\220\214/imgs/20240508_\344\275\234\344\270\232\347\273\210\347\253\257\346\230\276\347\244\272.png" new file mode 100644 index 0000000000000000000000000000000000000000..9fa936946b4a5792e7ae2c1f7e307a24d7e04d72 Binary files /dev/null and "b/45 \345\210\230\350\213\217\350\220\214/imgs/20240508_\344\275\234\344\270\232\347\273\210\347\253\257\346\230\276\347\244\272.png" differ diff --git "a/45 \345\210\230\350\213\217\350\220\214/imgs/20240508_\344\275\234\344\270\232\351\242\230.png" "b/45 \345\210\230\350\213\217\350\220\214/imgs/20240508_\344\275\234\344\270\232\351\242\230.png" new file mode 100644 index 0000000000000000000000000000000000000000..8a381a53b51663581d7fd619ad47ca8d18c3e6ef Binary files /dev/null and "b/45 \345\210\230\350\213\217\350\220\214/imgs/20240508_\344\275\234\344\270\232\351\242\230.png" differ