当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 建立Linux下的RADIUS服务器

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 建立Linux下的RADIUS服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 38 ::
收藏到网摘: n/a


作者:栗朝军

----远程认证拨号用户服务(RemoteAuthenticationDialInUserService,RADIUS)是在网络访问服务器(NetworkAccessServer,NAS)和集中存放认证信息的Radius服务器之间传输认证、授权和配置信息的协议。其协议的标准定义在IETF的RFC2865和RFC2866文件中。对于中小型企业NAS应用来说,以Linux为平台建立RADIUS服务器是非常好的选择。使用共享软件完全可以建立简洁、高效的RADIUS服务器,而且无须任何软件上的花费。

----一、RADIUS的工作原理

----RADIUS以Client/Server方式工作,实现了对远程电话拨号用户的身份认证、授权和计费功能。其Client端多为通过拨号方式实现的NAS,主要用来将用户信息传递给服务器;RADIUS服务器则对用户进行认证,并返回用户的配置信息。为了保证传输的安全性,在Client和Server之间传送的数据均以MD5方式加密。在RADIUS的Server端和Client端之间的通信主要有两种情况;一种是接入认证;另一种是计费请求。

----使用RADIUS可以实现集中化的认证和记费功能,可以减少管理的负担和费用,同时还可以实现很多扩展的功能,如用户拨号时间的限定、用户拨号时间的配额、根据用户分配特定IP地址等等。RADIUS是一种基于UDP协议的上层协议,认证服务的监听端口号为1812,记费服务的监听端口号为1813。RADIUS的工作流程是:(1)用户拨入NAS;(2)NAS向RADIUS服务器发送一系列加密的“属性/值”;(3)RADIUS服务器检查用户是否存在、属性/值是否匹配;(4)RADIUS服务器发送回“接受“或“拒绝“给NAS。

----RADIUS服务器通常是基于数据库来实现的。对于大型ISP,通常会使用诸如Oracle之类的大型后台数据库。而对于中小型应用使用mySQL这样的数据库就足够了。其实RADIUS的身份验证也可以通过LDAP来实现,但其应用不如数据库那么广泛。

----这里介绍一种使用IC-RADIUS与mySQL配合建立RADIUS服务器的方案。并分别介绍了使用Cisco2610+ModemPool作为NAS和使用Linux作为NAS的配置实例。

----二、RADIUS服务器的建立

----首先安装配置好Linux的基本系统,注意需要安装开发工具、Perl、PerlDBI和mySQLDBD模块,当然还必须安装mySQL数据库。这里我们假设把数据库和RADIUS服务放在同一台服务器上。现在几乎每个Linux发行版本里都包含mySQL,所以可以直接安装到系统里。具体步骤如下。

----1.安装和配置ICRADIUS

----(1)输入以下命令

----#tarxvfzicradius-0.18.1.tar.gz

----#cdicradius-0.18.1/src

----然后拷贝针对Linux的Make文件Makefile.lnx为Makefile,命令如下:

----cpMakefile.lnxMakefile

----这里需要注意的是有可能需要修改Makefile文件,把mySQL库、头文件的位置根据实际安装的情况加以修改。对于可执行文件的安装位置也可以修改。

----(2)运行如下命令

----#make

----#makeinstall

----2.创建RADIUS数据库

----(1)连接mysql数据库,命令如下

----#mysql-uroot-pyourpassword

---->CREATEDATABASEradius;###创建radius数据库

----然后需要创建RADIUS数据库需要的各个表格,这里要使用icradius-0.18.1目录下script子目录中的radius.db文件,该文件已经定义了所需要的各个表格,这里只要使用命令

----#mysql-uroot-pyourpasswordradius
----即可。这时就创建了Radius认证和计费所需要的各个表格,见附表1。

----3.填充各个表格

----向上面创建的各个数据库的表中添加内容。对于dictionary表的内容,icradius软件提供了一个脚本文件script/dictimport.pl来创建,步骤如下。

----(1)编辑该文件,修改

----my$dbusername=root;

----my$dbpassword=yourpassword;

----为对应的数据库管理员的用户名和密码。

----(2)运行该脚本,命令如下:

----#./dictimport.pl../raddb/dictionary

----如果使用Cisco路由器,还需要加载Cisco的dictionary文件,命令如下:

----#./dictimport.pl../raddb/dictionary.cisco

----(3)向nas表格中添加内容,先进入mysql:

----#mysql-uroot-pyourpasswordradius

----执行SQL语言命令如下:

----insertintonas

----values(0,"cisconas","nas","10.60.39.250","cisco",32,"cisco","public","on");

----其中各字段的意义见附表2。

----(4)srcipts目录下的radius.cgi是一个实现Web界面管理用户及记费信息的CGI程序,但是要在使用该脚本程序以前,首先要在radcheck表格中添加如下内容:

----INSERTINTOradcheckVALUES("","admin","Password","adminpassword");

----INSERTINTOradcheckVALUES("","admin","Radius-Operator","Yes");

----这里,admin为RADIUS管理员的用户名,adminpassword为管理员的密码。

----(5)将radius.cgi和usage.cgi拷贝到Web服务器的cgi-bin目录下,再编辑这两个文件,正确的设定数据库管理员的用户名和密码。最后指定两个文件中的$cookiedomain及$radhost为空。两个文件中的$radsecret指定为NAS和RADIUS共享的密码。

----4.配置启动radiusd

----(1)在/etc/目录下创建子目录raddb

----#mkdir/etc/raddb

----(2)在该目录下创建文件client,并设定其访问权限:

----#touchclients

----#chmod664clients

----(3)把icradius-0.18.1/raddb/目录下的radiusd.conf拷贝到/etc/raddb目录下:

----#cp~/icradius-0.18.1/raddb/radius.conf/etc/raddb/

----(4)把~/icradius-0.18.1/raddb/中的所有文件拷贝到/etc/raddb目录中。

----其中在~/icradius-0.18.1/redhat/目录下有一个名为rc.radiusd-redhat的文件,它是redhat环境下radiusd的启动文件,将其拷贝到/etc/rc.d/init.d目录下:

----#cp~/icradius-0.18.1/redhat/rc.radiusd-redhat/etc/rc.d/init.d/rc.radiusd

----(5)编辑文件/etc/raddb/radius.conf文件,password后面修改为mysql的管理员密码。

----(6)编辑文件/etc/rc.d/init.d/rc.radius,把如下内容:

----RADIUSD=/usr/sbin/radiusd

----WATCHER=/usr/sbin/radwatch修改为(缺省安装时)

----RADIUSD=/usr/local/sbin/radiusd

----WATCHER=/usr/local/sbin/radwatch

----(7)拷贝~/icradius-0.18.1/scripts目录下的radwatch到/usr/local/sbin目录下。拷贝~/icradius-0.18.1/scripts目录下的radiusd.cron.daily到/etc/cron.daily/目录下。拷贝~/icradius-0.18.1/scripts目录下的radiusd.cron.monthly到/etc/cron.daily/目录下。

----(8)启动radiusd,命令如下

----/etc/rc.d/init/rc.radiusdstart

----5.添加用户

----在浏览器里输入http://radiusserver/cgi-bin/radius.cgi进入管理界面,在这里输入RADIUS管理员的用户名和密码。

----(1)创建一个组,该组具有所有用户都应该具有的特性,为该组起一个名字。

----(2)进入组属性设置界面,在“replyitem”中设置最基本的属性,命令如下:

----Framed-ProtocolPPP

----Service-TypeFramed-User

----(3)添加用户,为该用户组起一个名字:aaa,并设定该用户的密码。

----(4)进入了用户属性设置界面,选择“addtogroup“*”all_user组”*“确定”,就可以看到,该用户如下“replyitem”:

----Framed-ProtocolPPP

----Service-TypeFramed-User

----(5)如果需要设置该用户的时间限制,则需要输入时间限制的数字,注意时间单位为秒),因此一小时的时间限制对应的“Total-Time-Limte”属性值为3600。

----(6如果需要是设置回拨,在“replyitem”中选择“Cisco-AVPairlcp:callback-dialstring=1234567(回拨的电话号码)”。对于“checkitem”和“replyitem”根据不同的NAS设备类型有非常多的可选项,其功能也非常丰富。

----三、拨号服务器的设置

----通过上面的步骤,RADIUS服务器基本建立完毕了。为了让拨号服务器使用RADIUS作为拨号用户的身份验证方式,必须在拨号服务器上作相应的设置。在本文讨论的实例中使用了Cisco2610路由器作为拨号服务器,在配备了16端口的异步串口模块后,可以允许16个用户同时拨入。在Cisco2610上完成拨号基本配置可以正常工作后,需要加入如下语句来使用RADIUS作身份认证和记账。

----…

----aaanew-model#激活AAA(authentication、authorization、accounting)访问控制

----aaaauthenticationlogindefaultlineenable#进行login认证,若RADIUSServer未找到从本地数据库内查找

----aaaauthenticationpppdefaultradiuslocal#进行P