RADIUS指南(下:实战)

拓拔麒
2023-12-01

1 FreeRadius

1.1 安装

环境

RHEL AS4 

准备安装包

MySQL在http://dev.mysql.com/ 下载

FreeRadius 在http://www.freeradius.org/ 下载

安装

如果是源文件包先解开、进行配置,然后编译再安装

步骤:

tar –xzvf xxxx.tar.gz

进入到解开后的源代码所在路径后:

./configure

make

make install

如果是rpm包就比较方便了,直接输入:

rpm –ivh xxxx.rpm //后面为包名

启动

启动MySQL:service mysql start

启动FreeRadius:radiusd //后面跟参数-x表示以debug模式启动

故障排除:

安装时可能会提示缺少一些文件或类库(如openssl097,libstdc++-33-3.2.3,libmysql14-4.1.12,libfreeradius1-1.0.4),可以从网上搜索下载。

如果安装所需要的包后还是不行,可以找到文件后建立一个符号连接到/usr/lib目录下,也可以直接copy过去。

如:安装提示找不到libssl.so.0.9.7可以如下处理,

locate libssl.so.0.9.7 //查找,不能查找的话请先运行updatedb命令

//系统显示查找结果

ln –s /path1/xxxx /usr/lib/xxxx

//或者cp /path1/xxxx /usr/lib/xxxx

(网上查到还有种方式是将类库所在路径加入到系统搜索目录中,打开/etc/ld.so.conf,新建一行把路径加入,再运行ldconfig,不过发现往往无效。)

1.2 配置

配置FreeRadius

安装后配置文件一般放置在/usr/local/etc/raddb目录中。

修改clients.conf文件:

client 127.0.0.1 { //IP

secret = test //公钥

shortname = localhost

nastype = other

}

修改users.conf文件:

加入用户

ljy User-Password := "ljy"

Service-Type = Framed-User,

Framed-Protocol = PPP,

Framed-IP-Address = 192.168.20.128,

Framed-IP-Netmask = 255.255.255.0,

重新启动radiusd,输入测试命令

radtest ljy ljy localhost 0 test

如果提示包含Access-Accept字样表示成功:

Sending Access-Request of id 172 to 127.0.0.1 port 1812

User-Name = "ljy"

User-Password = "ljy"

NAS-IP-Address = 127.0.0.1

NAS-Port = 0

rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=172, length=50

Service-Type = Framed-User

Framed-Protocol = PPP

Framed-IP-Address = 192.168.20.128

Framed-IP-Netmask = 255.255.255.0

配置radius从MySQL存取数据

先配置MySQL

创建数据库radius

导入表结构

mysql -u root -p radius < mysql.sql //安装后将有数据结构文件//usr/local/share/doc/freeradius/examples/mysql.sql

插入数据

//组信息

insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local');

insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type','=','Framed-User');

insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask','=','255.255.255.255');

insert into radgroupcheck (groupname, attribute, op, value) values ("user", "Auth-Type", ":=", "Local");

//用户信息

insert into radcheck (username,attribute,op,value) values ('pal','User-Password','==', 'pal');

//把用户加到组里

insert into usergroup(username,groupname) values('pal','user');

配置FreeRadius使其支持MySQL认证

修改radius.conf文件

authorize {

preprocess

chap

mschap

suffix

sql

...

}

accounting {

...

sql

...

}

修改sql.conf文件

sql {

driver = "rlm_sql_mysql"

server = "localhost"

login = "root"

password = "mysql的密码"

radius_db = "radius"

}

重新启动radiusd,再输入测试命令

radtest pal pal localhost 0 test

如果提示包含Access-Accept字样表示成功。

至此基础配置完毕,radius可以正常工作了。

如果有什么故障可以查看日志文件,一般在/usr/local/var/log/目录下。

1.3 高级配置

允许外部NAS接入

修改clients.conf,将其IP加入,并按照业务需求修改各项属性。

自定义属性

进入到/usr/local/share/freeradius

创建一个字典文件,包含个性化属性,如dictionary.pal:

VENDOR PAL 88

BEGIN-VENDOR PAL

ATTRIBUTE PAL-Menu 200 string

END-VENDOR PAL

将其加入到dictionary文件中:

$INCLUDE dictionary.pal

重启radiusd。

在radreply或radgroupreply表中就可以使用该属性了,对应Attribute字段,直接填写属性名称。由于返回的一个数字,需要radius客户端自行解析。

hints文件

提示服务器对按照特定方式的建立的用户名提供指定服务

禁止登录

修改users文件

temp Auth-Type := Reject

Reply-Message = "Account disabled for nonpayment."

挂起用户组

修改users文件

DEFAULT Group == "suspended", Auth-Type := Reject

Reply-Message = "Account suspended for late payment."

并发登录限制

Test Auth-Type := System, Simultaneous-Use := 1

Service-Type = Framed User

 
 类似资料: