从安全角度来说OSI七层中二层是最薄弱的,因为在二层的数据帧中,几乎没有任何确认机制和身份验证。而二层一旦遭受攻击,黑客就可以顺藤摸瓜到上层,因此二层安全的防护,迫在眉急! 常见的二层攻击包括:MAC地址欺骗、MAC地址溢出、STP操纵、LAB的风暴攻击、VLAN攻击 MAC地址欺骗(MAC Address Spoofing ): MAC地址欺骗又分两种,一是欺骗交换机,一是欺骗主机,我们这里重点讲关于交换机的欺骗。 在理解MAC地址欺骗原理之前,我们要先弄明白交换机对MAC地址的处理机制。 -交换机的一个端口可以解析多个MAC地址 -一个MAC地址在同一时间内只能被一个端口解析 有了上面这两个机制,我们来看下MAC地址欺骗这张图, 首先,我们知道服务器的MAC地址为AABBcc并且属于port1,当黑客制造一个虚假的MAC为AABBcc,并不停的向交换机发送ARP,这个时候,交换机就会认为服务器的做了端口迁移,从port1变为port2。 当黑客成功的做了MAC地址欺骗攻击后,如果有客户端想访问服务器,交换机则会从port2端口发送,黑客就可以成功得手客户端的数据。 关于MAC地址欺骗的攻击有很多软件,如P2P终结者、网络执法官等等。这些软件是欺骗网关的MAC地址,当用户访问外网时,数据就会经过该软件所在的主机,该软件还可以做数据包的二次封装转发,因此,当用户被攻击后,可能毫无知觉,但数据都被黑客一一浏览。 MAC地址溢出(MAC Address Table Overflow ): 在了解MAC地址溢出之前,我们还需要明白交换机的MAC地址表容量的问题,每台交换机并不是可以解析无限个MAC,根据性能不同,解析的个数也是不同的,如Cisco的2960交换,可解析8000个MAC地址。 有了上述解释,在加上我们之前提到交换机一个端口可以解析多个MAC。假如有名黑客,用一台主机制造了很多虚假的MAC,然后向交换机发送大量的MAC地址解析,如著名的maccof,可以在短短的几秒钟发送几万个MAC地址解析。当交换机的MAC地址表被填满以后,那么该交换机就失去了MAC地址解析功能,与HUB就无区别了。 STP操纵(STP Manipulation ): 在理解STP攻击之前,必须先了解STP的工作原理和机制,在这里就不多说,如果有不太清楚请先学习CCNA中STP STP的攻击原理非常简单,黑客向跟桥发送一个桥优先级为0的BPDU,那么此时它便是跟桥,所有的数据都会经过该黑客。 LAN的风暴(LAN Storm ): 这个攻击原理也非常简单,黑客向交换机发送大量的广播帧,而交换机对广播帧又是无条件转发,因此会造成网络中出现大量的广播帧,也就是所谓的广播风暴。 关于VLAN的攻击也有很多种,我们这里主要介绍关于VLAN的跳跃攻击。 在理解VLAN跳跃攻击之前,我们必须先了解trunk对VLANtag标签的处理机制: 发送数据帧机制 当数据帧出交换机的trunk口时,交换机首先检查是否是nativeVLAN,如果是,则剥离tag,若不是,则查看trunk口是否允许该VLAN通过(cisco默认允许所有),若允许通过,携带tag发送。 接收数据帧机制 当从一个端口收到一个没有tag标签的数据帧,则向自己nativeVLAN接口发送。 如果是一个有tag标签的数据帧,则向匹配tag的VLAN接口发送。 有了以上依据,则攻击原理就不难理解了,黑客发送一个带双TAG标签的数据帧(需要网卡支持),前面tag为native vlan,后面为需要跳跃的VLAN,此时在出trunk时,交换机会剥离native vlan的tag,那么此数据帧只剩下需要跳跃的vlan,当交换机接受此数据帧时,检查tag,为vlan 20,则会向vlan 20端口转发,黑客就成功的做了vlan的跳跃。 6.2:二层安全配置 端口安全(Port Security): 端口安全是管理员静态的指定MAC地址到对应的端口上,或者允许交换机动态的学习有限的MAC地址数量。 1、端口安全必须在access模式下 Switch-yk(config-if)#switchport mode access 2、启动端口安全 Switch-yk(config-if)#switchport port-security 3、允许该端口最大学习多少MAC地址 Switch-yk(config-if)#switchport port-security maximum value 4、当端口发现异常后,对该端口的处理机制。 Switch-yk(config-if)#switchport port-security violation {protect | restrict | shutdown} 5、为端口设置静态MAC地址 Switch-yk(config-if)#switchport port-security mac-address mac-address 6、在接口上使用粘连学习 Switch-yk(config-if)#switchport port-security mac-address sticky BPDU保护有两种:BPDUguard和BPDUfilter BPDU guard(BPDU防护)-----portfast扩展 当接口开启portfast时,不希望接口收到BPDU,这时可以对端口开启bpdu guard,当接口收到bpdu时,端口的状态会变成err-disable,需要先shutdown在no shut configure: 接口下:spanning-tree portfast spanning-tree bpduguard enable 全局下:spanning-tree portfast default spanning-treeportfast bpduguard default BPDUfilter是对BPDU的过滤,当该端口收到BPDU时,端口不参与STP的计算,filter由于guard,使用filter有一定的隐患,因为它不参与STP的计算就意味着失去了环路防止的功能,当真的出现环路,该端口无法避免。 Root Guard 根保护 保护现有网络中根交换机不被其它交换机抢占 在接口下配置,当接口收到比原根交换机更优的BPDU,会把该端口的状态设置为阻塞。 接口模式下#spanning-tree guard root 以下为二层安全的高级内容(选学) ------------------------------------------------------------------------------------------------------------------- DHCP ---- Dynamic Host Configuration Protocol 它可以为局域网内的主机自动分配IP地址、子网掩码、网关、WINS、DNS等网络通信所必须的参数。DHCP是基于C/S模式工作的,客户端通过向服务器端提出请求并从服务器端接收相应的配置信息,从而完成配置工作。 要成功获得网络中的配置信息,需要成功处理4个报文,如果某一个报文出错,客户端均不能成功从服务器处获得配置信息。这4个报文是: 1.DHCP Discover:Discover报文是客户端发出的第一个报文,该报文被发往广播地址255.255.255.255,客户端IP地址使用0.0.0.0,并在报文中包含一个特定的事务ID; 2.DHCP Offer:Offer报文是服务器端收到Discover报文后对客户端的响应,该报文中包含了客户端所请求的相应配置参数(IP、掩码、DNS、WINS等)。 3.DHCP Request:客户端收到Offer报文,并检查所得到的配置参数,如果与请求的一致,则发送一个Request报文,请求使用这些配置信息。 4.DHCP Ack:服务器端在收到Request报文后,向客户端返回一个Ack的报文,通知客户端的请求都已完成,客户端可以立即开始使用相关的配置参数。 DHCP通过数据链路层的广播模式工作,在整个DHCP的4个报文处理过程中,数据包全部发往广播地址255.255.255.255。在四个报文中,均包含有Discover报文中所指定的事务ID,而不同的DHCP客户端主机则通过该ID值判断网络中发送的DHCP报文是否是发往自己的。 DHCP "starvation" Switch(config)#ip dhcp snooping <===起用"DHCP Snooping" Switch(config)#ip dhcp snooping vlan 100 <====在VLAN 100 中起用"DHCP Snooping" Switch(config)#int f0/10 <===此接口为连接DHCP服务器的接口 Switch(config)#switch access vlan 100 <====如果DHCP Server和DHCP Client不在同一VLAN,则两个VLAN都需要起DHCP SNOOPING Switch(config-if)#ip dhcp snooping trust <====使用此命令,服务器才可以下发IP地址 Switch(config-if)#ip dhcp snooping limit rate 3000 <===限速(限制发送速率为:3000包/秒) Dynamic ARP Inspection Switch(config)#ip arp inspection vlan 1,3-5,9-11 Switch(config)#ip arp inspection validate ? dst-mac Validate destination MAC address ip Validate IP addresses src-mac Validate source MAC address Switch(config-if)#ip arp inspection trust Identity Based Network Services 基于身份的认证:可以基于用户名/密码,可以基于802.1X,可以基于病毒库...... 802.1X ---- 二层的认证技术 802.1X的认证方式: 用户名/密码,MAC地址;支持授权;支持DHCP EAP ---- Extensible Authentication Protocol Extension of PPP to provide additional authentication features EAP-MD5: EAP-TLS(based on X.509 certificates): Requires server and client certificates TLS---Transport Layer Security LEAP(EAP-Cisco Wireless)---Lightweight Extensible Authentication Protocol: 专用于无线 PEAP(Protected EAP): Requires server certificates only ,用于无线 实验 1: 配2950的SVI: Switch(config)#int vlan 1 Switch(config-if)#ip add 218.18.100.100 255.255.255.0 Switch(config-if)#no sh 认证: 在Switch中起用AAA服务器:使用radius(IETF) Switch(config)#aaa authentication dot1x default group radius <===使用了default,一定要放行CONSOLE和VTY和AUX,但换机上没有AUX口 Switch(config)#dot1x system-auth-control <===打开802.1X Switch(config)#int fastEthernet 0/18 <===对这个接口做认证 Switch(config-if)#switchport mode access Switch(config-if)#dot1x port-control auto Switch(config-if)#dot1x ? auth-fail Configure Authentication Fail values for this port control-direction set the control-direction value default Configure Dot1x with default values for this port guest-vlan Configure Guest-vlan on this interface <===当认证不成功,将会划进"guest-vlan" host-mode Set the Host mode for 802.1x on this interface <===接入一台或多台PC max-reauth-req Max No. of Retries to supplicant max-req Max No. of Retries to Radius port-control set the port-control value reauthentication Enable or Disable Reauthentication for this port <===打开重认证 timeout Various Timeouts 手工重认证: 必需要在接口下已经开启"Switch(config-if)#dot1x reauthentication" Switch#dot1x re-authenticate interface fastEthernet 0/19 在PC机上配置: EAP类型:MD5质询 win2000可能需要: 打开"Control Panel" ===>"Administrative Tools"===>"Services" ===>"Wireless Configuration Properties"===>"General" ===>"start" Switch#show dot1x all Sysauthcontrol Enabled Dot1x Protocol Version 2 Critical Recovery Delay 100 Critical EAPOL Disabled Dot1x Info for FastEthernet0/16 ----------------------------------- PAE = AUTHENTICATOR PortControl = AUTO ControlDirection = Both HostMode = SINGLE_HOST ReAuthentication = Disabled QuietPeriod = 60 ServerTimeout = 30 SuppTimeout = 30 ReAuthPeriod = 3600 (Locally configured) ReAuthMax = 2 MaxReq = 2 TxPeriod = 30 RateLimitPeriod = 0 授权: Switch(config)#aaa authorization network default group radius 创建"VLAN ID"和"VLAN 名字" 基于用户名和密码动态划分VLAN,在AAA服务器上一定要勾选以下三项: [064]和[065]的填写内容为固定的;[081]的填写内容:"office"是vlan的名字(cisco推荐),但也可以写vlan号 Switch(config-if)#switchport trunk allowed vlan ? <====限制某些VLAN通过trunk WORD VLAN IDs of the allowed VLANs when this port is in trunking mode add add VLANs to the current list all all VLANs except all VLANs except the following none no VLANs remove remove VLANs from the current list 建议:关闭边界接口的CDP功能. |