APP下载

基于Radius 的安全网关系统探析

2021-05-20井浩然

科学技术创新 2021年12期
关键词:网卡局域网网关

井浩然*

(1、安徽理工大学 计算机科学与工程学院,安徽 淮南232001 2、中国电信股份有限公司宿州分公司,安徽 宿州234000)

1 概述

安全网关系统是在普通网关的基础上,增加安全措施的一种设备,在传统的路由转发、NAT 地址转换和DHCP 地址分发功能之外,增加额外的措施以增强网关的抗入侵和抗攻击能力。它的功能是提供对数据包的认证、数据包内容的鉴别、文件系统的监控等,集管理、认证、数据处理于一体,是智能家居的管理控制汇中心。且设备实现简单、投资低,可在一台设备上进行实现。

普通的网关设备工作在TCP/IP 协议的网络层,接收挂载在网关下面的设备的IP 包,并将其转发出去,不关心应用层的数据。如果此时通信的数据包带有恶意数据(比如木马程序或者蠕虫病毒),或者非法在局域网内接入一个设备连入智能家居网络,都会对整个网络的数据带来难以预估的影响,可能会导致用户数据信息泄露甚至人身财产安全受到损失。

本文提出的安全网关对外工作在TCP/IP 协议的网络层,只提供内外之间的路由转发功能;对内工作在应用层,提供设备接入和认证功能。

2 相关工作

目前对于安全网关的解决方案还未形成一个统一的规范和方向,传统的解决方案有以下几种:(1)在原有的协议基础上进行修改[1],添加轻量级的加密算法或使用裁剪过的认证流程;(2)完全使用新的协议替代原有协议,比如将IPv4 相关协议换成IPv6相关协议;(3)寄希望于新的网络结构[2]。

而近十年关于智能家居安全网关方案研究较少,国内研究仅有文章介绍在智能家居网关上部署安全措施。总结其思路,主要是调用openssl 库与服务器实现身份认证,完成密钥协商,以确保之后的数据安全传输[3]。并在网关实现访问控制,对用户身份进行鉴权。

本文采用的是使用Radius 服务进行认证,并根据认证返回的结果来决定数据包的流向,从而进行数据包的鉴别与分类。

Radius 服务(Remote Authentication Dial In User Service),即远程验证拨入用户服务[4]。Radius 协议规定了NAS 与Radius 服务器之间如何传递用户信息和记账信息,Radius 服务器负责接收用户的连接请求,完成验证,并把传递服务给用户所需的配置信息返回给NAS[5]。Radius 服务的特点是:(1)采用C-S 模型;(2)安全性高;(3)灵活的认证机制,支持PAP 或CHAP;(4)可扩展协议。其核心认证思想是:通过事先在服务端设置好的用户账号和共享密钥(secret),客户端在请求认证时,通过随机产生的16 字节的字符串Authenticator,结合共享密钥使用md5 对用户密码进行加密,发送access-request 的认证请求包,若认证通过,则服务端返回access-accept 响应,并在响应包中包含通过获取请求包中的信息进行md5 加密的ResponseAuth 信息[6]。

3 安全网关系统

3.1 认证分析

文章提出的安全网关系统,内置认证功能。将Radius 服务集成到网关之中,设备在接入网关的局域网时,就需要进行认证,否则网关的防火墙会执行策略,使其无法加入网络。为方便用户进行认证,减少操作步骤,采用Radius 服务的PAP 验证方式,虽然PAP的验证方式是以明文的形式进行数据传输,但是在传输过程中,是经过共享密钥secret 和随机字符Authenticator 进行加密,对于密文的安全性,在本系统的环境下,有充足的保证。

文章提出的安全网关系统,硬件设备需要两块以上的网卡,一张网卡A 用户挂载用户组件局域网,另一张网卡B 用于连接互联网,用于与公网的数据沟通。在网卡A 上搭建HTTP 服务,搭建一个web 页面用户用户在设备接入网络时的认证,为了考虑到部分的智能家居设备没有用户操作界面窗口,可在可操作的已认证的终端上,录入设备的IP、MAC 地址,进行认证;并且在网关系统内,开启1812 端口,网关内搭建Radius 服务,网卡A 上Web 获取的一系列信息从网卡A 的IP 发送至Radius 服务的1812 端口,进行认证,认证成功记录其相关信息,并操作防火墙放行数据包。

3.2 路由转发

路由转发功能是本系统的核心功能之一,其最重要的作用就是在数据包认证之后根据认证的结果对数据包的执行策略,是丢弃还是放行还是重定向回去重新认证,取决于其是否可以认证成功。在承接认证结果的功能的基础上,还起到一个防护内网安全的作用,如果是未授权设备接入,自然不会拥有管理员分配的用于认证的账号,进而无法加入局域网,也无法通过网关访问到互联网。

在网关系统上部署Linux 基本操作系统,通过操作iptables 进行策略制定,只有数据包中Radius 服务返回的access-accept 的特征值,才会修改iptables 策略,将数据包从网卡A 转发至网卡B,联通局域网与互联网,认证不通过则重定向回认证界面,认证超过指定次数则丢弃数据包,并在一定时间内终止其认证资格。

3.3 数据包鉴别

不同的应用通常依赖于不同的协议,而不同的协议都有其特殊的指纹,这些指纹可能是特定的端口、特定的字符串或者特定的Bit 序列。基于“特征字”的识别技术通过对业务流中特定数据报文中的“指纹”信息的检测以确定业务流承载的应用。

很多恶意攻击行为可能隐藏在有效载荷中。这些有效载荷中可能含有P2P 传输、垃圾邮件、钓鱼网站等。很多电子商务网站程序中的JSP、HTML 也可能带着后门和木马程序[7]。

在两个网卡上部署探针,持续嗅探通过的数据包,对数据包的内容分层鉴别,对属于恶意代码的特征字进行识别。比如木马文件会带有对带有特征字的数据包进行拦截并丢弃,防止恶意数据包进入网络导致无法预料的后果。

3.4 实现过程

本文采用python 语言的scapy 库来对数据包进行操作,scapy库可以使用户能够发送, 嗅探和剖析并伪造网络数据包。根据TCP/IP 协议层次,需要在网络层、传输层和应用层对数据包进行操作。

3.4.1 网络层需要指定源IP 地址和目的IP 地址,指定IP 数据包的报头大小;

ip = IP (src='172.16.220.1',dst='172.16.220.128',flags=0x0000,ihl=5)

3.4.2 传输层需要指定源端口和目的端口,并指定使用协议;

port = random.randint (40000,50000) #发送端端口取随机数,避免每次相同被猜解

udp = UDP(sport=port,dport=1812)

3.4.3 应用层需要根据Radius 协议在传输层之上构造数据包,在保证协议层次的前提下,设定默认的字段值。

图1(a)和图1(b)为在请求过程中,使用Wireshark 软件抓取的数据包。

图1 Wireshark 抓取的数据包

在认证成功之后可以获取到Radius 返回的access-accept 的响应,网卡A 上的HTTP 服务在接收到了该响应之后,操作后端程序修改Linux 的iptables 策略,将以通过认证的设备的IP 为源IP和目的IP 的数据包放行。

3.4.5 部署流量探针

在完成了数据包的认证和转发功能之后,为了进一步提高网关的安全系数,计划在两张网卡上分别部署流量探针,即抓取通过的数据包并交由后端代码进行分析。图2(a)和图2(b)分别展示了设备通过网关对某一IP 进行数据沟通时抓取的数据包。

dpkt = sniff(iface=eth0, count=1000)

dpkt = sniff(iface=wlan0, count=1000) #在网卡上抓取1000个流量包

图2 网关抓取的数据包

针对两个网卡,分别抓取流量,一方面可以保存为日志进行备份,方便日后调取查阅;另一方面可以部署算法对数据包进行分析,对于数据不正常的数据包,比如频繁进行TCP 握手但是都未完成的、局域网内充斥着广播报文时、存在ARP 表中一个IP 地址对应多个MAC 地址时,都可以对相应的设备进行操作,结束对其的DHCP 服务或者强制让它重新认证等,以保护内部局域网的安全环境。

还可以基于包检测的技术,对于经过的被抓取的数据包进行鉴别,识别恶意数据包的特征字符,并针对鉴别出的结果操作iptables 进行策略变更,阻断其进入其他网络导致有不良影响,避免遭受网络攻击或者成为网络中的肉鸡。

4 结论

提出了一种基于Radius 服务的安全网关系统,将认证功能集成到网关之内,在一台设备上完成接入、认证、路由的功能,是一种轻量级的网关系统。该系统的创新之处在于,开发了一套程序接口整合HTTP 服务、认证服务、iptables 策略,由设备接入网关发起认证开始,到认证结束数据包转发至公网,全流程只需提供用户名和密码即可完成,操作简单、方便可行。

实验证明,整体系统可正常运行,用户微感知,连接质量良好,不区分不同厂商的设备,兼容性强,亦不影响设备的正常访问和使用,表明该系统具备可行性。

猜你喜欢

网卡局域网网关
基于FPGA的工业TSN融合网关设计
一种主从冗余网关的故障模式分析与处理
联网全靠它 认识笔记本的无线网卡
基于VPN的机房局域网远程控制系统
Server 2016网卡组合模式
天地一体化网络地面软网关技术及其应用
车联网网关架构的设计
计算机局域网组建及管理探讨
局域网性能的优化
挑战Killer网卡Realtek网游专用Dragon网卡