Total Pageviews

Thursday 30 July 2015

一个基于FreeRadius的VPN销售管理平台



安装方法:
1、导入xiao3_vpn.sql.zip到radius库
2、重命名config/app.yaml.simple 为 config/app.yaml
3、按注释配置config/app.yaml文件。
4、所有文件到服务器并设置 public_html 目录为网站根目录
5、保证 tmp 目录可写
测试环境:
Centos 5.8
Nginx/1.2.4, Php/5.4.7,Mysql 5.5.27
网址重写:
1、Apache只要服务器支持就好了
2、Nginx请参考public_html/nginx.conf.simple
收款接口:目前使用双功能交易接口,如需更换请联系我。
特别申明:
1、此程序未经严格测试,切勿用于正式的商业环境,无视此警告导致任何损失与本作者无关。
2、此程序侧重于VPN帐号管理,简单的订单账单系统,对于Free Radius仅仅提供简单的设置,任何关于Free Radius的设置、配置问题请自行查阅其他资料。

项目发布地址:https://github.com/arivcc/xiao3vpn
直接下载地址:https://nodeload.github.com/arivcc/xiao3vpn/zipball/master
技术支持:http://www.xiao3.org xiao3vv#gmail.com
--------------------------------------------------------------
其他一些类似的免费VPN搭建管理系统收集:
https://github.com/qsun/ParDiff-VPN
http://code.google.com/p/ppvswa/
https://github.com/avastms/PPVSWA
https://github.com/chon219/moevpn-ose
http://code.google.com/p/vpnonekey/
http://code.google.com/p/lxfyprj/
http://bbs.zqhost.net/thread-184-1-1.html,http://bbs.zqhost.net/thread-1193-1-1.html
-------------------------------------------------------------------------------------------------------
Poptop + FreeRADIUS + daloRADIUS的组合配置,CentOS平台。openvpn、l2tp类似。

1.程序下载:
Poptop: http://poptop.sourceforge.net/
FreeRADIUS: http://freeradius.org/download.html
daloRADIUS: http://sourceforge.net/projects/daloradius/files/

示例中这些源文件我在服务器中存放的路径为(后面有些地方会提到,以免不知所措):
/opt/poptop
/opt/freeradius-server
/opt/daloradius

2.安装:
安装需求:因为下面介绍的是编译安装,所以编译安装环境是前提,缺少什么可以看编译出错信息。另外最终是web管理,所以需要web服务器和MYSQL环境,本文以Apache为例。

安装没什么可说的,Poptop和FreeRADIUS都直接在源码目录执行以下命令:
# ./configure
# make
# make install
编译出错的话,请自行解决。

3.配置:
Poptop配置:
文件路径:/etc/ pptpd.conf

    ppp /usr/local/sbin/pppd #pppd所在路径
    option /etc/ppp/options.pptpd #options.pptpd所在路径
    localip localhost #VPN服务器对外IP,可以为IP段,请指定IP
    remoteip 10.0.0.101-200 #分配给客户端的内网IP

复制代码
文件路径:/etc/ppp/options.pptpd

    name pptpd
    refuse-pap #拒绝pap
    refuse-chap #拒绝chap
    refuse-mschap #拒绝mschap
    require-mschap-v2 #要求mschap-v2
    require-mppe-128 #要求mmpe-128
    ms-dns 8.8.8.8 #客户端首要DNS
    ms-dns 8.8.4.4 #客户端次要DNS
    lock
    nobsdcomp
    novj
    novjccomp
    nologfd
    plugin /usr/local/lib/pppd/2.4.5/radius.so #pppd radius插件路径
    plugin /usr/local/lib/pppd/2.4.5/radattr.so #pppd radius扩展属性插件路径
    radius-config-file /usr/local/etc/radiusclient/radiusclient.conf #radiusclient配置文件路径

复制代码
radiusclient设置:
文件路径:/usr/local/etc/radiusclient/radiusclient.conf

    auth_order        radius
    login_tries        4 #重试次数
    login_timeout        60 #超时时间
    nologin /etc/nologin
    issue        /usr/local/etc/radiusclient/issue
    authserver         localhost:1812 #用户验证服务器(如果不是本机,请指定IP)(可以为多个,依次尝试)
    acctserver         localhost:1813 #用户账户记录服务器(如果不是本机,请指定IP)
    servers                /usr/local/etc/radiusclient/servers #FreeRADIUS服务器和VPN服务器之间通讯的密钥配置文件
    dictionary         /usr/local/etc/radiusclient/dictionary #字典文件
    login_radius        /usr/local/sbin/login.radius
    seqfile                /var/run/radius.seq
    mapfile                /usr/local/etc/radiusclient/port-id-map
    default_realm
    radius_timeout        10
    radius_retries        3
    login_local        /bin/login

复制代码
文件路径:/usr/local/etc/radiusclient/servers

    localhost        pr74uJak #FreeRADIUS服务器地址(如果不是本机,请指定IP)及通讯密钥

复制代码
文件路径:/usr/local/etc/radiusclient/dictionary
在此文件的最后加入下面的内容

    INCLUDE /usr/local/etc/radiusclient/dictionary.microsoft

复制代码
FreeRADIUS设置:
文件路径:/usr/local/etc/raddb/radiusd.conf
去掉$INCLUDE sql.conf前的注视符号#
去掉$INCLUDE sql/mysql/counter.conf前的注视符号#

文件路径:/usr/local/etc/raddb/sql.conf
在这个文件中配置你的MYSQL信息,相关行如下:

    server="localhost" #MYSQL服务器地址
    #port=3306 #MYSQL服务器端口(一般不需要修改)
    login="radius" #MYSQL服务器登陆用户名
    password="radpass" #MYSQL服务器登陆密码
    radius_db="radius" #MYSQL服务器radius_db所在数据库名

复制代码
其它的只要用daloRADIUS目录中的相应文件覆盖掉FreeRADIUS设置目录中的相关文件即可
/opt/daloradius/contrib/configs/freeradius-2.1.8/cfg1/raddb --> /usr/local/etc/raddb

daloRADIUS配置:
建立FreeRADIUS数据库,可直接使用/opt/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql这个SQL文件来建立:

    mysql -uroot -p
      CREATE DATABASE radius;
      GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "radpass";
      exit
    cd /opt/daloradius/contrib/db/
    mysql -uroot -p radius < fr2-mysql-daloradius-and-freeradius.sql

复制代码
把/opt/daloradius/下的全部文件拷贝到/var/www/daloradius/目录中

配置apache以便可以web访问
文件路径:/etc/httpd/conf.d/daloradius.conf

    #
    #  Web application to manage RADIUS
    #

    <Directory "/var/www/daloradius">
      Order Deny,Allow
    # Deny from all
      Allow from all
    </Directory>

    Alias /daloradius /var/www/daloradius

复制代码
文件路径:/var/www/daloradius/library/daloradius.conf.php
可能需要更改的行如下:

    $configValues['CONFIG_DB_HOST'] = 'localhost'; /*MYSQL服务器地址*/
    $configValues['CONFIG_DB_USER'] = 'radius'; /*MYSQL服务器登陆用户名*/
    $configValues['CONFIG_DB_PASS'] = 'radpass'; /*MYSQL服务器登陆密码*/
    $configValues['CONFIG_DB_NAME'] = 'radius'; /*MYSQL服务器radius_db数据库名*/
    $configValues['CONFIG_FILE_RADIUS_PROXY'] = '/usr/local/etc/raddb/proxy.conf';
    $configValues['CONFIG_PATH_RADIUS_DICT'] = '/usr/local/share/freeradius';
    $configValues['CONFIG_PATH_DALO_VARIABLE_DATA'] = '/var/www/daloradius/var';
    $configValues['CONFIG_LOG_FILE'] = '/tmp/daloradius.log'; /*daloRADIUS日志路径*/

复制代码
至此整个安装配置过程完成,启动pptpd、FreeRADIUS以及MYSQL和Apache服务:

    # service mysqld start
    # service httpd start
    # pptpd
    # radiusd

复制代码
访问http://localhost/daloradius/以进行web管理PPTP VPN.
daloRADIUS的使用另做叙述.