centos搭建pptp中转服务器,radius验证服务器
本帖最后由 三笠·阿克曼 于 2016/12/8 16:36 编辑写在教程之前:
因为工作室的需要,自己需要搭建VPN服务器,而脚本对网络的要求比较高,所以又需要搭建中转服务器,百度找了很多资料,很多资料基本说了等于没说,其实也理解,这是很多VPN商人的生存技术,不肯公布出来也正常。求助了樱妹,得到了一些启发,然后再挂上樱妹的pac上谷歌也找了很久,终于把一切都搞定了,现在把整个过程跟大家分享一下,人比较懒,就不上图了,贴上代码和注释算了
本文中共使用3台服务器演示,其中韩国、香港、国内服务器各一台,分别为kr,hk,cn指代,cn服务器为韩国中转服务器和radius验证服务器
步骤1:3台服务器先搭建好PPTP
检测VPS是否支持TUN和PPP,一般的云服务器都是支持的,如果不支持,找找你的云服务器或者vps面板,是否有开启选项,如果没有发工单吧
cat /dev/net/tun
返回:cat: /dev/net/tun: File descriptor in bad state,表示通过
cat /dev/ppp
cat: /dev/ppp: No such device or address,表示通过
安装支持库
yum -y install ppp make iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers
下载需要的文件,示例所采用的是32位的rpm包,如果你用的是64位的系统,自己找对应的包
ps:前面已经安装了ppp,只是为了用yum把ppp的依赖包都安装,但是安装的是2.4.5版本,我找了很久都找不到对应的pptpd的rpm包,所以下面会重新安装2.4.4版本的ppp
wget http://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm
wget ftp://fr2.rpmfind.net/linux/sourceforge/h/ho/hostable/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
wget ftp://fr2.rpmfind.net/linux/sourceforge/h/ho/hostable/pptpd-1.3.4-1.rhel5.1.i386.rpm
wget ftp://fr2.rpmfind.net/linux/sourceforge/h/ho/hostable/ppp-2.4.4-9.0.rhel5.i386.rpm
开始安装下载的rpm包
rpm -ivh dkms-2.0.17.5-1.noarch.rpm
rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
rpm -qa kernel_ppp_mppe
rpm -Uvh ppp-2.4.4-9.0.rhel5.i386.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm
开始进行系统设置
mknod /dev/ppp c 108 0
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "mknod /dev/ppp c 108 0" >> /etc/rc.local
echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.local
echo "option /etc/ppp/options" >> /etc/pptpd.conf
设置pptp的内网ip段和dns,这里我国外的服务器都设置为172.0.0.1-254,国内的中转服务器设置为172.100.0.1-254
echo "localip 172.0.0.1" >> /etc/pptpd.conf
echo "remoteip 172.0.0.2-254" >> /etc/pptpd.conf
echo "#logwtmp" >> /etc/pptpd.conf
echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd
echo "ms-dns 8.8.4.4" >> /etc/ppp/options.pptpd
echo "logfile /var/log/pptpd.log" >> /etc/ppp/options.pptpd
设置iptables规则,国内服务器记得改为172.100.0.0/24
iptables -t nat -A POSTROUTING -s 172.0.0.0/24 -j SNAT --to-source 公网ip
iptables -A FORWARD -p tcp --syn -s 172.0.0.0/24 -j TCPMSS --set-mss 1356
service iptables save
启动服务及设置开机启动
chkconfig iptables on
chkconfig pptpd on
service iptables start
service pptpd start
设置一个帐号密码测试vpn是否能成功连接,格式为"username pptpd password *"(不包括双引号)
vim /etc/ppp/chap-secrets
连接VPN进行测试,一般来说设置正确都不会有什么问题,如果连不上可以查看错误信息
tailf /var/log/messages
步骤2:国内中转服务器的设置
安装pptp-client,ppp2.4.4连接会有点问题,所以这里又要升级成2.4.5= =#,直接用yum重新再安装ppp就好了
yum install ppp pptp pptp-setup
注册加密模块
modprobe ppp_mppe
创建VPN连接:连接名可自定义,服务器ip填写你国外服务器ip,用户名和密码填写你vim /etc/ppp/chap-secrets设置好的密码
如:
连接名:cn01tokr01
PPTP服务器ip : 这里用111.111.111.111做例子
用户名:itzmx
密码:pwitzmx
则命令如下
pptpsetup --create cn01tokr01 --server 111.111.111.111 --username itzmx--password pwitzmx
配置VPN开启关闭脚本
cp /usr/share/doc/ppp-2.4.5/scripts/pon /usr/sbin/
cp /usr/share/doc/ppp-2.4.5/scripts/poff /usr/sbin/
chmod +x /usr/sbin/pon
chmod +x /usr/sbin/poff
开启VPN连接,命令为:pon+连接名
pon cn01tokr01
cn和kr之间已经建立了vpn连接,本地电脑再连接上cn的pptp
现cn连接kr内网ip段为172.0.0.1,用户连接cn,内网ip段为172.100.0.1
输入ifconfig,可以看到2个ppp连接,一个ppp0和ppp1,根据内网ip,区分出哪个是哪个是cn-kr的连接
配置转发规则,实现中转
iptables -t nat -A POSTROUTING -s 172.100.0.0/24 -o ppp1 -j MASQUERADE
把172.100.0.0/24网段全转到ppp1上,这里的ppp1,请根据上面ifconfig查看到的,具体是ppp0还是ppp1自己判断
ip rule add from 172.100.0.0/24 table 1
ip route add 172.0.0.1 dev ppp1 table 1
ip route add default via 172.0.0.1 table 1
ip route flush cache
至此,中转已经全部完成,连上cn的pptp,打开ip138,你会发现已经是kr的ip地址
步骤3:radius验证,实现一号通用
本来实际工作中,我用不到radius实现一号通用,不过本着生命在于折腾的原则,既然都弄到这份上了,干脆再加个radius算了
现在有事要出去了,回来再抽空把这个补上吧
最后再感谢下 @小樱樱妹的帮助,么么哒{:3137:}
本帖最后由 三笠·阿克曼 于 2016/12/8 16:32 编辑
没艾特成功,再艾特一次 @小樱 三笠·阿克曼 发表于 2016/12/8 16:31
没艾特成功,再艾特一次 @小樱
大佬QWQ 小樱 发表于 2016/12/8 16:46
大佬QWQ
为什么我就是艾特不出来@小樱 三笠·阿克曼 发表于 2016/12/8 16:48
为什么我就是艾特不出来@小樱
http://i1.piimg.com/572924/2c3f0fa2d6db0f08.png
@三笠·阿克曼 @小樱 小樱 发表于 2016/12/8 17:35
@三笠·阿克曼
{:3110:}为什么我艾特显示的就不是蓝色的 三笠·阿克曼 发表于 2016/12/8 17:37
为什么我艾特显示的就不是蓝色的
早上没洗脸吧{:3127:} 小樱 发表于 2016/12/8 17:49
早上没洗脸吧
被发现了 @小樱 被发现了
页:
[1]