前一阶段为了验证一个需求,需要配置freeradius 和 jradius,这里把过程记录下来。
首先说明一下工作原理,freeradius是处理NAS的请求,提供AAA(认证,授权,计费)的服务,jradius 是为java开发者提供,如果需要一些定制的服务就需要自已来写代码,要想用jradius需要在freeradius中安装freeradius的rlm_jradius模块,NAS将request发向freeradius,freeradius再将请求转发给jradius。最新的freeradius版本是3.0,这个版本中是没有rlm_jradius这个模块,所以需要安装2.x的版本
一、freeradius的安装和配置。
freeradius可以选择源码安装和apt-get install (ubuntu),如果用源码安装可能会有很多问题,我安装时候就碰到了关于openssl的问题,应为前一个阶段openssl的一些版本中有一个heartbleed的漏洞,所以如果你的box中安装的这些版本的openssl那么就会报错,解决办法就是升级openssl,也有可能碰到tls相关的错误,这些时候网上相关资料比较少,我也是订阅了开发者邮件才解决了这个问题。
安装过程参考这个地址:http://coova.github.io/JRadius/
二、jradius
jradius包含了server和client两个部分,上面的地址包含了安装过程。
jradius client是用来模拟发送request,可以不安装jradius server,直接用jradius client 请求freeradius。
三、相关配置
FreeRadius 配置
1、配置client(NAS)
clients.conf
client localhost {
ipaddr = 127.0.0.1
secret = testing123
require_message_authenticator = no
nastype = other
}
2、定义一个测试用户
定义Alice作为一个FreeRADIUS测试用户. 添加下面的行到users文件的顶部. 确定第二行和第三行前面由一个单一的tab键缩进:
"alice" Cleartext-Password := "passme"
Framed-IP-Address = 192.168.1.65,
Reply-Message = "Hello, %{User-Name}"
1、use radtest
radtest alice passme 127.0.0.1 100 testing123
2、use radclient
echo "User-Name = sunny,User-Password = sunny" | ./radclient 10.75.7.64:1812 auth testing123
3、use jradiusclient
1.(have add user sunny to file users)
echo “User-Name = sunny” > radius.pkt
echo “User-Password = sunny” >> radius.pkt
2、execute command
sh radclient.sh 10.75.7.64 testing123 radius.pkt