日期:2014-05-16  浏览次数:20700 次

freeradius 如何在mysql添加windows vpn用户
这样的情况:windows vpn_client ===> pptp_server + freeradius_client ===> freetadius_server + mysql 
目前遇到这样的问题,单独的VPN连接pptp服务器是可以正常连接上的,单独的freeradius client到freeradius server的验证也是可以通过的。 
唯一没有整合在一起的就是pptp+freeradius。 
在pptp server中的options.pptpd文件中我已经添加了相应的radius.so的插件,加入以后重启pptp,VPN就连接不上了,我猜应该是mysql那边没有添加相应的用户名,因为此时的windows自带的VPN报错为“用户名和密码错误”。(/etc/radiusclient/dictionary已经添加对应模块)OK,有的文章说可能是密码加密问题,我把windows vpn设置为不加密的,用户名验证可以通过,但是却无法注册,这时的错误提示为“ppp链路协议被终止”。 
还有就是,我的window vpn客户端在连接vpn时,freeradius server那边debug模式下没有任何输出,log也没有。是否是我的freeradius client还需进一步设置,以让vpn连接可以进一步提交到freeradius server那边呢? 
望各位高手亲朋好友互相奔走告知小弟如何解决,谢谢啦 


对了,freeradius有自带的web配置界面,但是是php3的,我用的nginx,还不知道如何让nginx编译php3的文件,高手知道的话也可以帮忙KO一下(nginx其他配置没有问题)

------解决方案--------------------
这个是如何设置呢?我也是在想,怎么将pptpd的请求发到radius server那边去,我以为只要在options.pptpd中加入radius.so就可以了。
那些配置文件基本上都配置了,有需要特别注意的吗
--------------------------
这肯定是不行的 你不设置 pptp怎么知道去哪个radius服务器认证 当然radius也没接受到你的数据包了

既然加载了radius.so 我想pptp应该是通过radius client来和radius服务器认证的
因此你只需要设置radius client的相关配置即可
/etc/radiusclient/servers 这里设置要去认证的服务器信息 大概格式如下
server-ip shared-secret
/etc/radiusclient/radiusclient.conf 这里也设置要去认证的radius服务器 大概格式如下
authserver server-ip:1812
acctserver server-ip:1813

这样配置好了之后 对应radius服务器的配置要和这里对应
/etc/raddb/clients.conf
client client-ip {
secret = shared-secret
shortname = pptp server
nastype = other
}
当然对应的信息要换成你实际的

另外你要用MySql 首先要建一个radius的数据库
然后把/etc/raddb/sql/mysql/schema.sql导入进去
然后把/etc/raddb/sql.conf修改成你实际的信息
然后在/etc/raddb/radiusd.conf里include /etc/raddb/sql.conf
还要修改/etc/raddb/site-enable/default 把注释掉的sql的行前面的#去掉
然后重启radius服务器 大概的步骤就是这样 你自己多尝试尝试