PPTP/L2TP With FreeRadius + MySQL on Debian

设置freeradius server部分

[bash]apt-get install freeradius freeradius-mysql
cd /etc/freeradius/
#启用sql.conf
sed -ie 's/^[ \t]#\$INCLUDE sql.conf$/\$INCLUDE sql.conf/' radiusd.conf
#取消sites-available/default每个SQL前面的注释
sed -ie 's/^#[ \t]sql$/sql/' sites-available/default[/bash]
此外 还需要取消sites-available/default里面所有unix和PAM(如果有必要)否则和系统同名的帐户就可能有登录问题

另外radutmp和file也可以注释 用了SQL方式后这些都没有必要了

[bash]
vim sql.conf
[/bash]
填写数据库用户名 密码 数据库名字等
然后停止radius服务 启用radius调试模式
[bash]freeradius -X[/bash]
试一下
[bash]radtest sqltest testpwd localhost 1812 testing123[/bash]
应该是不通过Access-Reject packet 才对 同时开freeradius -X的那个终端会打印消息 说明ok了
freeradius server部分设置完毕


设置radiusclient部分

查看PPP版本
[bash]apt-cache policy ppp[/bash]

ppp:
已安装:2.4.4rel-10.1
候选的软件包:2.4.4rel-10.1
版本列表:
*** 2.4.4rel-10.1 0
500 http://mirrors.163.com lenny/main Packages
100 /var/lib/dpkg/status

找到PPPD官网找到PPP2.4.4的源代码
[bash]wget ftp://ftp.samba.org/pub/ppp/ppp-2.4.4.tar.gz
tar zxvf ppp-2.4.4.tar.gz
cd ppp-2.4.4/pppd/plugins/radius/
cp -rf etc /etc/radiusclient[/bash]
当然 也可以在这里找到ftp://ftp.freeradius.org/pub/freeradius/
修改修改里面所有usr开头的路径为etc开头
[bash]sed -ie "s/\/usr\/local\/etc\/radiusclient/\/etc\/radiusclient/g" /etc/radiusclient/radiusclient.conf [/bash]
 
[bash]vim /etc/radiusclient/radiusclient.conf[/bash]
按需要修改radius认证服务器的端口和路径

authserver localhost:1812
acctserver localhost:1813

[bash]vim /etc/radiusclient/servers[/bash]
写入Radius认证服务起和密钥对
比如

localhost testing123

radiusclient部分设置完毕


设置mysql server+daloradius部分

写这篇文章的时候 刚好daloradius0.9-9-rc1出来了 这是三年来首次更新(虽然SVN一直在更新)先装依赖(PHPDB)
[bash]apt-get install php5-gd php-pear php-db[/bash]
[bash]wget http://sourceforge.net/projects/daloradius/files/daloradius/daloradius0.9-9/daloradius-0.9-9-rc1.tar.gz[/bash]
解压缩放到web目录下面
先用PHPmyAdmin创建一个radius/radius用户 同时创建一个同名数据库 赋予所有权限,然后
[bash]cd contrib/db/
#导入数据库
mysql -uradius -pradius radius <fr2-mysql-daloradius-and-freeradius.sql
cd ../../library/
vim daloradius.conf.php[/bash]
 
设定CONFIG_DB_USER CONFIG_DB_PASS CONFIG_DB_NAME以及其他为对应的值
然后创建一些基本用户组什么的
[sql]INSERT INTO radius.radgroupcheck (
id ,
groupname ,
attribute ,
op ,
value
)
VALUES (
NULL , 'user', 'Simultaneous-Use', ':=', '1'
), (
NULL , 'vip', 'Simultaneous-Use', ':=', '3'
);

INSERT INTO radius.radgroupreply (
id ,
groupname ,
attribute ,
op ,
value
)
VALUES (
NULL , 'user', 'Acct-Interim-Interval', ':=', '300'
), (
NULL , 'vip', 'Acct-Interim-Interval', ':=', '600'
);

[/sql]
使用默认密码administrator/radius登录daloradius,然后用daloradius添加一个用户test 隶属于user用户组 使用radtest测试下
[bash]radtest test pwd localhost 1812 testing123[/bash]

Sending Access-Request of id 1 to 127.0.0.1 port 1812
User-Name = "test"
User-Password = "pwd"
NAS-IP-Address = 127.0.1.1
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=1, length=20

mysql server+daloradius部分设置完毕


设置L2TP/PPTP和Radius对接

[bash]locate radius.so[/bash]
查找radius.so的位置 一般是/usr/lib/pppd/2.4.4/
编辑xl2tpd的option文件(这个文件可能是/etc/ppp/options.xl2tpd) 在末尾加上

plugin /usr/lib/pppd/2.4.4/radius.so
plugin /usr/lib/pppd/2.4.4/radattr.so
radius-config-file /etc/radiusclient/radiusclient.conf

PPTP如法炮制(这个文件可能是/etc/ppp/pptpd-options) ,即可。
这时候就可以使用PPTP/L2TP来连接下,如果没错误。当然是恭喜了。如果出错,看看freeradius -X的前端输出,可以用来诊断下。
关键还是细心谨慎。其实也不是很困难

Author Info :
  • From:PPTP/L2TP With FreeRadius + MySQL on Debian
  • URL:https://blog.ihipop.com/2011/05/2332.html
  • Please Reserve This Link,Thanks!
  • 《PPTP/L2TP With FreeRadius + MySQL on Debian》上有6条评论

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用*标注