radius作用

radius作用,第1张

Radius作用

Radius服务器能用来管理使用串口和调制解调器的大量分散用户。当用户想要通过某个网络(如电话网)与NAS建立连接从而获得访问其他网络的权利(或取得使用某些网络资源的权利)时,NAS起到了过问用户(或这个连接)的作用。NAS负责把用户的鉴别,授权,记账信息传递给Radius服务器。Radius协议规定了NAS与Radius服务器之间如何传递用户信息和记账信息,即两者之间的通信规则。Radius服务器负责接收用户的连接请求,完成鉴别,并把传递服务给用户所需的配置信息返回给NAS。用户获得授权后,在其正常上线、在线和下线过程中,Radius服务器完成对用户账号计费的功能。

RADIUS协议的认证端口号为1812(1645端口由于冲突已经不再使用),计费端口号为1813或(1646端口由于冲突已经不再使用)。RADIUS通过建立一个唯一的用户数据库,存储用户名,用户的密码来进行鉴别、存储传递给用户的服务类型以及相应的配置信息来完成授权。RADIUS协议具有很好的扩展性。RADIUS包是由包头和一定数目的属性(Attribute)构成的。新属性的增加不会影响到现有协议的实现。通常的NAS厂家在生产NAS时,还同时开发与之配套的Radius服务器。为了提供一些功能,常常要定义一些非标准的(RFC上没有定义过的)属性。

要安装整套的IC-RADIUS,首先我们需要如表9所示的几个软件包。需要说明一下:表9中的源码包都是免费得到的,它们可以帮助我们架设一个完整的RADIUS应用环境。

软件源码包 说明

mysql-3.23.39.tar.gz MySQL数据库系统

DBI-1.18.tar.gz Perl调用数据库的通用接口

Msql-Mysql-modules-1.2216.tar.gz Perl DBI针对MySQL的Driver,即DBD for MySQL

RadiusPerl-1.05.tar.gz Perl对Radius的Authen模块

icradius-0.18.1.tar.gz IC-RADIUS源码包

假设所有的原码包都被拷贝到了/usr/tmp目录下了。

安装MySQL

1.解压源码包:

CODE

Linux]#cd /usr/tmp

Linux]#gzip zxvf mysql-3.23.39.tar.gz

Linux]#cd mysql-3.23.39

2.配置参数,安装软件:

//将mysql安装在/usr/local/mysql中

CODE

Linux]#./configure prefix=/usr/local/mysql

Linux]#make //编译,时间有点长,要有耐心

Linux]#make install //安装到/usr/local/mysql中

3.创建初始数据库:

CODE

Linux]#cd /usr/local/msyql/bin

Linux]#./mysql_install_db

4.创建共享库链接

CODE

Linux]#ldconfig //更新系统共享库链接

5.复制启动/停止脚本:

L

CODE

inux]#cp /usr/tmp/mysql-3.23.39/support-files/mysql.server \

 /etc/rc.d/init.d/mysql.server

6.复制并修改初始化配置文件:

CODE

Linux]#cp /usr/tmp/mysql-3.23.39/support-files/my-medium.cnf \

/etc/my.cnf

使用vi打开my.cnf,在[client]下加入user=root,password处留空。

7.改变root口令:

CODE

Linux]#mysqladmin u root p password ‘新口令’

8.如果有多个版本的mysql共存

在/etc/my.cnf的[mysqld]下加入:

CODE

1. Log-bin

2. Server-id=1 //必须是唯一的,以区别于其他的mysql.server的id

安装DBI

CODE

Linux]#cd /usr/tmp

Linux]#tar zxvf DBI-1.18.tar.gz

Linux]#cd DBI-1.18

Linux]#perl Makefile.PL

Linux]#make test

//如果测试不通过,则使用make test TEST_VERBOSE=1

Linux]#make install

安装DBD for MySQL

CODE

Linux]#cd /usr/tmp

Linux]#tar zxvf Msql-Mysql-modules-1.2216.tar.gz

Linux]#cd Msql-Mysql-modules-1.2216

Linux]#perl Makefile.PL

这时,系统开始和用户交互,如下:

MySQL only

mSQL only (either of mSQL 1 or mSQL 2)

MySQL and mSQL (either of mSQL 1 or mSQL 2)

mSQL 1 and mSQL 2

MySQL,mSQL1andmSQL2

Enter the appropriate number: [3] 1

在我们这里的需求,应该回答1(说明此模块是同时for MySQL和mSQL的)

Do you want to install the MysqlPerl emulation? You might keep your old Mysql module (to be distinguished from DBD::mysql!) if you are concerned

about compatibility to existing applications! [n] n 这里回答n

Where is your MySQL installed? Please tell me the directory that

contains the subdir 'include'. [/usr/local/mysql]?

这是缺省的mysql安装目录,我们已经按照上面的方式安装,则MySQL自动被安装到这个目录下,则这里直接回车即可

Which database should I use for testing the MySQL drivers? [test]

直接回车即可

On which host is database test running (hostname, ip address

or host:port) [localhost]?

若mysql服务器和icradius服务器安装在同一个服务器上 则这里直接回车即可

User name for connecting to database test? [undef] root?

root Password for connecting to database test? [undef] passwd?

这里输入mysql的root用户的密码

make

make test

make install

安装RadiusPerl:Authen模块

CODE

Linux]#cd /usr/tmp

Linux]#tar zxvf RadiusPerl-0.05.tar.gz

Linux]#cd RadiusPerl-0.05

Linux]#perl Makefile.PL

Linux]#make

Linux]#make test

Linux]#make install

安装IC-RADIUS

1. 安装软件:

CODE

Linux]#cd /usr/tmp

Linux]#tar zxvf icradius-0.18.1.tar.gz

Linux]#cd icradius-0.18.1

Linux]#cp Makefile.lnx Makefile

Linux]#make

Linux]#make install

2.创建radius数据库:

CODE

Linux]#cd scripts

Linux]#mysql u root p mysql

Mysql>create database radius//创建radius数据库

//添加radius用户

Mysql>grant all on radius.* on radius@localhost identified by ‘radius’

Linux]#mysqladmin u root p refresh //刷新数据库内容

3.导入数据表:

CODE

Linux]# mysql -u root -pyourpassword radius <radius.db

修改dictimport.pl,设置

my $dbusername = 'radius'

my $dbpassword = 'radius'

然后,导入dictionary内容,使radius.dictionary数据表中包含了基本的属性(ATTRIBUTE)和属性值(VALUE)等信息。

CODE

Linux]# ./dictimport.pl ../raddb/dictionary

Radius数据库结构如表10所示。

Radius数据库

dictionary radgroupcheck

hints radgroupreply

nas radreply

radacct realmgroup

radact_summary realms

radcheck usergroup

4. 启动radiusd

CODE

Linux]#cd /etc/rc.d/init.d

Linux]#radiusd start

这样,我们已经在Linux上成功的安装了一个完整的RADIUS服务器,你可以体验一下RADIUS服务器运行的感觉了。若你对RADIUS协议的开发还兴趣的话,你可以在此基础上做深入的研究。

RADIUS(Remote Authentication Dial In User Service,远程用户拨号认证服务)服务器提供了三种基本的功能:认证(Authentication)、授权(Authorization)和审计(Accounting),即提供了3A功能。其中审计也称为“记账”或“计费”。

RADIUS协议采用了客户机/服务器(C/S)工作模式。网络接入服务器(Network Access Server,NAS)是RADIUS的客户端,它负责将用户的验证信息传递给指定的RADIUS服务器,然后处理返回的响应。

搭建Radius服务器的方法:

用户接入NAS,NAS向RADIUS服务器使用Access-Require数据包提交用户信息,包括用户名、密码等相关信息,其中用户密码是经过MD5加密的,双方使用共享密钥,这个密钥不经过网络传播;RADIUS服务器对用户名和密码的合法性进行检验,必要时可以提出一个Challenge,要求进一步对用户认证,也可以对NAS进行类似的认证;如果合法,给NAS返回Access-Accept数据包,允许用户进行下一步工作,否则返回Access-Reject数据包,拒绝用户访问;如果允许访问,NAS向RADIUS服务器提出计费请求Account- Require,RADIUS服务器响应Account-Accept,对用户的计费开始,同时用户可以进行自己的相关 *** 作。

RADIUS还支持代理和漫游功能。简单地说,代理就是一台服务器,可以作为其他RADIUS服务器的代理,负责转发RADIUS认证和计费数据包。所谓漫游功能,就是代理的一个具体实现,这样可以让用户通过本来和其无关的RADIUS服务器进行认证,用户到非归属运营商所在地也可以得到服务,也可以实现虚拟运营。

RADIUS服务器和NAS服务器通过UDP协议进行通信,RADIUS服务器的1812端口负责认证,1813端口负责计费工作。采用UDP的基本考虑是因为NAS和RADIUS服务器大多在同一个局域网中,使用UDP更加快捷方便,而且UDP是无连接的,会减轻RADIUS的压力,也更安全。

RADIUS协议还规定了重传机制。如果NAS向某个RADIUS服务器提交请求没有收到返回信息,那么可以要求备份RADIUS服务器重传。由于有多个备份RADIUS服务器,因此NAS进行重传的时候,可以采用轮询的方法。如果备份RADIUS服务器的密钥和以前RADIUS服务器的密钥不同,则需要重新进行认证。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9934098.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存