Freeradius Server & Freeradius Client with Poptop Server and L2TP Over IPSec(可统计流量)

本文于2014年3月22日发布,2014年9月8日更新。

此Shell Script可选择安装Freeradius Server,Freeradius Client,Poptop Server(PPTP),L2TP Over IPSec。

其中Freeradius Server是提供验证服务,Freeradius Client与Freeradius Server通讯,至于Poptop Server和L2TP嘛,你懂的。

目前支持的Linux发行版本有:CentOS 6,Debian 6/7/8,Ubuntu 12/13/14。

要安装Freeradius Server,要求有一个可用的MySQL Server。


 

安装前服务器的配置:

先确定服务器的hostname为正确的FQDN格式。不带“.”的hostname是错误的。

执行:

输出的内容应该是你服务器的IP(使用NAT网络,输出的是内网IP),否则请执行:

 

1. 安装各种相关程序:

CentOS 6:

安装并启动MySQL Server:

设置MySQL root用户密码:

安装wget:

Ubuntu/Debian:

安装并启动MySQL Server:

安装wget:

2. 开始安装

填写的相关信息:

安装信息

选项2会额外要求输入Freeradius Server的IP以及通讯密钥。

看到“Enjoy it now.”,即表示已成功安装。


添加用户:

在radcheck中添加响应的记录即可,例如添加一个用户名为username,密码为password的用户,密码以明文保存,可执行:

 

流量统计&限制:

使用本Shell Script安装的Freeradius Server,可使用三种不同周期的流量统计&限制方式,分别为一小时(Hourly-Traffic),一天(Daily-Traffic)和一个月(Monthly-Traffic)。

例如要限制用户名为username的用户一个月流量为1GB,即1024 MB,则在表radcheck中插入响应的记录,执行:

其中流量的单位为Mbytes。

至于更多的功能,我就不在此作文章了,各位可自行查看Freeradius的WIKI。


 

关于OpenVZ的问题:

可能有人会问支不支持OpenVZ。

如果准确来说的话,各位不应该问我的Shell Script支不支持OpenVZ,而应该问你的OpenVZ VPS支不支持我的Shell Script。

OpenVZ须具备下述条件方可使用PPTP,L2TP以及IPSec:

1. OpenVZ VPS拥有以下设备文件以及对其操作的权限:

2. 物理服务器已开启以下模块:

3. OpenVZ VPS拥有IPTABLES NAT模块的权限。

可通过执行此命令进行检查:

不出现

则表示拥有IPTABLES NAT模块的权限。


 

PPTP,L2TP的使用方法:http://www.ipfog.com/knowledgebase.php?action=displaycat&catid=5

把每个压缩文件解压到以该压缩文件的文件名命名的文件夹中(文件夹名不包含扩展名)

之前有一个朋友问过我,如何把当前目录下所有的tar.gz文件分别解压到以该压缩文件命名的文件夹中,且文件夹不带“.tar.gz”。

由于当时对数据流重定向还不算太熟悉,未能帮得上忙。

现在想起来,解决的方法其实很简单:

假设当前目录下有universe.tar.gz,galaxy.tar.gz,solar.tar.gz三个文件:

三个文件

 

大概的步骤是:把三个文件名赋值给变量filename,然后使用for … in …循环进行mkdir和解包:

当然,这只是一个比较简单的解决方案,其实通过read,能制作出交互式的Shell Script,并且支持选择压缩文件类型:

虽然加了挺多的功能,但是我觉得我这样写有点复杂。只用tar打包没压缩的类型我还没加进去。也有很多需要完善的地方。如果各位高人有兴趣,拿来修改修改吧。