一种基于Openwrt路由器的Portal认证的方法

文档序号:10515532阅读:1225来源:国知局
一种基于Openwrt路由器的Portal认证的方法【专利摘要】本发明公开了一种基于Openwrt路由器的Portal认证的方法,包括:步骤一,在Openwrt路由器上部署Wifidog协议,实现用户访问数据的拦截、重定向和在线状态保持的功能;步骤二,利用Openwrt系统支持的uhttpd服务和Lua脚本编程,建立本地认证服务器,实现用户的认证功能;步骤三,通过相关配置,将Wifidog协议和本地认证服务器相关联,实现本地认证的功能。本发明在Openwrt路由器上,基于轻量级的uhttpd和Lua建立本地认证服务器,保证上网认证功能的实现,同时以较小的负载占用保证路由器其他功能的正常运行;局域网内用户在连接上路由器后,直接通过浏览器就可以实现上网认证,不需要安装额外的认证客户端。【专利说明】一种基于Openwrt路由器的PortaI认证的方法
技术领域
[0001]本发明涉及智能路由器、嵌入式软件设计的
技术领域
,具体涉及一种基于Openwrt路由器的PortaI认证的方法。【
背景技术
】[0002]随着处理器性能的提升和成本的降低,路由器的处理能力越来越强,在完成网络数据转发的同时,还可以用来部署更多的功能,完成更多的工作。智能路由器是可以智能化管理的路由器,除了具有普通无线路由器的功能之外,还具有独立的操作系统,用户可以安装各种应用,满足多样化的需求。在商场、机场、宾馆等公共场所,为了避免无线网络被滥用,保证网络安全,同时便于对用户进行管理,管理员通常会对无线网络接入者采用一定的认证方式进行身份和权限的认证。目前这种情况一般需要购买专用的设备进行部署安装,从而实现接入认证和用户管理的功能;用户为了进行认证,有时还需要下载专门的认证客户端进行接入认证。考虑到智能路由器具有丰富的扩展性和更强的数据处理能力,借助Openwrt系统平台,将上网认证功能集成到路由器中实现,在本地端完成上网认证工作,不仅可以节约设备成本,同时在网页浏览器上就可以完成所有认证步骤,方便快捷。[0003]Portal认证通常也可以称作Web认证,Portal有入门或者进入的意思,所以Portal认证是用户接入互联网时需要进行的一种验证。当用户尚未通过认证时,用户只能访问指定网站的资源,针对其他网站的访问行为都会被拒绝或者强制重定向到指定的网站;当用户需要访问其他网站获取更多资源信息时,就必须在指定网页完成身份认证后,才可以完整使用宽带网络访问整个互联网的资源(参见文献【I】李新,周彩兰,朱荣.基于Portal技术的数字化校园门户的研究[J].计算机与现代化,2007(9):65-67.)。[0004]文献【2】(马燕,范植华.Web/Portal认证技术研究[J].微电子学与计算机,2004,21(8):76-79.)给出了一个简单的Portal认证系统的四个组成部分以及各部分负责的具体工作。主要包括:用户认证客户端,接入设备,Portal认证服务器和认证/计费服务器。PortalClient是发起认证请求的客户端,通常是用户手机平板等设备的浏览器,运行常见的HTTP协议。PortalServer是认证系统的服务器端,用于接收由客户端发起的认证请求,该服务器系统为用户提供一个自定义的Web认证界面,同时与BAS交互已经认证客户端的身份信息。接入设备实现宽带接入服务,当Client未认证并且发出了访问请求时,重定向用户的HTTP认证请求到PortalServer,并完成信息交互;当Client认证完成后,允许访问被管理资源。AAAServer负责与Client设备进行信息的交互,实现认证/授权/计费等服务。[0005]Portal认证按照选择的组网方式不同,认证的模式也有所不同。按照网络层次来看,主要可以分成两种认证方式:二层认证方式和三层认证方式。二层认证一般在接入设备的二层端口开启Portal认证,通过用户设备的MAC地址(或者MAC地址与IP地址结合)来区分认证用户和未认证用户(参见文献【3】王刚,王欣,冯铭能.一种基于WebPortal架构的校园网用户二次认证方案[J].广东通信技术,2014,34(2):17-19.)。三层认证则是在三层接口上开启Portal认证,根据IP地址进行局域网内用户身份的区分和确认。接入设备根据IP地址完成对用户上网请求的认证控制和报文转发(参见文献【4】钟汶娟.基于端口安全的校园网AAA系统设计与测试[D].重庆大学,2014.)。[0006]根据文献【5】(CN102143177B,发明名称:一种Portal认证方法、装置、设备及系统),可以将Portal认证的一般过程概括总结如下:[0007]I)未经过认证用户发起互联网访问请求时,该用户的访问请求在经过接入设备时会被重定向到Portal服务器,该服务器返回Web认证页面给用户;[0008]2)用户在认证页面中输入正确的帐号和密码后,将认证信息提交给认证服务器;[0009]3)Portal服务器的认证处理单元使用用户的认证信息与认证服务器通信进行认证;[0010]4)认证通过后,认证服务器或Portal服务器打开接入设备上用户与互联网的通路,允许用户访问互联网。【
发明内容】[0011]本发明的目的在于:I)本发明在Openwrt路由器上利用uhttpd服务和Lua脚本实现本地认证服务器功能;2)本发明在Openwrt路由器上实现完整的上网认证的功能;3)本发明针对局域网内用户,不需要安装额外的客户端,仅通过浏览器页面即可以实现上网认证。[0012]本发明采用的技术方案为:一种基于Openwrt路由器的Portal认证的方法,包括:步骤一,在Openwrt路由器上部署Wifidog协议,实现用户访问数据的拦截、重定向和在线状态保持等功能;步骤二,利用Openwrt系统支持的uhttpd服务和Lua脚本编程,建立本地认证服务器,实现用户的认证功能;步骤三,通过相关配置,将Wifidog协议和本地认证服务器相关联,实现本地认证的功能。[0013]l)Wifidog协议的部署[0014]为了实现局域网内用户的上网认证,必须对用户的访问数据进行拦截和识别。对没有通过认证、没有访问权限的用户的访问行为,强制重定向指定的认证页面进行认证;对已经通过了认证、拥有联网访问权限的用户的访问行为,予以放行。同时,经过认证的用户,可以正常的访问网络资源而不需要重复认证,由心跳检测程序负责维持用户的在线状态。Wifidog通过在路由器建立一系列的Iptables规则,实现访问拦截功能;通过和认证服务器的定时交互实现认证状态保持。[0015]2)本地认证服务器的建立[0016]为了在Openwrt路由器本地端对用户实现认证,借助Openwrt系统自带的uhttpd服务和对Lua脚本的支持,在Luci(Openwrt自带的Web管理服务器)的基础上,构建本地认证服务器。建立该认证服务器需要在Luci对应的目录下,编写认证以及保持在线状态相关的auth协议、login协议和ping协议,实现对用户身份的认证和访问权限的授予。此外,认证成功/失败的脚本、相关的网页页面都需要分别进行编写实现。[0017]3)Wifidog协议与认证服务器相互关联[0018]为了实现本地认证的功能,需要将Wifidog与认证服务器相关联。通过在Wifidog的配置文件中添加本地认证服务器的相关信息,包括IP地址、端口号和相关脚本所在目录等,从而将未经过认证的用户的访问行为重定向到本地认证服务器,完成认证和状态保持,实现局域网内的用户认证工作。[0019]本发明的流程图如图1所示,具体步骤如下:[0020]步骤I):局域网内用户在连接上路由器后,使用浏览器访问任意网站,该用户的访问数据会被拦截,通过检测该用户的访问数据中是否拥有认证成功的标志,判定该用户是否拥有外网访问权限。若用户是已经通过认证的,则访问请求予以放行,正常访问原请求网站。[0021]步骤2):将未验证用户强制重定向到认证服务器,该认证服务器基于uhttpd服务和Lua脚本实现,部署于路由器本地。[0022]步骤3):用户从认证服务器获取认证页面,该页面可以由管理员自定义产生,用户可以在该页面输入帐号和密码,从而实现与认证服务器的数据交互。认证服务器负责验证用户的提供的帐号和密码是否正确,如果错误,则返回用户一个认证失败的页面;[0023]步骤4):认证服务器对拥有正确帐号和密码的用户返回一个token值,该数值通过用户的IP地址、MAC地址等相关数据计算得到,一般在局域网内是唯一的。用户在获得该token后,会向认证服务器发起验证,若验证失败,则认证服务器向用户返回认证失败的页面。[0024]步骤5):token值验证成功后,认证服务器向用户推送一个认证成功页面。[0025]步骤6):用户认证成功,获取互联网访问权限,同时自动跳转访问原请求的网站。[0026]在Openwrt路由器上,部署实现portal认证功能主要包括Wifidog和认证服务器两部分。采用Wifidog实现针对局域网内用户HTTP访问数据的拦截和重定向;基于Luci自定义本地认证服务器,实现局域网内用户的认证功能。整个认证功能全部在Openwrt路由器本地实现。[0027]本发明的优点和积极效果为:[0028]1、在Openwrt路由器上,基于轻量级的uhttpd和Lua建立本地认证服务器,保证上网认证功能的实现,同时以较小的负载占用保证路由器其他功能的正常运行;[0029]2、局域网内用户在连接上路由器后,直接通过浏览器就可以实现上网认证,不需要安装额外的认证客户端;[°03°]3、整个Portal认证功能全部部署在Openwrt路由器上,不需要额外的设备支持,也不需要重新组网,节约成本;[0031]4、管理员可以自定义认证页面。【附图说明】[0032]图1为本发明一种基于Openwrt路由器的Portal认证的方法流程图。【具体实施方式】[0033]下面结合附图以及【具体实施方式】进一步说明本发明。[0034]本发明一种基于Openwrt路由器的Portal认证的方法,具体包括:[0035]1.Wifidog的部署[0036]Wifidog的基本原理是通过使用防火墙规则来完成对用户访问行为的拒绝和放行。在Wifidog启动后,主要通过客户端检测进程,交互进程和心跳检测进程三个进程来完成所有的工作。用户在连接了路由器后,检测进程负责监控用户的浏览行为,对于已经完成认证的用户的访问行为直接放行;对于未认证用户的访问请求,该用户所有的访问请求都会被重定向到指定网址(即认证服务器的页面)。交互进程用于客户端和认证服务器之间的数据交互,完成用户的认证请求和访问权限授予。心跳检测进程负责定期和认证服务器进行交互,将路由器的相关信息汇报给服务器,以发送字符串“ping”作为信号,认证服务器通常返回字符串“pong”给路由器。[0037]2.认证服务器的建立[0038]认证服务器需要与接入端的Wifidog配合,完成局域网内用户的访问外部互联网资源的认证。在认证服务端主要由auth协议,ping协议和login认证协议组成。配置实现主要通过以下三个函数实现:[0039]Ulogin认证协议用于获取网关地址、端口、用户MAC等的相关信息,结合用户发送的用户名和密码,随机生成一个token值返回给用户。当用户使用正确的帐号密码登录时,程序计算出唯一个token值,该值相当于用户的身份象征,表明该用户用于进行portal认证的权限。[°04°]2、auth协议用来实现token以及用户MAC等相关信息的校验,通过匹配来输出I或者0,通知Wifidog该用户是否拥有合法的访问权限。在login协议中,拥有账户密码的局域网用户获得了一个token,同时用户设备的MAC地址信息和对应token值也会保存在认证服务器下,当用户向服务器申请认证时,Portal认证协议会进行数值的比对校验,校验成功输出I,表明该用户可以进行互联网访问,否则输出0,表明目前该用户尚未通过认证,没有联网访问权限,只能进行本地局域网资源或者指定资源的访问。[°041]3、认证服务端ping协议与Wifidog端的ping协议对应,是对ping协议的回应。为了保证路由器本地端和认证服务器端信息的同步,Wifidog使用Ping协议定期向认证服务器发送路由端的当前信息状态,该类型的数据包以字符串“ping”作为信号。认证服务器接收到该类型的数据包后,回应字符串“Pong”给Wifidog,表示数据包已收到,同步完成;若没有“Ping”信号或者数据时间等信息不匹配,则同步失败,输出错误信息详情。[0042]为了在路由器上实现以上协议,在Iuci的controller文件夹下编写对应脚本文件login.lua、auth.1ua和ping.1ua,以及展示错误信息的msg.1ua和认证成功的portal.1ua0[0043](l)login.1ua是配置登录相关信息的登录脚本,采用GET方式获取网关的的IP地址、端口、ID、用户的MAC地址和用户初始访问的url,这些参数在网关向局域网客户端传输重定向请求时自动生成。此外,token值的计算和用户登录页面也由该脚本提供。[0044](2)auth.1ua是认证脚本,通过用户IP地址,AMC地址和token值等信息,判定用户是否登陆成功。参数匹配,则返回Auth:1;参数不匹配,则返回Auth:0。[0045](3)portal.1ua配置用户成功登录后的展示页面,仅需要接受ID即可,告知用户登陆成功了,并实现重定向到用户之前访问的网页。[0046](4)ping.1ua是心跳检测脚本,通过传入网关的id、启动时间、空闲内存和负载信息等,实现对AP节点的管理。Wifidog访问该脚本时,该脚本回应Pong字符串,表示收到相关?目息O[0047](5)msg.1ua配置登陆错误信息展示脚本,接受参数message并将显示message给用户。[0048]3.Wifidog与认证服务器关联[0049]为了将Wifidog和认证服务器配合使用,在完成Wifidog程序和认证服务器的编写和配置后,需要在在Wifidog中配置添加认证服务器的相关地址信息和参数,在实现两者的关联后,就可以实现针对局域网用户的本地上网认证的功能。Wifidog的配置文件是Wifidog.conf,在文件中添加认证服务器的相关信息。这里,由于基于Luci建立的本地认证服务器,所以地址配置为192.168.1.1,端口为80。针对认证服务器的各项协议,在默认路径下,将各个协议脚本的文件名同时添加到配置文件中,从而实现Wifidog和本地认证服务器的关联。【主权项】1.一种基于Openwrt路由器的Portal认证的方法,其特征在于,包括:步骤一,在Openwrt路由器上部署Wifidog协议,实现用户访问数据的拦截、重定向和在线状态保持的功能;步骤二,利用Openwrt系统支持的uhttpd服务和Lua脚本编程,建立本地认证服务器,实现用户的认证功能;步骤三,通过相关配置,将Wifidog协议和本地认证服务器相关联,实现本地认证的功會K。2.根据权利要求1所述的基于Openwrt路由器的Portal认证的方法,其特征在于,步骤一中Wifidog协议的部署的具体为:为了实现局域网内用户的上网认证,必须对用户的访问数据进行拦截和识别,对没有通过认证、没有访问权限的用户的访问行为,强制重定向指定的认证页面进行认证;对已经通过了认证、拥有联网访问权限的用户的访问行为,予以放行;同时,经过认证的用户,可以正常的访问网络资源而不需要重复认证,由心跳检测程序负责维持用户的在线状态,Wifidog通过在路由器建立一系列的Iptables规则,实现访问拦截功能;通过和认证服务器的定时交互实现认证状态保持。3.根据权利要求1所述的基于Openwrt路由器的Portal认证的方法,其特征在于,步骤二中本地认证服务器的建立具体为:为了在Openwrt路由器本地端对用户实现认证,借助Openwrt系统自带的uhttpd服务和对Lua脚本的支持,在Openwrt自带的Web管理服务器Luci的基础上,构建本地认证服务器;建立该认证服务器需要在Luci对应的目录下,编写认证以及保持在线状态相关的auth协议、login协议和ping协议,实现对用户身份的认证和访问权限的授予;此外,认证成功/失败的脚本、相关的网页页面都需要分别进行编写实现。4.根据权利要求1所述的基于Openwrt路由器的Portal认证的方法,其特征在于,步骤三中Wifidog协议与认证服务器相互关联具体为:为了实现本地认证的功能,需要将Wifidog与认证服务器相关联,通过在Wifidog的配置文件中添加本地认证服务器的相关信息,包括IP地址、端口号和相关脚本所在目录,从而将未经过认证的用户的访问行为重定向到本地认证服务器,完成认证和状态保持,实现局域网内的用户认证工作。5.根据权利要求1所述的基于Openwrt路由器的Portal认证的方法,其特征在于,具体实现步骤如下:步骤I):局域网内用户在连接上路由器后,使用浏览器访问任意网站,该用户的访问数据会被拦截,通过检测该用户的访问数据中是否拥有认证成功的标志,判定该用户是否拥有外网访问权限,若用户是已经通过认证的,则访问请求予以放行,正常访问原请求网站;步骤2):将未验证用户强制重定向到认证服务器,该认证服务器基于uhttpd服务和Lua脚本实现,部署于路由器本地;步骤3):用户从认证服务器获取认证页面,该页面可以由管理员自定义产生,用户可以在该页面输入帐号和密码,从而实现与认证服务器的数据交互,认证服务器负责验证用户的提供的帐号和密码是否正确,如果错误,则返回用户一个认证失败的页面;步骤4):认证服务器对拥有正确帐号和密码的用户返回一个token值,该数值通过用户的IP地址、MAC地址等相关数据计算得到,一般在局域网内是唯一的,用户在获得该token后,会向认证服务器发起验证,若验证失败,则认证服务器向用户返回认证失败的页面;步骤5):token值验证成功后,认证服务器向用户推送一个认证成功页面;步骤6):用户认证成功,获取互联网访问权限,同时自动跳转访问原请求的网站。【文档编号】H04L29/08GK105871881SQ201610303832【公开日】2016年8月17日【申请日】2016年5月6日【发明人】凌强,张雷,徐骏【申请人】中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1