游戏代理VPN(pptp+radius+mysql) 安装笔记总结
otto
|
1#
otto 发表于 2008-07-02 11:13
游戏代理VPN(pptp+radius+mysql) 安装笔记总结
作者:vrlinux.cn
软件:pptp+radius+mysql 平台:linux,可以是各发行版,内核最好是2.6以上的 我的测试平台是RHEL5 beta1,内核 2.6.18-1.2747.el5xen 这个版本有个好处,就是内核已支持MPPE,不用再安装 首先要确定内核是否支持mppe 方法: modprobe ppp-compress-18 && echo ok 如果显示ok,即表示内核已具备了mppe支持 如不支持,需要升级内核以支持mppe 软件下载 http://sourceforge.net/project/showfiles.php?group_id=44827 下载2个rpm包。 dkms-2.0.10-1.noarch.rpm kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm dkms是一个新的软件,能让你在不编译内核的基础上,外挂一些内核的模块。 kernel_ppp_mppe就是mppe支持的内核模块 OK后最好重起下你的系统 安装pppd 也可以在上面的地址下载,但只可以下载RPM包,最高版本为 ppp-2.4.3-5.rhel4.i386.rpm,也有FC的 源码下载可以到 http://samba.org/ppp/download.html,最新版本为 ppp-2.4.4b1.tar.gz 最新版已支持 mppe,不用再打补丁 如不支持,可以到此下载 http://mppe-mppc.alphacron.de/#AEN56,包括ppp和内核补丁 检查pppd是否支持mppe [root@localhost]# strings `which pppd`|grep -i mppe|wc --lines 42 结果大于36,即表示支持 解压安装 tar -zxvf ... configure,make,make install 用 make install-etcppp 来安装范例配置文件 安装pptpd 下载 http://sourceforge.net/project/showfiles.php?group_id=44827 最新版本,源码包的是 pptpd-1.3.4.tar.gz RPM包的是 pptpd-1.3.3-1.rhel4.i386.rpm,FC6 解压安装 tar -zxvf ... configure,make,make install 配置 pppd 的配置文件 /etc/ppp pptpd 的配置文件 /etc/pptpd.conf 在pptpd.conf localip 10.10.10.1 remoteip 10.10.110.2-100 localip是pptpd的对外服务的ip,也就是客户端需要拨号的ip remoteip是拨号服务器分配给拨号用户的ip ,可以用-表示ip范围 添加测试用户 /etc/ppp/chap-secrets # Secrets for authentication using CHAP # client server secret IP addresses test pptpd test * 认证方式设置 /etc/ppp/options.pp 默认就可以用,如果不mppe,或是不用加密,可以在此文件设置 为方便测试,请打开debug和dump调试,并查看/var/log/messages 文件 启动pptpd后,就可以在XP建立连接测试了 以上一个简单的VPN就完成了. 结合radius 软件下载 http://www.freeradius.org 当前最新版本为 freeradius-server-2.0.4.tar.bz2 但与1.X的配置方式上,有比较大的区别. 我开始是用2.X测试的,但没成功,最后用了1.X的.有空再研究2.X的. 解压安装 tar -zxvf ...,configure,make,make install 配置 从pppd的源码目录把下面这个目录复制到/etc/radiusclient/ cp -R ppp-2.4.4b1/pppd/plugins/radius/etc /etc/radiusclient/ 修改 options.pptpd 在最后加入 plugin /usr/local/lib/pppd/2.4.4b1/radius.so 配置 /etc/radiusclient中的servers和radiusclient.conf 在servers中,你需要增加一个radiusd的地址和密码 localhost vpn 这里localhost表示你的radiusd就在本机,并且访问的密码是vpn 在radiusclient.conf中 加入 authserver localhost:1812 acctserver localhost:1813 确认上面也是本地的,默认就是本地,所以一般不需要修改。 同时确保这个文件中radiusclient相关的路径所有的路径都是 /etc/radiusclient 开头的。 配置freeradius 在 freeradius/etc/raddb 下 修改clients.conf 这里说明一下,所有的nas都是radiusd的client,nas就是那个pptpd,所以这个文件就是配置pptpd的登陆权限的。 client 127.0.0.1 { secret = vpn shortname = mm nastype = other } 修改127.0.0.1部分为上面的样子。secret就是我们刚才在/etc/radiusclient中servers里设置的那个。这两个要一致 在users文件的最上面加入一个用户 ww Auth-Type:= MS-CHAP, User-Password=="ww", Simultaneous-Use:=1 Service-Type = Framed-User, Framed-Protocol = PPP, Framed-IP-Address = 255.255.255.254, Framed-IP-Netmask = 255.255.255.0 说明一下 ww是用户名 auth-type是验证的类型 第二个ww是密码 Simultaneous-Use是允许这个用户名同时登陆的个数 所有这些都是check属性,要写在第一行 然后第二行开始用tab开头,是服务器返回给radius客户端的(也就是返回给pptpd)时reply属性。 其中ip地址设置为255.255 用debug模式运行radiusd sbin/radiusd -x 测试,在XP建个VPN连接,用户密码均为 ww 结合mysql mysql安装略过. 建立一个radius数据库,把结构导入即可 库结构文件在 freeradius16/share/doc/freeradius/examples/mysql.sql 配置sql.conf 在安装目录下的etc/raddb 修改sql.conf的连接信息 # Connect info server = "192.168.8.53" login = "radius" password = "radius" # Database table configuration radius_db = "radius" 去掉下面的simul。。。。前面的# 打开sql的用户同时连接数测试的语句 # Uncomment simul_count_query to enable simultaneous use checking simul_count_query = "SELECT COUNT(*) FROM ${acct_table1} WHERE UserName='%{SQL-User-Name}' AND AcctStopTime = 0" 配置radiusd.conf 注释掉 authorize { 的files 去掉sql前的注释 注释掉 preacct { 的files 注释掉 accounting { 的radutmp 去掉sql前面的# 注释掉 session{ 的radutmp 去掉sql前面的# 去掉 post-auth { sql前的# 总之就是去掉files模块,开启sql模块 在数据库中添加用户 在usergroup中添加一个test用户,组名为vpn 在radgroupcheck中添加一个vpn组, attribute为Simultaneous-Use op为:= value为1 的纪录 在radcheck中添加 username为test attribute为 User-Password op为== value为test 这样就添加了一个用户为test,组为vpn,密码为test 并且所有的组用户的都只能1个用户名登陆一次 测试 用debug模式启动radiusd 本文为安装笔记总结,前些天忙,今天才整理完.如有问题错误等可以和我联系QQ:5846690 转载请保留此连接:http://www.vrlinux.cn/gaojijishu/fuwuqi/20080604/13228.html |