分享下自己用vps搭建vpn,并用radius做认证的操作步骤

2013-06-24 22:32:59 47 14711 1


不想写太多的文字说明,能看懂的自然也不需要说明,命令规范可用。如果有空的话,我还是尽量整理清晰点,这是给自己看的。我只摘录了重点配置,如果你想搭建一个,下面的配置你肯定需要
这个玩意能实现,用户自动注册帐号并且自动开通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...
}

关于作者

goobey2篇文章101篇回复

评论47次

要评论?请先  登录  或  注册
  • 27楼
    2013-6-25 11:35

    我当然知道可以来个前端 但是问题做这个 主要看用户群 还有你的稳定程度 节点数量也是问题 行情是50-20 包月(良心价╮(╯▽╰)╭) 主要是流量和带宽 当然还有节点问题 一般都是以100用户为基数 以前VPS+自己原来托管服务器 做空间附带VPN也玩过 一个月除了租用费也能赚2k-7k左右 原则就是多进余补 人家用不完流量和带宽 你就没节操往里面塞人就好 比如有1G流量人家 用了500m这个月 但当这个时候发一个邮件 亲爱的xxx 用户您的流量使用过半假如增加续费请xxxxx(2个人加空间你就可以再来一笔嘎嘎~ 重点就是你可以坐着赚外快每月等钱入账 没事维护一下 现在我VPS的钱用户都帮我交了 公司的服务器24H托管开着 人多了就加块硬盘就好了 过去有黑空间卖的业务但是买的的不是很多收的价也很不高 没事玩玩很有意思的 顺便考考你的技术 主要就是特别的时候维护有点麻烦 比如恶意使用 DDOS 神马的

  • 26楼
    2013-6-25 11:02

    海蜘蛛那些定制的routeros当然更好用,但是需要自己部署在真机上,后期维护不方便,而且容易留下自己的踪迹。vps上的os都是人家定制好给你的,我是没发现哪个vps有routerosxi统的。vpn如果增加海外节点就能实现翻墙了,卖翻墙vpn,最好还是以安全为主。尤其大量的vpn节点是肉鸡,更要做到打一枪换一个地方。

  • 25楼
    2013-6-25 10:57

    这样只要再配个web前端都可以撘起来卖vpn了嘛 o(╯□╰)o 顺带请教万能的anlfi现在卖vpn的行情咋样?

  • 24楼
    2013-6-25 10:42

    http://www.myhack58.com/Article/sort099/sort0102/2012/33526_3.htm 我找到了这个 radius是用来计时计费用的 我觉得可以依照lz 的文章结合 上面的一键式脚本 自己写一个有radius计费功能的 快速部署脚本 多好? 但是用于个人 这个一键式的完全够方便了 不过要是 真在云VPS上搞小型商业 我觉得为了方便 专门分一个现成的路由linuxxi统比如海蜘蛛 来配置radius 计费 更方便 而且资源消耗还没有centos多 更轻量级:)

  • 23楼
    2013-6-25 10:28
  • 22楼
    2013-6-25 10:15

    这个必须收藏

  • 21楼
    2013-6-25 10:12

    radius可以实现统一认证,用radiusmanager做计费。最关键的是用户自主注册和开通服务,并且自动做计费套餐,优化后完全可以商用。如果php强大,可以自己重新开发计费功能

  • 20楼
    2013-6-25 10:09

    radius服务端做验证只需要一台稳定的vps即可,vpn节点肉鸡即可

  • 19楼
    2013-6-25 09:52

    主要是radius认证吧,很多卖vpn的都是这么搭的

  • 18楼
    2013-6-25 09:19

    一直想弄这玩意,radius弄了几次没弄成功。。

  • 17楼
    2013-6-25 08:42

    很不错的哦,感谢分享!!

  • 16楼
    2013-6-25 08:17

    在肉鸡上做radius认证会不会太招摇了

  • 15楼
    2013-6-25 07:47

    @President 目测二楼两年前北查过表

  • 14楼
    2013-6-25 07:30

    谢谢,正想搞vpn呢。

  • 13楼
    2013-6-25 06:58

    我是来看你回复的~

  • 12楼
    2013-6-25 03:25

    一键安装 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 ╮(╯▽╰)╭

  • 11楼
    2013-6-25 00:58
  • 10楼
    2013-6-24 23:56

    速度收藏,前排占位

  • 9楼
    2013-6-24 23:53

    表示压力很大。

  • 8楼
    2013-6-24 23:53

    这个吊收藏了!!!!!!