终端设备接入能力控制
2017-11-22
引言:现在网络安全防护中,防止设备的非法接入,是网络安全保护中的第一道防线。在网络安全的防护中,我们需要在非法终端进入网络前就能够对设备进行识别。在笔者单位的各个项目中,通过终端设备的控制,保证了服务安全稳定的运行。
现在网络安全防护中,防止设备的非法接入,是网络安全保护中的第一道防线。我们需要在非法终端进入网络前就能够对设备进行识别。
经常用到的一些接入控制为ACL限制、AAA认证等,但除了这种常规性的接入控制外,我们单位在增强网络安全方面,进行了更深入的限制,大致分为如下几种:
1.DHCP协议控制;
2.接入层IPVLAN限定;
3.终端硬件识别。
DHCP协议控制
1.DHCP过程
终端设备可以通过多种方式获取接入用的IP地址,如PPPOE拨号、L2TPVPN等,这些协议最终会通过DHCP服务向终端提供合法的IP信息。设备进行DHCP认证中,在RFC2131协议的VLAN子接口中描述了全部的阶段,其中基本阶段有四个:
终端首先向本地子网中广播发送“DHCPDIS COVER”,寻找DHCP服务器。
DHCP服务器向终端发回“DHCPOFFER”响 应,yiaddr字段中包含可以提供的IP地址,由于网络中可能有多台DHCP服务器,终端一般只会响应第一条。
终端继续向本地子网中广播发送“DHCPREQUEST”,包 含“server identifier”用来声明自己选择了哪一台DHCP服务器,以及“yiaddr”字段声明自己确认使用这个IP地址。
最终,DHCP服务器向终端发送“DHCPACK”,包含相应的网络配置。
当然,完整的协议交互中,还包含DHCPNAK、DHCPDECLI NE、DHCPRELEASE、DHCPINFO RM等过程,本文在此不在赘述。
2.OPTION 60协议
DHCP的附加协议中定义了一些OPTION,可以对DHCP进行进一步的控制。我们可以选择使用供应商类别识别符来进行终端的接入控制。这种方法规定在RFC2132之中,位于“Vendor class identifier”,其数据包中的Code字段为60,故俗称为“OPTION 60协议”。
3.基础DHCP实现
我们使用Centos系统搭建DHCP服务器,安装方法只需要利用如下命令即可:yum -y install dhcp。同时,将相应的防火墙端口也打开。
DHCP服务器的配置文件位于/etc/dhcp/dhcpd.conf中。
在配置文件中定义一个class,用来标识限定用的字符串:
然后就可以在各个subnet中 启 用“Vendor class identifier”了。以我们某业务为例,定义了一个17位掩码的子网(为了网络安全,相关的真实IP地址用C类子网代替):
然后定义给终端提供的附加网络信息:
然后,不使用东八区的标准北京时间,也可以剔除部分非法设备(我们某项目使用电缆传输时间,可以完全自定义):
最后定义一下租约时间,通过设备认证后,IP地址的租约时间可以设置长一些,笔者设置了6小时:
4.OPTION 60实现
上一步中已经定义好了限制OPTION 60用的class,那么只需要建立一个pool地址池,并在上述subnet中分配地址池的时候指定就可以了。
最后,再设置host的识别:
至此,终端的DHCP接入能力控制就完成了。只有符合规范的终端能够获取IP地址,其他终端申请时,服务器会用“no free leases”的理由而不响应其“DHCPDISCOVER”的 请求,并在日志中保留本次记录。
接入层限定
接入层的限制,最常用的就是限制VLAN和IP,除了上述DHCP自动获取以外,在项目运作中还存在给终端手动设置IP地址的情况。以某个项目为例,总共有一万多个终端设备全部需要手动调试,为了确保设备的安全,我们将这个业务的IP地址同样规划为手动设置。其中共需要手动设置的部分为:
1.VLAN子接口
将接入的数据业务封装在了各个VLAN中,同时全部的物理端口都启用聚合,防止单点故障。
例如某个接口“interface smartgroup3”,里面只配置一个description描述,不做其他配置。
然后给这个接口启用VLAN smartgroup3.500的子接口。给这个接口配置VCC,并封装QinQ为同样的 VLAN:encapsulationdot1q range 500。
2.虚接口
首先启用用户侧虚接口,例如“interface vbui3”。在“interface vbui3”之 中开 启“ARP proxy”来 用于接口之间的通讯,然后给接口分配一个地址“ip address 192.168.0.1” ,“255.255.255.0”来作为网关(为了保证安全,在这里的全部接口编号以及真实IP地址用C类子网地址来代替)。
接下来给这个“interface vbui3”接口设置一个地址池“ip-pool pool-name leniyspool pool-id 3”,并往地址池中注入多个地址网段:member 1 startip 192.168.0.1 end-ip 192.168.0.254。
由于我们的目的是通过静态IP来增强设备接入的安全,因此需要将整个地址池中除了网关以外的其他地址全部标记为静态。
最后,接口的绑定就非常简单了,直接在这个vbui接口中,配置“ip-host 192.168.0.5 smartgroup3.500 vlan 500”,就可以将一个IP地址绑定在这个聚合端口,其他没有绑定的IP地址则无法通过端口通讯。
终端硬件识别
当终端成功的接入网络中后,我们还需要在向其提供业务之前,最后确认其合法性。
互联网上经常用到的方法,有账号密码识别、来源IP识别、工作时间段识别、session识别、cookie识别等。但这些方法都是基于软件的识别。
我们除了使用上述识别方法之外,额外添加了终端硬件识别,再次强化终端设备接入能力。
首先是终端向服务器发起请求时,包含其CAID信 息(Conditional Access Identification),数据的调制方式采用64QAM相正交振幅调制,然后通过前面所述的DHCP或固定地址,将接收到的认证信息和CAID本身利用HTTPS加密发送给服务器。
接下来,服务器认证完毕上述信息后,仅仅允许终端与服务器之间进行数据传输,但传输什么内容,还需要再经过一步硬件的识别,也即MAC地址判定以及SN序列号判定。只有在两者与数据库中的数据都匹配了,才能正确的判断出来这个终端属于哪个权限组中,然后服务器才会向其提供相应的服务。
总结
在笔者单位的各个项目中,以上通过终端设备的控制,保证了服务安全稳定的运行。
在网络安全的防护中,不让非法终端接入网络中,是整个防御网的第一层。而终端设备接入能力的控制,既减少了多数非法设备的接入,又降低了网络中设备的攻击次数,减缓了网内防护设备的压力。
而且通过上述的各种方法的限制,成功接入网内的设备的来源比较容易定位,从而为今后一旦发生网络安全入侵事件时能够通过入侵定位、业务快速恢复等提供了帮助。