Sunday, August 14, 2011

FreeRadius安装和配置-基础

FreeRadius安装和配置-基础
0. 概述
FreeRadius是一个开源的Radius服务器系统,可以作为一般标准化的用户身份验证系统为网络中的用户提供服务,通常用作有线和无线的网络接入,为各种接入设备和方式提供用户身份鉴定和记账服务。
1. 系统
本文以CentOS 5.5系统作为参考操作系统平台,文中的各种命令、参数和设置均基于此系统。其他Linux系统应该大同小异。
本机服务器的IP地址为192.168.8.100。并且可以直接访问互联网(用于软件下载和安装)。

2.安装
使用以下命令安装FreeRADIUS软件模块,一般涉及到的有三个:
yum install freeradius2 (主服务)
yum install freeradius2-mysql (mysql支持)
yum install freeradius2-utils (本地测试工具如ratest等)

安装完成后可以使用下列命令检查已安装的软件包
rpm -qa freeradius\*
freeradius2-mysql-2.1.7-7.el5
freeradius2-2.1.7-7.el5
freeradius2-utils-2.1.7-7.el5

3. 启动和诊断模式
使用以下命令启动 radius服务程序,也可以停止服务和查看服务状态
service radiusd start/stop/status
如果需要随系统启动,下列命令将服务作为启动项目
chkconfig --add radiusd (添加注册)
chkconfig radiusd on (创建启动项目)
在系统调试过程中可以使用诊断模式,该模式可以诊断服务启动过程,配置信息错误和用户连接和响应等过程。但需要注意该模式不能和正常运行模式同时使用。
service radiusd stop (停止服务)
radiusd -X (进入诊断模式)
ctrl-c 退出诊断模式
正常进入诊断模式成功的结果应为
”Ready to process requests”

4. 配置文件
FreeRaduis的设置涉及到很多配置文件,这里稍作总结:
/etc/raddb/radiusd (主服务配置文件)
/etc/raddb/clients.conf (文件方式的客户端设备配置文件)
/etc/raddb/users (文件方式的用户配置)
/etc/raddb/sql.conf (数据库相关配置)

5. 客户端配置
这里的客户端指的是处理用户接入请求的网络设备,系统也为测试提供了一个内置的客户端。可以查看配置文件(默认不需要修改)
/etc/raddb/clients.conf 
系统默认配置了一个名为localhost的本地NAS Client配置设备,默认共享密钥为testing123。
任何需要利用radius服务器来进行验证前,都需要类似的客户端设置,通常的格式为:
client 192.168.8.100 {     
      secret = testing123 
      shortname = myradclient
      nastype=other
}
上述直接在服务器上创建一个客户端(其实是服务器本身)。

6. 测试帐号配置
这里使用一个保存在文件中的帐号作为测试帐号,编辑 /etc/raddb/users 文件,在尾部添加信息创建下列测试帐号
ufiletest Cleartext-Password := “password123”
含义是创建一个名为ufiletest,密码是明文"password123"

7. 服务测试
在运行 radius -X诊断程序后,在新的终端窗口使用下列命令(radtest,需要预先安装
freeradius2-utils
)测试服务是否正常运行
radtest ufiletest password123 localhost 10 testing123

语法为 radtest {用户名} {用户密码} {RADIUS服务器地址或主机名} 10(NAS端口,但好像没什么特别含义) {共享密码}
如果结果中有 Access-Accept 接受指令,表明服务器工作正常并且用户验证正常。也可以试着修改用户名或口令查看相关的错误信息,确认radius基本服务工作正常。


8. sql配置(MySQL)
上面都使用文件来保存相关信息如客户端、用户等等,在真正的较大规模的环境中通常使用数据库来保存和维护这些信息。就需要做相关配置告诉radius服务器如何来连接和使用数据库系统。
a. MySQL配置
我们假设已经在本机安装了MySQL数据库系统。进一步需要在MySQL数据库中创建相应的数据库和表结构。一个参考的表结构可以使用daloradius系统设计的表结构,由于此内容较多,但并不直接影响FreeRadius的设置,关于如何安装和配置MySQL for FreeRadius的更详细的信息,参见另一篇文章:
b. 包含sql.conf配置文件
编辑FR主服务器配置文件,取消注释信息,告诉系统包含sql.conf中的配置信息
$INCLUDE sql.conf 

c.编辑FR数据库配置文件中的连接信息
打开/etc/raddb/sql.conf
修改下列属性
login=”radius” (数据库登录用户)
password=”radpass” (相应密码)
radius_db=”radiusdb” (radius所使用的数据库名)
readclients=yes (是否从数据库中读取客户端设备列表)

d. 添加功能模块支持
编辑 /etc/raddb/sites-enabled/default 文件,取消sql关键字前的注释,以添加相关模块(可能包括authorize-认证,accounting-审计,session-会话用于监测同时连接,post_auth-验证后记录...)对数据库的支持,如:
authorize { (认证组件)
          preprocess (预处理)
          chap (支持chap)
          mschap (对mschap的支持)
          suffix (后缀)
          eap (支持eap)
          sql (支持数据库)
          pap  (支持pap认证协议)
}

重启radiusd服务或者进入诊断模式查看配置是否正确
e. 联合测试
检查在sql.conf中关于数据库特别是表的设置是否和数据库中的实际情况相符,使用sql语句在用户表中添加一个用户记录,就可以使用radiusd-X和radtest来进行测试了。

No comments:

Post a Comment