本文于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是错误的。
执行:
1 |
hostname -i |
输出的内容应该是你服务器的IP(使用NAT网络,输出的是内网IP),否则请执行:
1 |
echo "服务器IP $(hostname -A)" >> /etc/hosts |
1. 安装各种相关程序:
CentOS 6:
安装并启动MySQL Server:
1 2 3 |
yum install -y mysql-server mysql-devel mysql-client service mysqld restart |
设置MySQL root用户密码:
1 |
/usr/bin/mysqladmin -u root password 'root用户密码' |
安装wget:
1 |
yum install -y wget |
Ubuntu/Debian:
安装并启动MySQL Server:
1 |
apt-get update && apt-get install -y mysql-server |
安装wget:
1 |
apt-get install -y wget |
2. 开始安装
1 |
wget http://soft.yzs.me/freeradius.sh -O /tmp/freeradius.sh && bash /tmp/freeradius.sh |
填写的相关信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
1. CentOS 6 2. Ubuntu/Debian Select your operating system(1 or 2):2 #此处选择系统的发行版本,1为CentOS 6,2为Ubuntu或Debian Install selection ========== 1. FreeRadius Server with FreeRadius Client,Poptop Server and L2TP Over IPSec(Require MySQL Server). 2. FreeRadius Client,Poptop Server and L2TP Over IPSec(Require FreeRadius Server communication secret). 3. FreeRadius Server Only(Require MySQL Server). 4. Poptop Server Only 5. L2TP Over IPSec Only ========== Please choose a selection(1,2,3,4 or 5):1 #此处选择要安装的程序 Input the MySQL root password:9p_VbAAduxMXriWfke37_6NXYNGsw2W0EF85E3bqRnNCx0wPI0 #此处输入MySQL的root密码 Set the MySQL password of user radius(Leave blank to create automatically): #此处输入要在MySQL中新建的radius用户的密码,留空可自动生成 Set the MySQL password of user radius to 8b66e9f5dc29b07752093c9d5f5029c0 127.0.0.2 208.51.63.115 192.168.0.56 Select your IP:208.51.63.115 #此处输入你的服务器的IP Please input the IPSec PSK:P9oqRR8eru8d1SnOUwZ7jAIPPqx4Wv #此处输入IPSec的PSK |
选项2会额外要求输入Freeradius Server的IP以及通讯密钥。
看到“Enjoy it now.”,即表示已成功安装。
添加用户:
在radcheck中添加响应的记录即可,例如添加一个用户名为username,密码为password的用户,密码以明文保存,可执行:
1 |
echo "INSERT INTO radcheck (id,username,attribute,op,value) VALUES ('','username','Cleartext-Password',':=','password')" | mysql -u root -p radius |
流量统计&限制:
使用本Shell Script安装的Freeradius Server,可使用三种不同周期的流量统计&限制方式,分别为一小时(Hourly-Traffic),一天(Daily-Traffic)和一个月(Monthly-Traffic)。
例如要限制用户名为username的用户一个月流量为1GB,即1024 MB,则在表radcheck中插入响应的记录,执行:
1 |
echo "INSERT INTO radcheck (id,username,attribute,op,value) VALUES ('','username','Monthly-Traffic',':=','1024')" | mysql -u root -p radius |
其中流量的单位为Mbytes。
至于更多的功能,我就不在此作文章了,各位可自行查看Freeradius的WIKI。
关于OpenVZ的问题:
可能有人会问支不支持OpenVZ。
如果准确来说的话,各位不应该问我的Shell Script支不支持OpenVZ,而应该问你的OpenVZ VPS支不支持我的Shell Script。
OpenVZ须具备下述条件方可使用PPTP,L2TP以及IPSec:
1. OpenVZ VPS拥有以下设备文件以及对其操作的权限:
1 2 |
/dev/ppp /dev/tun |
2. 物理服务器已开启以下模块:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
af_key esp4 ppp_async ppp-compress-18 ppp_deflate ppp_generic ppp_mppe pppoatm pppol2tp tun xfrm4_mode_transport xfrm4_mode_tunnel xfrm_ipcomp |
3. OpenVZ VPS拥有IPTABLES NAT模块的权限。
可通过执行此命令进行检查:
1 |
iptables -L -n -t nat |
不出现
1 |
can’t initialize iptables table `nat': Table does not exist (do you need to insm Perhaps iptables or your kernel needs to be upgraded. |
则表示拥有IPTABLES NAT模块的权限。
PPTP,L2TP的使用方法:http://www.ipfog.com/knowledgebase.php?action=displaycat&catid=5
Comments are closed.