分享下自己用vps搭建vpn,并用radius做认证的操作步骤
不想写太多的文字说明,能看懂的自然也不需要说明,命令规范可用。如果有空的话,我还是尽量整理清晰点,这是给自己看的。我只摘录了重点配置,如果你想搭建一个,下面的配置你肯定需要
这个玩意能实现,用户自动注册帐号并且自动开通vpn服务,如果想增加vpn节点,上新的vps上部署一个radius client就行了,总之,弄好让扔在那就行了。
环境为centos5.6+mysql+php+freeradius+radiusmanager
虚拟网卡建立
vim /etc/rc.local 中增加并执行
yum search tunctl
yum install tunctl.i386
tunctl -t vpn_tap1
ifconfig vpn_tap1 hw ether 00:D0:09:B8:B7:34
ifconfig vpn_tap1 172.168.100.100 netmask 255.255.255.255
ifconfig vpn_tap1 up
yum -y install gcc php mysql mysql-server mysql-devel php-mysql php-mcrypt curl php-curl compat-libstdc++-33 libtool-ltdl-devel httpd gcc-c++
/sbin/chkconfig --add mysqld &&/sbin/chkconfig httpd on &&/sbin/chkconfig mysqld on &&/sbin/service httpd start &&/sbin/service mysqld start
vim /etc/selinux/config
centos 6.2的selinux位置,一般都是disabled
wget http://www.dmasoftlab.com/cont/download/ioncube_loaders_lin_x86.tar.gz
tar zxvf ioncube_loaders_lin_x86.tar.gz
cp -rf ioncube /usr/local/
php -v
echo "zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.1.so">>/etc/php.ini
vim /etc/raddb/sql.conf
mysqladmin -u root password 'caonima123'
CREATE DATABASE radius;
CREATE DATABASE conntrack;
CREATE USER 'radius'@'localhost' IDENTIFIED BY 'radius123';
CREATE USER 'conntrack'@'localhost' IDENTIFIED BY 'conn123';
GRANT ALL ON radius.* TO radius@localhost;
GRANT ALL ON conntrack.* TO conntrack@localhost;
pscp c:/radiusmanager-3.9.0.tar.gz [email protected]:/tmp
vim /tmp/radiusmanager-3.9.0/install.sh
把raddb的路径改成本机的路径,如下面
chown $httpusr /etc/raddb
chown $httpusr /etc/raddb/clients.conf
tar zxvf radiusmanager-3.9.0.tar.gz
cd radiusmanager-3.9.0
./install.sh
vim /etc/crontab
02 0 * * * root /usr/bin/php /var/www/html/radiusmanager/rmscheduler.php 12345
cp /tmp/radiusmanager-3.9.0/www/radiusmanager/lic.txt /var/www/html/radiusmanager
cp /tmp/radiusmanager-3.9.0/www/radiusmanager/mod.txt /var/www/html/radiusmanager
vim /etc/httpd/conf/httpd.conf
DocumentRoot “/var/www/html/radiusmanager”
DocumentRoot "/tmp/www"
DirectoryIndex index.html index.html.var user.php
重启httpd
centos 5.6安装办法
yum install -y ppp
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm
rpm -ivh pptpd-1.3.4-2.rhel5.i386.rpm
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.i686.rpm
rpm -ivh pptpd-1.3.4-2.el6.i686.rpm
vim /etc/pptpd.conf
修改成
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
vim /etc/ppp/options.pptpd
将
#ms-dns 10.0.0.1
#ms-dns 10.0.0.2
改成
ms-dns 8.8.8.8
ms-dns 8.8.4.4
vim /etc/ppp/chap-secrets
chap pptpd chap *
vim /etc/sysctl.conf
改成
net.ipv4.ip_forward=1
#net.ipv4.tcp_syncookies = 1
sysctl -p
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
service iptables save
service iptables restart
service pptpd start
chkconfig pptpd on
chkconfig --list
pptpd安装脚本
yum install -y ppp
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.i686.rpm
rpm -ivh pptpd-1.3.4-2.el6.i686.rpm
echo "localip 192.168.0.1" >> "/etc/pptpd.conf"
echo "remoteip 192.168.0.234-238,192.168.0.245">> "/etc/pptpd.conf"
sed -i 's#\#ms-dns 10.0.0.1#ms-dns 8.8.8.8#' /etc/ppp/options.pptpd
sed -i 's#\#ms-dns 10.0.0.2#ms-dns 8.8.4.4#' /etc/ppp/options.pptpd
echo "username pptpd password *" >> /etc/ppp/chap-secrets
sed -i 's#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#' /etc/sysctl.conf
sed -i 's#net.ipv4.tcp_syncookies = 1#\#net.ipv4.tcp_syncookies = 1#' /etc/sysctl.conf
sysctl -p
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
service iptables save
service iptables restart
service pptpd start
radius client部署
wget ftp://ftp.samba.org/pub/ppp/ppp-2.4.5.tar.gz
tar -zxvf ppp-2.4.5.tar.gz
cp -R ppp-2.4.5/pppd/plugins/radius/etc /etc/radiusclient/
vim /etc/radiusclient/servers
106.187.35.151 testing123(每个服务器不同) 或者
echo "198.74.108.234 testing123 " >> "/etc/radiusclient/servers"
vim /etc/radiusclient/radiusclient.conf
issue /etc/radiusclient/issue
servers /etc/radiusclient/servers
dictionary /etc/radiusclient/dictionary
mapfile /etc/radiusclient/port-id-map
或者:
authserver 106.187.35.151:1812
acctserver 106.187.35.151:1813
vim /etc/ppp/options.pptpd
向options.pptpd 增加plugin /usr/lib/pppd/2.4.4/radius.so后就会对用radius做密码验证(这里要注意下是2.4.4,我操)
向options.pptpd 增加plugin /usr/lib/pppd/2.4.5/radius.so后就会对用radius做密码验证
radius 服务端nas设置
vim /etc/raddb/clients.conf
client 0.0.0.0/0 {
# Allowed values are:
# dotted quad (1.2.3.4)
# hostname (radius.example.com)
secret = testing123
require_message_authenticator = no
nastype = other # localhost isn't usually a NAS...
}
评论47次
我当然知道可以来个前端 但是问题做这个 主要看用户群 还有你的稳定程度 节点数量也是问题 行情是50-20 包月(良心价╮(╯▽╰)╭) 主要是流量和带宽 当然还有节点问题 一般都是以100用户为基数 以前VPS+自己原来托管服务器 做空间附带VPN也玩过 一个月除了租用费也能赚2k-7k左右 原则就是多进余补 人家用不完流量和带宽 你就没节操往里面塞人就好 比如有1G流量人家 用了500m这个月 但当这个时候发一个邮件 亲爱的xxx 用户您的流量使用过半假如增加续费请xxxxx(2个人加空间你就可以再来一笔嘎嘎~ 重点就是你可以坐着赚外快每月等钱入账 没事维护一下 现在我VPS的钱用户都帮我交了 公司的服务器24H托管开着 人多了就加块硬盘就好了 过去有黑空间卖的业务但是买的的不是很多收的价也很不高 没事玩玩很有意思的 顺便考考你的技术 主要就是特别的时候维护有点麻烦 比如恶意使用 DDOS 神马的
海蜘蛛那些定制的routeros当然更好用,但是需要自己部署在真机上,后期维护不方便,而且容易留下自己的踪迹。vps上的os都是人家定制好给你的,我是没发现哪个vps有routerosxi统的。vpn如果增加海外节点就能实现翻墙了,卖翻墙vpn,最好还是以安全为主。尤其大量的vpn节点是肉鸡,更要做到打一枪换一个地方。
这样只要再配个web前端都可以撘起来卖vpn了嘛 o(╯□╰)o 顺带请教万能的anlfi现在卖vpn的行情咋样?
http://www.myhack58.com/Article/sort099/sort0102/2012/33526_3.htm 我找到了这个 radius是用来计时计费用的 我觉得可以依照lz 的文章结合 上面的一键式脚本 自己写一个有radius计费功能的 快速部署脚本 多好? 但是用于个人 这个一键式的完全够方便了 不过要是 真在云VPS上搞小型商业 我觉得为了方便 专门分一个现成的路由linuxxi统比如海蜘蛛 来配置radius 计费 更方便 而且资源消耗还没有centos多 更轻量级:)
顶起
这个必须收藏
radius可以实现统一认证,用radiusmanager做计费。最关键的是用户自主注册和开通服务,并且自动做计费套餐,优化后完全可以商用。如果php强大,可以自己重新开发计费功能
radius服务端做验证只需要一台稳定的vps即可,vpn节点肉鸡即可
主要是radius认证吧,很多卖vpn的都是这么搭的
一直想弄这玩意,radius弄了几次没弄成功。。
很不错的哦,感谢分享!!
在肉鸡上做radius认证会不会太招摇了
@President 目测二楼两年前北查过表
谢谢,正想搞vpn呢。
我是来看你回复的~
一键安装 http://www.hi-vps.com/shell/vpn_centos6.sh 会有三个选择: 1. 安装VPN服务 2. 修复VPN 3. 添加VPN用户 首先输入1,回车,VPS开始安装VPN服务. VPN服务安装完毕后会默认生成一个用户名为vpn,密码为随机数的用户来。 3. 添加VPN用户 同样运行刚才的安装包: #bash vpn_centos6.sh 选择3,然后输入用户名和密码,OK ╮(╯▽╰)╭
牛逼
速度收藏,前排占位
表示压力很大。
这个吊收藏了!!!!!!