霸王龙小分队 发表于 2016-5-17 11:15:36

清默网络--二层安全

本帖最后由 霸王龙小分队 于 2017-7-3 17:57 编辑

清默网络CCNA安全课程之二层安全清默网络--安徽网络教育第一品牌!思科、华为、红帽、数据库、虚拟化培训中心!

二层安全考虑
    从安全角度来说OSI七层中二层是最薄弱的,因为在二层的数据帧中,几乎没有任何确认机制和身份验证。而二层一旦遭受攻击,黑客就可以顺藤摸瓜到上层,因此二层安全的防护,迫在眉急!
    常见的二层攻击包括:MAC地址欺骗、MAC地址溢出、STP操纵、LAN的风暴攻击、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,那么此时它便是根桥(root),所有的数据都会经过该黑客。

LAN的风暴(LAN Storm ):


    这个攻击原理也非常简单,黑客向交换机发送大量的广播帧,而交换机对广播帧又是无条件转发,因此会造成网络中出现大量的广播帧,也就是所谓的广播风暴。

VLAN的攻击:
    关于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保护和根保护:
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-tree portfast bpduguard default

    BPDUfilter是对BPDU的过滤,当该端口收到BPDU时,端口不参与STP的计算,filter由于guard,使用filter有一定的隐患,因为它不参与STP的计算就意味着失去了环路防止的功能,当真的出现环路,该端口无法避免。

Root Guard根保护
保护现有网络中根交换机不被其它交换机抢占
在接口下配置,当接口收到比原根交换机更优的BPDU,会把该端口的状态设置为阻塞。
接口模式下#spanning-tree guard root







DHCP server Spoofing DHCP服务诈骗
复习:DHCP的工作原理

DHCP攻击过程
1.在连接攻击者的端口上。一个攻击者激活一个恶意的DHCP服务器
2.客户端广播了一个DHCP客户请求
3.攻击者的DHCP服务器在合法的DHCP服务器相应之前响应,分配攻击者定义的IP配置信息
4.主机的数据包将被重定向到攻击者的地址 ,因为攻击者模仿一个DHCP server,在合法的DHCP回应之前提供DHCP回应,
合法服务器的回应太晚了,因此client会使用攻击者DHCP作为自己的网关。



二.DHCP嗅探
1.使用DHCP嗅探管理员可以指派交换机的端口为信任或非信任端口
—信任端口可以转发DHCP请求
—非信任端口只能转发DHCP应答
2.DHCP嗅探功能在交换机上被激活后,可以构建一个表项,这个表象映射:客户端MAC地址,IP地址,VLAN以及端口ID的对应关系

三.如何做DHCP控制
1.列出交换机可能连接的潜在的不受信任的用户
必须确认在交换机上开启了DHCP嗅探功能

2、为每一个交换机,列出哪些接口连接了合法的DHCP服务器
必须确认此端口被配置成为可信任的端口

3、为每个交换机,列出哪些为交换机间链路
必须确认此端口被配置成可信任的端口

配置DHCP嗅探

一.配置任务
1.在交换机上全局激活DHC嗅探特性
2.指定一个持久的DHCP snooping绑定数据库的位置
3.把连接合法的DHCP服务器的端口配置为“Trust”
4.指定所有其他的端口(包括静态地址的主机)为非信任端口
5.在其他非信任的端口上配置DHCP限速(和端口安全)—可选配置
6.在特定的VLAN中开启DHCP snooping

二.配置方案
首先完成DHCP的搭建

DHCP之路由器配置:
DHCP_SERVER#sh run | sec dhcp
ip dhcp pool cisco
   network 10.1.1.0 255.255.255.0
   dns-server 58.242.2.2
   default-router 10.1.1.254
其它配置略

首先NTP服务:
DHCP_Server(config)#ntp master 10
DHCP_Server(config)#ntp source f0/0

SW1(config)#ntp server 10.1.1.254



—任务1和任务2
在全局开启DHCP snooping
QM_SW1(config)#ip dhcp snooping

配置DHCP snooping数据库的位置为本地
QM_SW1(config)#ip dhcp snooping database flash:/QM-dhcp.db

配置DHCP snooping数据库的位置为TFTP:
QM_SW1(config)#ip dhcp snooping database tftp://192.168.200.224/dhcp-snoop.db

配置DHCP snooping数据库的位置为FTP:
QM_SW1(config)#ip dhcp snooping databaseftp://username:password@192.168.200.224/dhcp-snoop.db

—任务3和任务4
在特定VLAN中启用DHCP snooping
QM_SW1(config)#ip dhcp snooping vlan 200
配置交换机间链路为可信任   
如果DHCP snooping部署在邻居交换机上或者如果DHCP服务器需要通过其他交换机来抵达,这样的端口也需要trust
QM_SW1(config)#interface e0/3
QM_SW1(config-if)#ip dhcp snooping trust

QM_SW1(config)#interface e3/0
QM_SW1(config-if)#ip dhcp snooping trust


任务5和任务6
在非信任端口上配置DHCP请求限速(可选)
QM_SW1(config-if)#ip dhcp snooping limit rate 5

部署端口安全来反击DHCP耗尽攻击会更加有效
QM_SW1(config-if)#switchport port-security maximum 10
QM_SW1(config-if)#switchport port-security


1.验证DHCP snooping功能的整体状态
QM_SW1#debug ip dhcp snooping event
QM_SW1(config)#logging buffered 7

QM_SW1#sh ip dhcp snooping binding


QM_SW1(config)#ip dhcp snooping information option allow-untrusted

QM_SW2(config)#no ip dhcp snooping information option
注:如果使用路由器做DHCP_Server 必须关闭option选项,因为路由器不认识在参数

—显示被激活的VLAN和受信任端口
QM_SW1#sh ip dhcp snooping
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs:
200,500
DHCP snooping is operational on following VLANs:
200
DHCP snooping is configured on the following L3 Interfaces:

Insertion of option 82 is enabled
Option 82 on untrusted port is allowed
Verification of hwaddr field is enabled
Verification of giaddr field is enabled
DHCP snooping trust/rate is configured on the following Interfaces:

Interface                  Trusted   Rate limit (pps)
------------------------   -------   ----------------
Ethernet0/1                  no          5         
Ethernet0/3                  yes         unlimited
Ethernet3/0                  yes         unlimited

—显示映射数据库中的内容
QM_SW1#sh ip dhcp snooping binding

—显示数据库存储和数据库统计信息的可达性
QM_SW1#sh ip dhcp snooping database



2、实施指导方针
考虑以下的实施指导方针:
1.在多重交换机环境中,制定交换机链路为受信任的(除非其他交换机不执行HDCP snooping功能)
2.对于DHCP地址耗尽,部署端口安全是比配置DHCP限速更有效
3.在交换机上启用NTP,用来保证正确处理在存储映射数据库中的DHCP租期问题




部署ARP控制
ARP欺骗:MITM
二层攻击中最典型的攻击就是ARP欺骗;而在ARP欺骗中最具有杀伤力的就是中间人攻击;
ARP的学习过程:
当一台主机需要发送一个数据包给目标地址时候,首先查找ARP表,如果有ARP表项,则直接使用ARP表项中MAC地址封装二层头部,若没有ARP表项,则需要发送ARP请求;
ARP请求的报文格式:

所有接收端收到ARP请求的节点,只要具备回应资格,都会对该ARP做出回应;
而对于请求的主机而言,会使用后学习到的ARP应答,若合法的ARP应答比攻击者先到达请求主机,则合法的ARP应答则失效。

中间人攻击实验:



Arpspoof –t 10.1.1.1 10.1.1.2欺骗10.1.1.1,自己是10.1.1.2

Echo 1 > /proc/sys/net/ipv4/ip_forward开启BT5的路由功能


对策:ARP监控arp inspection
1.使用ARP监控,管理员可以手工指定交换机的端口为信任和非信任端口
—信任端口可以转发任何ARP信息
—非信任端口的ARP消息要进行ARP检测验证
当开启arp inspection 之后,凡是没有指定为trust端口,一律为非信任端口

2.交换机执行ARP验证:
交换机ARP的监控分静态和动态两种,
—为DHCP分配的IP地址而引用DHCP snooping绑定数据库(动态ARP监控功能)
—如果有些服务器是静态配置的IP地址,那么该地址在DHCP snooping绑定表中则没有该数据库,那么必须为该地址配置一个静态ARP访问控制列表(静态ARP监控功能)


如何做DAI防护:
做DAI主要考虑两个问题,
1.定位可信任端口和非可信任端口
列出哪些交换机连接用户的接口,这些接口一般都是不可信端口
为每一个交换机,列出交换机间链路,思科把这些直连端口定义为可信任端口
为每一个交换机,列出哪些端口是DHCP动态获取地址的,哪些是静态配置地址的
为静态配置地址的主机做好地址规划

2.必须确认在这些交换机上开启了ARP监控功能
必须确认把这些端口配置成为了信任端口
必须确认需要配置静态ARP监控还是动态ARP监控
需要创建静态ARP监控规划

配置ARP监控

配置任务
1.如果使用DHCP,确认DHCP snooping技术已经被激活,并且已经完全填充数据库(可选)
2.指定某端口为受信任内端口,也就是接受这个接口的ARP欺骗威胁(可选)
3.指定其他端口为非信任的端口
4.在每一个端口上调整ARP限速(限速)
5.配置一个ARP访问控制列表,静态映射IP到MAC(可选)
6.调整error-disable行为
7.在特定VLAN中启用ARP snooping功能

任务2-4:指定端口和配置限速
配置与其它ARP监控交换机的互联链路为“Irusted”
可选,调整ARP限速
QM_SW1(config-if)#ip arp inspection trust 开启信任端口为trust

QM_SW1(config-if)#ip arp inspection limit rate 10 设置非信任端口每秒可以发10个ARP请求

任务5:配置一个ARP ACL
在一个特定VLAN中启用静态免除
为在非信任的端口上的所有静态处理的主机配置免除(ARP ACL)
注意:一个deny-all的条目在这个ACL中关闭所有动态ARP监控

QM_SW1(config)#arp access-list qmcisco
       permit ip host 192.168.200.88 mac host 0004.0004.0004
QM_SW1(config)#ip arp inspection filter qmcisco vlan 200

这个配置是为了解决静态配置IP的端口,因为他们的ARP映射表在DHCP snooping的绑定表中不存在,所以需要明确放行。


任务6-7调整和启用ARP监控
在一个特定VLAN中启用ARP监控
可选,对于违规的端口调整error-disable行为
QM_SW1(config)#ip arp inspection vlan 200    在vlan200中激活DAI

QM_SW1(config)#errdisable recovery cause arp-inspection   (/security-violation)
QM_SW1(config)#errdisable recovery interval 60

因为arp-inspection导致端口的errdisable 会在60秒后重新激活



部署源IP地址控制
IP源防护:功能描述
不匹配的流量被遗弃
DHCP snooping和IP Source Guard都需要激活

如何部署IP Source Guard
1.列出哪些交换机可能连接非信任的用户
列出在这些交换机的哪些接口上启用了DHCP Snooping
列出在这些交换机上哪些是静态配置地址的
地址规划(为静态设置地址的端口)
2.必须确认交换机上开启了IP源防护功能
需要确认能够在这些端口上启用IP源防护功能
必须确认已经为这些端口,配置了IP源防护的静态映射或PACLs
需要配置IPSG的静态映射或PACLs

配置任务
1.如果使用DHCP,检验DHCP snooping是激活的,并且已经完全填充了数据库(可选)
2.在启用DHCP snooping的端口上激活IP源防护功能(可选)
3.在连接静态配置的主机端口上配置一个静态的IP源防护的映射或PACLs(可选)

QM_SW1(config-if)#ip verify source port-security
QM_SW1(config-if)#switchport port-security

QM_SW1#sh ip verify source
InterfaceFilter-typeFilter-modeIP-address       Mac-address      Vlan
-------------------------------------------------------------------------
Fa0/1      ip-mac       active       192.168.200.30   00:01:00:01:00:01200


任务2:在启用DHCP snooping的端口上激活IPSG功能
1.仅仅只验证IP地址
    QM_SW1(config-if)#ip verify source

2.IP地址和MAC地址同时验证
QM_SW1(config-if)#ip verify source port-security
QM_SW1(config-if)#switchport port-security

任务3:配置静态IPSG映射或PACLs
作为一种选择,为静态主机配置一个PACL
在F0/4接口上为服务器配置一个静态映射
只允许合法地址
QM_SW1(config)#ip source binding 0003.0003.0003 vlan 200 192.168.200.123 interface Fa0/3
QM_SW1(config-if)#ip verify source port-security

或者使用最传统的方案:PACL
QM_SW1(config)#ip access-list standard static
                permit 192.168.200.123
                deny any log

QM_SW1(config-if)#ip access-group static in


验证当前的源地址映射
显示激活的端口和当前的地址
安全相关的系统信息
学习到的或者配置的源地址违规

实施指导方针
考虑以下的实施指导方针:
1.    在多交换机环境中,交换机间链路上不能部署IPSG
2.    在交换机不支持IPSG,为静态处理的主机使用PACLs

排错流程
一个2层接口上的连通问题
验证DHCP snooping数据库
排错:数据库操作
验证正确的静态规则
排错:静态映射或PACLs配置
验证正确的DHCP/ARP/IP行为
排错:端点IP堆栈或调查攻击
在一个SPAN端口或一个端点上使用一个协议分析
连通性问题解决

普通故障相关的系统信息
1.代理操作失败
DHCP snooping数据库不可用。当使用一个远程服务器时,这个服务器不可达,登录信息错误,或者出现了文件系统问题
2.队列报满
对CPU管理而言,DHCP的信息速率太高了。创建低的DHCP限速,升级交换机硬件或者调查可能性的攻击
3.    数据包速率超出
ARP信息速率远远高于配置限制,这个接口已经error-disable.这可能是一个攻击,或者是一个合法的突发ARP请求

Summary
1.    PVLAN,在相同VLAN内的端口间,提供2层的访问控制。这种解决方案消除了,为了隔离而规划不同的VLAN和子网
2.    使用DHCP Snooping和端口安全技术来解决DHCP欺骗和地址耗尽攻击
3.    在激活ARP监控或者IP Source Guard之前,激活DHCP Snooping特性,允许交换机学习所有的IP地址
4.    基于风险评估和规划部署来选择安全控制




页: [1]
查看完整版本: 清默网络--二层安全