freeradius client+ pptpd server + freeradius server + mysql成功结合总结
本博文于2011-10-10更新
freeradius client、pptpd、freeradius server、mysql的安装,我的博客上都有了
网上大部分介绍radius对接这类的文章,都是pptpd server跟radius server在同一台机器上,今天必须鄙视一下,配置神马的都是localhost跟127.0.0.1的。明显现实里面不会有这种情况,pptpd server跟radius server肯定是两台机器的。
其中最大的问题出在radius client跟pptpd server这块,因为这两个是同一台机器上面,这两个一定要结合起来才能到radius server那去。安装不说了,我的radius client是最新的,安装目录是在/usr/local/etc/radiusclient目录,不像大部分说的都弄到/etc/radiusclient上去。
radiusclient目录包含了最核心的配置文件,你别小看,几乎每个文件有不正确都会影响radius连接,目录有以下文件
dictionary、dictionary.microsoft、radiusclient.conf、dictionary.ascend、dictionary.sip、radiusclient.conf.in、dictionary.compat、issue、realms、dictionary.merit、port-id-map、servers
个人建议这些文件除了radiusclient.conf、server之外,其他的都从radius server的安装目录中的share目录中复制过去,而不是从pppd文件中复制过去
首先是radiusclient.conf,authserver acctserver就不说了
注释掉radius_deadtime 0 和bindaddr *
注释掉之后执行radlogin时会出现段错误,不用管这个,不影响对接,这个只是测试用的
然后是server:配置上radius server的ip跟key
然后是pptpd加入radius插件,首先安装pppd、ppptpd,然后修改pptpd的pptpd.conf和options.pptpd文件
pptpd.conf:去掉ppp的注释,改成 ppp /usr/local/sbin/pppd
options.pptpd:在最后面加入
plugin/usr/local/lib/pppd/2.4.5/radius.so
plugin/usr/local/lib/pppd/2.4.5/radattr.so
radius-config-file /usr/local/etc/radiusclient/radiusclient.conf要注意每台服务器可能plugin的位置不对,根据实际情况修改
尝试用windows客户端连接VPN,VPN用户名跟密码必须是radius mysql里面配置的用户名跟密码。radius server那边打开debug模式,pptpd server这边tail -f /var/log/pptpd.log查看实时log,此时log里面应该会有一些报错,报错中包含了具体文件具体行数的错误,很简单,哪行出错哪行就注释掉,直到VPN可以拨上为止。
由于上面的注释,所以radiusclient目录中的很多文件就做了修改。
radius server那边的话,在client.conf加入拨入的ip,其他的更改见博客其他文章,包括mysql的配置等等
这是VPN拨号用的用户名密码,不在是pptpd的chap-secrets里面的配置,而是mysql里面radusergroup里面的用户名跟密码了。
配置完毕后,windows客户端可以拨入VPN,若关掉radius server,VPN就拨不上了,并且pptpd.log里面会提示为radius 1812端口关闭
如果在连接过程中,log显示如上错误
解决方法:
添加一行
127.0.0.1 myhostname记住把myhostname改成你机器真正的hostname