广域网接入认证计费系统要对网络用户进行认证、授权、计费以及流量控制等运营管理需求的功能。目前此类认证计费技术主要有以下三种:PPPoE+Radius、DHCP+WEB+Radius、以及802.1X+Radius三种方式。因为802.1X认证方式具有安全可靠、简洁高效等优点而被广泛使用。本系统在802.1X协议提供的功能基础上,结合WinPcap的网络底层访问技术,避免了IP地址盗用、ARP地址欺骗等各类安全隐患。
1、认证计费系统解决方法的现状
公司目前应用的认证计费系统就是采用网络底层访问技术,利用winPcap这个分组捕获库完成了防NAT{-~理等多种功能。WinPcap是一个免费的分组捕获库,用它可以在windows操作平台上来实现对底层包的截取过滤。它是独立于主机协议(如TCP/IP)而发送和接收原始数据报,从而监听网络上传输的数据包。利用此编程技术,IP地址盗用、带宽控制等问题也得到了很好地解决。
2、认证计费系统中关键技术的分析与解决
2.1 IP地址盗用
目前防止IP地址盗用的方法有许多,如静态路由技术、交换机控制技术等。本系统中则采用了IP地址绑定技术。IP地址是可以随时更本文由论文联盟http://www.LWlm.cOm收集整理换,而网卡上的MAC地址则是唯一固定不变的、用户无法更改的。因此,通过IP地址和MAC地址在路由器和交换机上的绑定可以有效地避免IP地址被盗用,加强网络的安全性。
在本系统中采用了IP地址与MAC地址自动绑定的方法。首先由网管中心给每一台计算机分配一个IP地址,首次使用该地址时,由客户端程序将查询到的本机IP地址和MAC地址一起发送给管理服务器,服务器自动进行记录。用户要首先运行客户端程序进行验证,成功后则允许用户接入到Internet,此后每隔一段时间客户端程序都要把相关信息发送给服务器,如果服务器检测出有不符的信息,则会中断客户机的internet连接。
2.2 NAT代理
造成网费收入流失最主要的原因就是NAT代理技术的使用,即多人利用同一IP地址访问网络。这一技术实现时要使用双网卡或是多IP地址,因此,如果能够检测到双网卡或多IP地址则有使用该技术的嫌疑,可中断此连接。
为达到这一功能,系统利用winPcap捕获数据包进行分析处理。程序中主要使用了可以获得适合的网络接口的列表:Libpcap中的 pcap_findalldevs( )函数。它返回一个pcap_if结构的列表,根据此列表就可以判断出每个网络接口的信息。若有多于两个网卡或IP地址的情况,则反馈给相关功能模块,从而禁止网络功能。
2.3 ARP地址欺骗
TCP/IP网络依据IP地址进行数据包转发,IP地址用来确定网络上的主机地址,是个三层协议地址,而当IP包被送到数据链路层时,则需要使用物理地址来识别主机或节点。因此,主机在发送数据前需要知道下一跳IP地址的物理地址。ARP的作用就是获取与IP地址相对应的主机MAC地址。查询获得后,主机就会将IP地址到硬件MAC地址之间的映射存放到本机的一个可以动态刷新的ARP高速缓存中。在发送报文前,主机先在ARP高速缓存中查找是否有目标IP地址对应的目的MAC地址。但是这个映射主机并不会检查结果的合法性,而ARP欺骗正是利用TARP协议的这种机制。
2.4 带宽控制
局域网建立初期出口带宽各为100M,因为没有对用户带宽进行限制,不少用户经常抱怨网速太慢。经分析统计,网络的带宽主要为BitTorrent、HTTP、eDonkey、WinMedia、Real、FTP等应用程序所占用。这些应用当然可以通过路由器或交换机的关闭一部分端口来实现,但随着技术的不断发展,各种软件使用了动态端口甚至HTTP协议来躲避端口的检测,无法进行限制,缺乏灵活性。
针对这种状况,加之网络各类应用层出不穷,如果靠检测各类应用是无法跟上技术发展的。一方面,考虑到普通用户使用网络的情况,我们采用取了简便有效的方法:即限定每个IP地址的流量,而不管用户使用什么应用协议。计算机网络数据的输出模型如图2所示。
流量控制可以通过决定包是否加入排队、抛弃或是延迟从而达到限率、优先级控制以及限流的目的。客户端向服务器提供客户信息,服务器端则完成带宽分配、流量控制的任务。在Linux2.2及以上的版本内核里,可以利用iprouter命令集提供的tc命令完成带宽分配。
作者:金瑛