RADIUS协议下的校园用户管理系统研究

时间:2022-08-10 07:43:32

RADIUS协议下的校园用户管理系统研究

摘 要:介绍了RADIUS协议的结构,讨论了其认证的工作过程。并以校园网实际应用为例,建立了RADIUS校园用户管理系统,解决了校园用户中管理存在的问题

关键词:RADIUS;网络接入服务器;认证;授权;用户管理;数据库

中图分类号:G47文献标识码:A文章编号:1672-3198(2009)01-0354-02

1 引言

在当今的信息化社会里,计算机网络在我们的社会生活领域中发挥着越来越重要的作用。目前在高校网络建设的过程中,校园网在学校的信息化建设中已经扮演了至关重要的角色。校园网络是衡量一个高等院校的基础建设和管理水平的重要指标,网络安全和管理问题的日益严重,成为校园网络应用发展的巨大阻碍。

2 RADIUS协议简介

RADIUS (Remote Authentication Dial In User Service)是由朗讯公司提出的客户/服务器安全协议,现已成为INTERNET的正式协议标准。RADIUS协议描述了一种网络访问服务器与一个共享的认证服务器之间的通信规范。按照这种通信规范,网络服务器(NAS)通过共享认证服务器对访问它的用户实现认证。NAS和服务器依据规范交互它们的认证信息、授权信息和配置信息。RADIUS还给出了认证服务器和认证客户端(NAS)对信息的处理规范。认证服务器通过这些处理规范完成对访问NAS的客户的认证、授权和配置。

它是一种C/S结构的协议〔1〕,它的客户端通常是NAS(Net Access Server)服务器。RADIUS协议认证机制具有多样性,可以采用多种认证方式,如:PAP,CHAP。RADIUS进行的全部工作都是基于Attribute-Length-Value向量进行的,因此它的可扩展性非常好,可以满足多种应用需求。标准RADIUS 认证端口号是1812,计费端口是1813。一个完整的RADIUS 数据包是被封装在UDP的数据域中。RADIUS 协议包的格式如下:

1)编码占1个字节,该值决定了RADIUS数据包的类型。在接收到一个无效编码的数据包后,RADIUS服务器会直接丢弃该数据包。RADIUS协议指定了9种编码,有接入请求(Access-Request)、接入允许(Access-Accept)、接入拒绝(Access-Reject)、记账请求(Accounting-Request)、记账回应(Accounting-Response)、接入询问(Access-Challenge)、服务器状态(Status-Server)、客户机状态(Status-Client) 、保留(Reserved)9种类型。其中Access-Request、Access-Accept、Access-Reject)3种类型用于认证;Accounting-Request、Accounting-Response用于计费;Status -Server)、Status-Client常作为保留。

2)标识符(Identifier)占1个字节,用于辅助鉴别请求包和响应包。如果在一个很短的时间片内,不同的请求有相同的源IP地址、源UDP端口号和标识符,则RADIUS服务器会认为这是上一个请求的重复。

3)长度(Length)占2个字节,它指示包括编码、标识符、长度、鉴别码和属性在内的数据包的总长度。如果某个数据包长度比长度值要小,则此数据包会被直接丢弃。最小的长度是20,最大长度是40960。

4)鉴别码(Authenticator)占16个字节,其中最重要的字节最先被传输。鉴别码是用来鉴别RADIUS通信的数据源和隐藏用户密码的。根据所在数据包的不同,可将它分为请求鉴别码和响应鉴别码两类。、请求鉴别码(Request Authenticator)

5)属性(Attributes)在请求和响应数据包中携带着详细的认证、授权、信息配置细节。所有的属性在数据包中均以变长的三元组形式出现。属性的基本格式如下:

3 系统模块功能

本系统主要由3 大功能模块组成:

(1)认证。认证部分是核心部分,NAS 服务器向RADIUS 服务器提交账号和密码,RADIUS 服务器在后台MySQL 数据库中查找,如果用户名和密码正确,就向客户端返回IP、掩码、DNS、NAS 服务器IP 地址等信息,然后客户端才能上网。

(2)用户管理。该部分主要是对上网用户各种信息进行存储,并且提供一个Web 界面给上网用户修改密码和信息查询,系统管理员在该部分有最高的权限,可以对用户进行管理和查看系统操作日志。

(3)计费。针对学校的特殊情况,对部分用户实施的是包月计费,上网用户交款后,管理员直接转换用户的状态。

3.1 系统结构

3.2 数据库设计

在本系统中,后台数据库使用MySQL ,MySQL 作为一个开源的软件,可以运行在各种平台中。部分后台数据库表如下:

CREATE TABLE radcheck //radius用户认证表

id int(11) unsigned NOT NULL auto_increment

UserName varchar(64) NOT NULL default

Attribute varchar(32) NOT NULL default

op varchar(2) NOT NULL default =='

Value varchar(253) NOT NULL default

PRIMARY KEY (id)

UNIQUE KEY UserName (UserName(32))

CREATE TABLE userinfo //radius用户信息表

Id int(11) NOT NULL auto_increment

UserName varchar(16) NOT NULL default

passwd varchar(50) NOT NULL default

name varchar(16) NOT NULL default

sex varchar(6) default

identityCard varchar(18) NOT NULL default

xiaoqu varchar(10) default NULL

status varchar(8) NOT NULL default

type varchar(16) NOT NULL default

mail varchar(30) default NULL

teacher varchar(16) default NULL

workunit varchar(50) default NULL

phone varchar(15) default NULL

address varchar(100) default NULL

workaddress varchar(100) default NULL

time date default NULL

remark varchar(50) default NULL

operator varchar(16) default NULL

PRIMARY KEY(Id)

UNIQUE KEY username (UserName)

4 结语

文中设计了一种基于RADIUS协议的校园用户管理系统,同时由于采用了后台数据库技术,增加了系统的可靠性、可用性和可伸缩性,能够实现在FreeBSD,Linux等各种平台上运行。

参考文献

[1]Rigney C. RFC 2866 ,Radius Accounting[S].2000.

[2]RFC 2865,Remote Authentication Dial In User Service(RA2DIUS)[S].2000.

[3]唐磊,金连埔.大型拨号认证计费服务器的设计与实现[J].计算机工程与设计,2004(7):160-161.

[4]赵宇,刘刚,杨宗凯.一种基于Linux的Radius 客户端的设计与实现[J].计算机工程,2003(9):113-114.

上一篇:我国农业信息化现状与发展建设探讨 下一篇:嵌入式Linux环境下Web页面技术的实现