网上介绍freeradius client的文章真的有点少,不过他配置起来并不是很难,目前我也只是实现了简单的客户端-服务器的验证,而且还是在linux上,freebsd上面 还没搞定
首先下载client安装包
wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-client-1.1.6.tar.bz2
然后安装三部曲,不用指定什么路径,都OK的
(对 了,FreeBSD安装freeradius client的话,直接用ports安装就可以了,在目录/usr/ports/net/radiusclient,直接进去make,make install clean就可以,那些文件会自动生成,如果你在FreeBSD通过源码编译安装的话,总是会提示出现非法操作core dump之类的,至少我是这样的)
redhat、ubuntu、centos安装过程一般没出错,我的没出错,安装完了出错了
在运行radexample的时候
这里出现了error while loading shared libraries: libfreeradius-radius-2.1.8.so
其实在言下之意就是缺少一个叫做libfreeradius-radius-2.1.8.so的库文件,经查找发现这个库存在于/usr/local/lib目录下
采取的解决方式是将/usr/local/lib添加到/etc/ld.so.conf中
ld.so.conf文件内容如下:
include /etc/ld.so.conf.d/*.conf
添加一行 /usr/local/lib
完成后输入/sbin/ldconfig
再次运行radexample问题不会再出现
接着就是改配置文件了,首先,client这边,在目录/usr/local/etc/radiusclient中的 servers文件
加上一行
X.X.X.X(服务器ip) testing123
然后是radiusclient.conf,
authserver localhost
加上这一行: authserver X.X.X.X(服务器IP)
OK,client就改这些就可以了
然后服务器端,服务器端得安装见我博客中的另外一篇文章,这里不说了
改的文件是client.conf
在最后面加上
client X.X.X.X(client的IP){
secret = testing123
shortname = client3
}
(下面这一步可要可不要,如果后面的验证失败,可以试着添加以 下)接着是users文件
加上
test Cleartext-Password := "testing123" (第一个test是登录login名,密码不是testing123,而是你创建数据库的时候那个测试账号的密码,一般用户名密码都是test)
Service-Type = Framed-User,
Framed-Protocol = PPP,
Framed-IP-Address = X.X.X.X,(客户端IP)
Framed-IP-Netmask = 255.255.255.0,
Framed-Routing = Broadcast-Listen,
Framed-Filter-Id = "std.ppp",
Framed-MTU = 1500,
Framed-Compression = Van-Jacobsen-TCP-IP
(有多少个用户这里就要加多少个)
OK,服务器端就这些了,可以重启radiusd或者开启debug模式,radiusd -X
然后再客户端操作,执行radexample
login:test
passwd:test
看输出,一般不会出错,出错了的话检查一下配置
如果输出是什么什么OK就说明通过验证了,如果faild就是没通过咯,在看看配置,自己也顺便研究研究
最好用debug模式测试(radiusd -X),从输出多少可以得到一些信息,比如输出了客户端ip是unknown host,那就说明服务器端这边client.conf和users文件里没有加入对应的client信息,其他不会出什么问题
freeradius server + client + pptp