基于传输层协议的网络访问控制研究

来源 :中小企业管理与科技·上旬刊 | 被引量 : 0次 | 上传用户:hot_way
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】基于通过域名解析控制网络访问的原理,提出一种设计方案。首先运用网络分析库WinPcap构建网闸程序,抓取TCP/IP协议数据包,并进行分析,筛选出DNS、HTTP等OSI应用层协议的请求数据包。在此基础上由网闸程序根据不同协议构建响应数据包回复这些请求,从而将网络访问引导至指定IP地址,实现网络访问控制。该方案的设计为相关技术的进一步研究提供了新的思路和参考。
  【Abstract】Based on the principle of network access through DNS control, a design scheme is put forward. First using WinPcap network analysis library building network gateway program, grabbing the TCP/IP protocol packets, and analyzing it ,selecting the request packet of the OSI application layer protocol such as DNS, HTTP. On this basis, through the network gateway program reply to these requests according to different protocols build response packet, which will lead to specify the IP address, realize the network access control. The scheme design for relevant technology provides a new train of thought and reference for further research.
  【關键词】TCP/IP协议;域名解析;DNS劫持;广告路由器
  【Keywords】TCP/IP protocol; DNS; DNS hijacking; advertising router
  【中图分类号】TP393.08 【文献标志码】A 【文章编号】1673-1069(2017)03-0073-03
  1 引言
  域名解析是把域名解析到一个IP地址的过程,通过域名解析用户不再需要记住难记的IP地址,只通过好记的域名即可访问服务器,是常见的用户访问网络的行为。而当今有许多场景是需要对网络访问进行控制的,比如学校开设的上机操作课程、公共场所免费Wi-Fi信号的网络接入认证、对国内外敏感网站的访问以及特定的内部工作网络等,都需要对用户上网行为进行控制。目前,控制用户网络访问的相关技术在国内取得长足进展,许多硬件、软件类产品已投入商业使用。
  2 目前常见的网络访问控制技术介绍
  ①DNS协议特征分析技术。该技术原理是在网络访问链路中一个节点的网络设备上监听DNS端口,根据DNS协议特征筛选出该端口上接收到来自用户端的DNS查询请求类数据包,并构造一个指向特定IP地址的DNS响应数据包返回给用户端,常见的DNS劫持、DNS污染等都属于该技术应用范畴。该方案优点在基于DNS协议特征进行处理,不会被安全防护软件、防火墙等视为网络安全威胁。但其局限性在于不能完全阻止用户的网络访问行为,比如用户可以通过IP地址直接访问网络,或者使用VPN上网,这些能绕开DNS解析。同时,用户端可以通过修改本机Hosts文件的方法设置域名正确的IP地址,也可以通过安装防DNS污染软件忽视掉不正确的解析结果,因此该技术的应用效果有限,仅仅能控制通过域名来访问网络的行为。[1]
  ②ARP欺骗技术。由于局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。因此,在用户端未获得访问许可时,可以将假网关设备的MAC伪装成网关设备的MAC地址发给用户端,让用户端的所有网络访问数据包流向假网关设备,从而达到限制用户端的网络访问行为。ARP是地址解析协议,是一种将IP地址转化成物理地址的协议,利用ARP协议就可以实现上述的技术方案。ARP的工作原理是:每台主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示局域网内IP地址和MAC地址的对应关系。当源主机需要发送数据包到外网时,是需要将数据包发往网关设备IP对应的MAC地址的,因此会首先检查自己ARP列表中是否存在网关IP地址对应的MAC地址,如果有,则直接将数据包发送到这个MAC地址;如果没有,就向局域网内发送一个ARP请求的广播包,查询网关IP对应的MAC地址。此ARP请求数据包里包括源主机IP地址、源主机MAC地址、目标主机IP地址,其中源主机是指发出该ARP请求数据包的用户端设备,而目标主机是指源主机要查询的IP对应的网络主机。局域网中所有主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不一致就忽略此数据包;如果相同,该主机将源主机的MAC地址和IP地址更新到自己的ARP列表后,给源主机发送一个ARP响应数据包,里面填写了该主机的MAC地址;源主机收到这个ARP响应数据包后,就得到了目标主机的MAC地址,更新ARP列表中关于目标主机的IP地址和MAC地址后,源主机就可以利用此信息开始数据传输了。ARP欺骗技术,就是利用ARP协议的工作原理,在源主机发送ARP请求数据包查询网关IP地址对应的MAC地址时,回复一个ARP响应数据包,将自己的MAC地址伪装成网关设备的MAC地址发送给源主机,源主机一旦接收后,则数据包将流向这个伪装的网关地址。该技术方案的优点是成功后用户端的网络访问能被完全限制。缺点是容易被针对。ARP欺骗属于网络安全威胁,因此很多硬件厂商和软件商都推出很多产品用于防范ARP欺骗技术,比如防ARP的工具软件、带ARP防护功能的路由器。或者通过静态绑定、动态不绑定等方法都可以有效防止ARP欺骗。因此并不适合推广使用。   ③通过硬件设备控制用户端的网络访问。这种技术也已投入到商业应用中,比如智能Wi-Fi广告路由器就是代表之一,用户端需要通过该设备认证,否则无法访问网络。但是,传统的智能Wi-Fi广告路由器价格比较昂贵,且配置复杂,需要额外增加硬件,成本的增加和上手不易成为该技术推广的最大障碍。
  3 基于TCP/IP协议的网络访问控制技术
  综合目前常见网络访问控制技术的不足之处,本文提出了一种基于TCP/IP协议控制网络访问的技术方案,能有效解决域名解析控制、绕开解析管理、配置复杂、成本过高等问题。通过本方案为相关技术发展在改进网络访问控制实际使用效果和提高技术推广的可行性提供方面提供新思路和参考。
  3.1 相关知识介绍
  ①TCP/IP协议,是Internet最基本的协议,由网络层的IP协议和传输层的TCP协议组成。TCP/IP定义了电子设备如何接入互联网,以及数据在网络中的传输标准,能将多个交换网络连接起来,实现源地址和目的地址之间的传送数据。
  ②winpcap,是windows平台下的网络分析工具,为开发人员提供了完整的网络抓包和分析接口。通过该工具提供的开发库,可以编写出网闸程序监听流经主机网卡上的数据包,并可以通过该开发库构建响应数据包进行回复。
  ③DNS协议,属于应用层协议,提供将用户易于理解的主机名或域名转换为计算机或网络可识别的数字地址的机制。DNS端口号为53。
  ④HTTP协议,是一个属于应用层的面向对象的协议,是客户端浏览器或其他程序与WEB服务器之间的应用层通信协议。HTTP包含指令和传输信息,通过客户端与服务器之间请求、应答的交互过程,实现各类应用资源、超媒体的访问,是互联网应用最广泛的一种网络协议。
  3.2 工作原理
  由于用户在访问内网资源时数据包是不会经过网关设备的,因此要控制用户的网络访问权限,只需要在网关设备上对源主机发来的数据进行处理即可。
  通过winpcap开发库编写一个网闸程序,并部署在局域网内一台主机上,将该主机设为网关。然后启动网闸程序,监听网关主机上网卡收发到的数据包,筛选出来自局域网内其他主机访问外网的TCP/IP数据包,若属于DNS查询请求,构建一个指向特定IP地址的DNS解析结果数据包回复给源主机;若属于HTTP请求,构建一个内容为跳转至特定URL地址的HTML响应数据包并回复给源主机;若属于其他类型的数据包,则不响应该数据包。通過网闸程序的处理,访问网站类的请求会被引导到特定的地址,可以外接验证程序让用户获得上网的授权,而其他非授权的访问请求则被忽略,达到限制用户访问网络的目的,通过软件方式实现Wi-Fi广告路由器的功能。[2]
  3.3 网闸程序关键功能的实现代码
  ①监听网卡上TCP/IP数据包的实现。
  void init()
  {
  //alldevs为网关主机上所有网卡设备, target为当前监听网卡设备
  pcap_if_t *alldevs, *target;
  //设置监听条件,筛选出非网关主机的TCP/IP数据包
  char packet_filter[] = "ip or arp and ether src not f8:bc:12:93:36:f5";
  struct pcap_pkthdr *header;//抓取到的数据长度信息
  const u_char *packet_data;//抓取到的数据包
  //开启监听,网闸程序将抓取每一个符合条件的数据包
  while((res = pcap_next_ex( adhandle, &header, &pkt_data)) >= 0 && !_stop)
  {
  //处理数据包的代码…
  }
  }
  ②DNS查询请求处理的实现。
  void udpHandler(ip_header *ih, unsigned char *sourcePacket, pcap_pkthdr *header)
  {
  udp_header *uh;
  uh = (udp_header *)(sourcePacket + 14 + (ih->ver_ihl & 0xf) * 4);
  u_short dport;//目标端口
  dport = ntohs(uh->dport);
  if (dport == 53)
  {
  //筛选出DNS的查询请求
  if (((dnsh->flag & 0x0080) == 0x0000) && (ntohs(dnsh->qc) > 0))
  {
  dns_header rdnsh;//DNS报文头,省略构建其过程
  //开始构建DNS响应报文
  char rdns_pkt[256];
  memcpy(rdns_pkt, &rdnsh, 12);//DNS报头设置完毕
  u_char *pdns_data;//DNS报文内容,省略其他项的填充
  u_long tmp_address = _dnscapip.ip;//本机地址,这里是192.168.1.68;
  memcpy(rdns_pkt + 12 + udp_data_q_len + 12, &tmp_address, 4);
  _dns_pkt_len += 16;   //结束DNS响应报文的填充
  u_char destPacket[512];//UDP发送报文,忽略填充过程
  //发送数据包至源主机
  if (pcap_sendpacket(adhandle, destPacket, _dns_pkt_len + 14 + 20 + 8 + 12) != 0)
  fprintf(stderr, "\n发送DNS报文失败,错误: %s\n", pcap_geterr(adhandle));
  }
  }
  }
  ③HTTPS请求处理的实现
  void tcpHandler(ip_header* ih, unsigned int ip_len, char *szSource, char *szDest, unsigned char *pkt_data, pcap_pkthdr *header)
  {
  tcp_header *th;
  th = (tcp_header *)((u_char *)ih + ip_len);
  int tcp_packet_len = (th->len >> 4) * 4;// TCP数据包头长度
  char *tcp_data; //TCP数据包
  tcp_data = (char *)th + tcp_packet_len;
  //判断HTTP,含有HTTP的内容为HTTP协议
  if (strstr(tcp_data, "HTTP/") != NULL)
  {
  //构建回复源主机的包含HTML内容的TCP数据包
  char send200[300] = "HTTP/1.1 200 OK\r\nDate: %s\r\nContent-Type: text/html\r\nConnection: Close\r\nContent-Length: %d\r\n\r\nCFailed";//發送内容
  //填充发送内容。包括时间,http长度和本机IP
  sprintf_s(fp, send200, temptimebuff, _tmp_htmlstr_len, _wpc_lip);//_wpc_lip是本机IP
  //填充TCP数据包,省略内容填充过程
  u_char destpacket[1024];
  //发送报文:
  if (pcap_sendpacket(adhandle, destpacket, send_len) != 0)
  fprintf(stderr, "\n发送HTTP报文失败,错误: %s\n", pcap_geterr(adhandle));
  }
  }
  4 结语
  本技术方案相比其他技术方案,具有很多优点。基于TCP/IP协议,合理利用DNS、HTTP、IP等协议的工作原理实现网络访问的控制,不会被安全软件、防火墙等判为网络安全威胁;具有良好兼容性。由于运行于网关主机上,并对网卡抓取TCP/IP数据包,因此不论用户修改hosts文件,还是直接通过IP地址访问网络,都无法成功绕开网闸程序;具有经济性。本技术方案属于纯软件,只需要部署在一台能访问网络的主机上即可,不需要额外的硬件设备。相比硬件技术,本技术方案具有部署简单、运营成本低、配置方便和扩展性灵活等特点。因此,具有良好的推广前景。
  【参考文献】
  【1】兰少华,杨余旺,吕建勇. TCP/IP 网络与协议[M].北京:清华大学出版社,2006.
  【2】尹惠实. DNS体系结构分析[J].中国教育网络,2007(03):89-90.
其他文献
现有尿素造粒塔除尘工艺中水洗除尘应用较为广泛,但该工艺存在除尘效率低、水汽拖尾、填料易堵塞等缺点。随着环保要求的提高,近年来已有少数尿素生产企业尝试采用袋式除尘装
随着科学技术的飞速发展,人脸识别相关新闻频频进入人们的视野,基于人脸识别的智能系统在近几年也得到了较快的发展。二代身份证的发放,大量公民身份证信息的有效管理和利用就成了有待深入研究的课题,这也是计算机视觉和模式识别领域里的研究重点,相关产品也逐渐运用在社会中的各个方面。基于人脸识别的人脸与证件对比系统把计算机的摄像头拍摄到的人脸图像进行人脸的检测以及特征的提取,之后对图片进行预处理,然后把身份证上
【摘 要】当前大型水利水电工程建设项目在逐渐增多,根据建设项目的本身特点,对动态联盟组织模式的特征结构与结构集成进行具体分析。其中特征结构中主要包括整体特征、框架结构、层次结构及动态结构,而在结构集成方面,主要是集成框架、连接模式、结构支撑与结构评价,从全过程分析大型水利水电工程建设项目动态联盟组织模式。  【Abstract】The current large water conservancy
着人们生活水平的提高以及各地区经济的良好发展态势.国家相关部门在公路工程的建设方面逐年加大力度。由于公路建设的种种特性,其质量的监督管理工作很难一步到位,也正是由于这
水泥砂浆桩是采用水泥砂浆作为固化剂.即在纯水泥浆中掺入一定比例的粉细、中砂,增加地基土中的粗颗粒含量,降低地基土的塑性指数,改良土的物理力学性质指标,明显提高桩体无侧限抗