三笠·阿克曼 发表于 2016/12/8 16:25

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:31

本帖最后由 三笠·阿克曼 于 2016/12/8 16:32 编辑

没艾特成功,再艾特一次 @小樱

小樱 发表于 2016/12/8 16:46

三笠·阿克曼 发表于 2016/12/8 16:31
没艾特成功,再艾特一次 @小樱

大佬QWQ

三笠·阿克曼 发表于 2016/12/8 16:48

小樱 发表于 2016/12/8 16:46
大佬QWQ

为什么我就是艾特不出来@小樱

小樱 发表于 2016/12/8 17:35

三笠·阿克曼 发表于 2016/12/8 16:48
为什么我就是艾特不出来@小樱


http://i1.piimg.com/572924/2c3f0fa2d6db0f08.png

小樱 发表于 2016/12/8 17:35

@三笠·阿克曼

小樱 发表于 2016/12/8 17:35

@小樱

三笠·阿克曼 发表于 2016/12/8 17:37

小樱 发表于 2016/12/8 17:35
@三笠·阿克曼

{:3110:}为什么我艾特显示的就不是蓝色的

小樱 发表于 2016/12/8 17:49

三笠·阿克曼 发表于 2016/12/8 17:37
为什么我艾特显示的就不是蓝色的

早上没洗脸吧{:3127:}

三笠·阿克曼 发表于 2016/12/8 18:02

小樱 发表于 2016/12/8 17:49
早上没洗脸吧

被发现了 @小樱

服务器租用 发表于 2019/3/26 20:23

被发现了
页: [1]
查看完整版本: centos搭建pptp中转服务器,radius验证服务器