Total Pageviews

Sunday, 18 December 2011

PPTP VPN服务器用户管理系统-ppvswa

Waring : PPVSWA is still in developing process . Need PHP 5.2+

PPVSWA is a PHP project letting you able to manage PPTP VPN users Easyly.

PPVSWA 是一套PPTP VPN 用户管理系统, 主要面向社区用户,也可以支持商业运行。 使用它可以方便地管理用户,并可以发放激活码。

PPVSWA 的主要功能:

在线接收注册

管理员对已注册的用户进行激活/禁用

管理员向用户发送邮件

用户使用发放的激活码自行激活

用户自行查询帐户信息

统计用户在线时长/流量使用

兼容旧有(不受本系统控制)用户表

多服务器共用同一数据库(用户表)



#############################################################################
PPVSWA
Public PPTP VPN Server Web Authorize system. v0.6+ 6.14.2011 公共 PPTP VPN 服务器在线用户管理程序
This program is a GPLv3 Free Software. 本程序是在GPLv3协议下发布的自由软件。 copyleft avastms@ghostunix.org ############################################################################# This Program is for PPTP VPN user management, designed for noncommercial use (especially for Chinese communities),but cold be used commercially of course. Using PPVSWA, you can manage vpn users easily , even distribute activation keys. PPVSWA is based on PHP5.2 + MySQL,will need WebServer(like Apache) to operate,sending email needs support from your server(need 'sendmail').
本程序是一套PPTP VPN 用户管理系统, 主要面向非盈利社区用户 (特别是中国地区的社区) ,也可以支持商业运行。 使用它可以方便地管理用户,并可以发放激活码。 PPVSWA 依赖于PHP5.2 + MySQL,并需要Web服务器程序支持运行,发送email功能需要服务器支持(依赖sendmail程序)
Install Process 安装流程
Attention : This PHP Program Need PHP 5.2+ (including 5.2.0) And MySQL To Run.(You Should Install php-mysql as well.) 注意 : 本程序需要PHP 5.2(含)以上版本以及MySQL数据库才能运行。(并应同时安装php-mysql包(允许php连接mysql数据库))
1.Unzip all files into your web dictionary 1.将安装包全部文件解压到你Web服务器的有效目录中.最终产生的目录类似: /var/www/html/0.6+eng (推荐你给加压出的目录改个名字)
2.edit 'config.php',specify all variables. 2.编辑产生的目录中的'config.php'文件,定义其中每一个变量(设置),具体内容请看'config.php'。
3.open 'install.php' in your browser to initialize MySQL database 3.用你的浏览器访问你网站中装有PPVSWA的目录中的'install.php'文件以初始化MySQL数据库,访问URL类似 http://example.com/0.6+_eng/install.php
4.remove 'install.php' 4.删除安装目录中的'install.php'文件
5.If /etc/ppp/chap-secrets already exists,rename it as 'chap-secrets.old' Might use command "mv /etc/ppp/chap-secrets /etc/ppp/chap-secrets.old " 5.如果/etc/ppp/chap-secrets文件已经存在并存有有用内容,将其更名为'chap-secrets.old' 可能用到命令: "mv /etc/ppp/chap-secrets /etc/ppp/chap-secrets.old "
6.Change the privileges of the 'chap-secrets' into rw-rw--w-(662) Might use command " chmod +w /etc/ppp/chap-secrets " 6.将/etc/ppp/chap-secrets文件权限变更为 rw-rw--w-(662) 可能用到命令: " chmod +w /etc/ppp/chap-secrets "
7.Change the privileges of the 'sublog' into rw-rw-rw-(666) Might use command " chmod +rw ./sublog " under ppvswa install dictionary 7.将安装目录中的'sublog'文件权限变更为rw-rw-rw-(666) (你也可以在config.php中将sublogfile指向别的文件,但一定保证web服务器有权对其进行读写) 可能用到命令: " chmod +rw ./sublog " (在ppvswa安装目录下运行)
8.Change the privileges of the 'analyzedlog' into rw-rw-rw-(666) Might use command " chmod +rw ./analyzedlog" under ppvswa install dictionary 8.将安装目录中的'analyzedlog'文件权限变更为rw-rw-rw-(666) (你也可以在config.php中将analyzedlogfile指向别的文件,但一定保证web服务器有权对其进行读写) 可能用到命令: " chmod +rw ./analyzedlog " (在ppvswa安装目录下运行)
9.Install compelete, peers can access 'index.php' for registration ,administrators access 'admin.php' for user management. 9.安装完成,访问index.php可以注册用户,管理员访问admin.php可以进行管理操作。
Release note 发行注记
v0.6+ Dropped Jquery . Improved analyzing algorithm, preventing server overload. Several bugfix. 抛弃JQuery,重新支持ie6和移动设备访问。 改进了记录分析算法,防止系统过载,修复若干bug.
v0.6 Used JQuery for ajax. Specified IPs for peers, 254 peers maximum. Made functions analyizing system log file, fetching peer's total usetime and bandwith usage information. Fixed a few bugs. note: deletion of system log file will distroy everything. 使用JQuery进行Ajax, 造成IE6和部分移动设备不能使用管理, 对每一帐户指定了内网IP,最多对254个帐户指定IP。增加功能'分析系统记录',可以分析每个指定了IP的帐户的累计在线时间、累计流量使用。 注: 如果清空系统日志文件,将会造成毁灭性后果,此时应把'sublog'文件清空,注意此举将永久毁去所有已存在的分析结果记录
v0.5 Made AJAX for Admin page. No need to refresh all the time. Used md5(md5(x)) for password encodeing, improved safety. 为管理页面添加AJAX支持,变更帐户权限不必不断刷新页面。使用双重md5加密管理密码,提升安全性。实现了发email弹窗,避免刷掉管理主页面。
v0.4 Translated everything into English,fixing the encoding problem. Improved safety, no more possibility of SQL injection. 将程序分离成纯中文/纯英文版,避开编码问题,增加了过滤器的使用,增强安全性。
v0.3 Nearly everything got functionlised. Added new feature 'Activation Key','User Self Activation And Account Checking'. 几乎所有功能写成了函数形式,增加'激活码'、‘用户自主激活与帐户查询’功能,允许管理员发放激活码,用户使用激活码自行激活帐号,用户查询帐户状态。
v0.2 Integrated all features,Fixed bug (pptp vpn server name not specially defined),made full on-line management(authorize/deauthorize),added new feature 'email to all peers','fuse old chap-secrets file into the new one','admin password', Improved safety,Slightly improved UI。 整合所有功能,解决一关键bug,实现全管理(赋权/除权),增加‘给用户发邮件’、 ‘融合旧chap-secrets’ 、 ‘管理密码’ 功能, 略微改进前端设计。
File Description 文件介绍
'config.php'Is the config file ,you must specify all variables listed inside. ‘config.php’是配置文件,内部变量需全部正确设置
'install.php' initialise the database. 'install.php' 用于初始化数据库
This program collect registrations from 'form.php' 程序从'form.php'收集注册信息
All information collected by 'form.php' will be sent to 'handler.php',which writes all information into MySQL database. 'form.php'搜集的信息回寄送给'handler.php',负责将信息写入数据库。
'admin.php' Is the main page for Administrations. 'admin.php' 是管理主页面
All actions taken from 'admin.php' will be sent to 'auth.php',which will apply all the changes. 从'admin.php'发出的指令会寄送给'auth.php'执行
'mailmaker.php'Is used for email editing. 'mailmaker.php'用于编辑将要发给用户的电子邮件
'mailsender.php' Sends the email from 'mailmaker.php'. 'mailsender.php' 具体实施发邮件的操作。
'index.php' calls 'form.php' 'index.php'是形式主页,会连接'form.php'构建注册页面
'functions.php' is the library, all functions were difiened here. 'function.php'是函数库,所有功能在此定义。
'selfservice.php' is for user self-activation and account status checking. 'selfservice.php' 是用于用户自行激活和帐户查询的前端页面
'selfauth.php' take actions to apply self-activation. 'selfauth.php' 处理来自'selfservice.php'的激活请求
'checkstate.php' does the checking for users. 'checkstate.php'处理来自'selfservice.php'的查询请求
'viewkey.php' is for the administrator viewing unused activation keys. 'viewkey.php' 为管理员列出已经生成但尚未被使用的激活码。
'buildkey.php' is for key building, 5 keys at a time. 'buildkey.php' 生成新的激活码(根据系统时间) ,每次5枚
'chap-secrets' is the user secret file of PPTP VPN server, which usually located at /etc/ppp/; 'chap-secrets' 是PPTP VPN服务器程序存放用户名,密码的文件,一般情况下位于/etc/ppp/下。
'chap-secrets.old' is a extra file which will be added at the end of chap-secrets, if you have a chap-secrets file existed before using this program ,rename it as 'chap-secrets.old' or specify it in 'config.php' 'chap-secrets.old'是将要被ppvswa附加在新生成的chap-secrets之后的文件,如果在使用ppvswa之前已经在旧的chap-secrets中添加了用户,应把旧有的chap-secrets更名为此文件名。
'sublog' is a file created by PPVSWA for log file analyzing. 'sublog' 是ppvswa在分析PPTP服务器产生的系统日志文件(一般为/var/log/messages,如不为此,请在'config.php'中将 logfile项指向pptp服务器产生的日志文件) 后生成的子记录,其中只含有关于用户连接VPN的信息,包括连接时间,所分配的内网IP,连接时长,传输流量。
'analyzedlog' is the backed up system log file. 'analyzedlog'是ppvswa备份的上一次ppvswa所分析的系统日志,用于下一次分析系统日志时采取增量分析方法,减少服务器负担。
Design Description 设计介绍 截至v0.6+
PPVSWA 被设计成简单在线VPN用户管理程序,为CHAP补全AAA中最后一个A的基本功能,同时向VPN服务器管理员提供简单且高效的在线用户管理服务,初衷是 推动公益性VPN在中国的发展(原因你懂的)。 由于PPVSWA的主要操作对象是chap-secrets,所以理论上所有用chap-secrets作为密钥文件的VPN服务都可以使用PPVSWA 来管理用户,不仅限于PPTP。 PPVSWA采用了PHP+MySQL结构,这使得PPVSWA原生支持多服务器共用同一套用户记录,只要对config.php中数据库的地址和用户名 密码进行设置就行了。 PPVSWA中的管理性页面都有密码准入机制,只有凭加密后的管理密码才能正确访问,在管理员进行管理时,ppvswa不设会话及cookie,加密后的 密码作为GET参数之一在页面间传递。 目前用户在注册后固定默认为禁用状态,需要管理员手动激活或用户用激活码自助激活。未来版本中可能将默认状态改为可设置。 关于用户的一切信息都存储在数据库中,每次修改用户状态后,都优先修改数据库中的内容,之后根据当时的数据库数据,重建chap-secrets文件,注 意是重建,不是追加。 系统日志分析功能,靠为帐户指定的IP作为识别帐户的标志,配置文件中设定同一C级网络中的最大IP值(最后8个位),所以目前只支持254个帐户,但分 析模块有支持更多用户的能力,未来版本中可能支持更多用户,支持更多帐户可能需要管理员同时更改系统的防火墙设置。 系统日志分析采用增量分析,即前后两个时间点的系统日志进行内容diff之后分析新日志的不同部分,这主要是为了减轻服务器负担,在已存在的系统日志条数 非常多时,每次都重新分析会造成很大的服务器负担。搜索日志的程序取系统给客户端分配内网IP的记录为每次连接的起始点,取同一进程号的‘连接挂断,给出 连接时间与发送/接收数据数’的记录为终点,但是这种设计存在这样的一些问题:当进行日志分析时正好不幸有用户正连在服务器上,即已分配了内网IP,但没 有挂断记录时,这一次连接的数据就将被忽略,因为这一次进行的分析找不到终点,而下一次分析时由于起点记录已不是新旧记录的相异部分,会找不到起点,对于 这种情况,只有定期清空备份的日志和已有的分析数据,重新运行一次完全分析才能解决。另外,将新旧日志进行diff产生相异部分,需要更大的内存,至少是 日志文件的两倍以上,而服务器给PHP划出的内存,一般只有10M左右,也就是说,当系统日志文件大于5M时,程序将耗尽PHP内存,无法运行,只有在 php.ini中划给php更多内存才能解决.

from http://code.google.com/p/ppvswa/
http://code.google.com/p/ppvswa/downloads/list

No comments:

Post a Comment