如何利用PPTP设置自己的VPN

提供:ZStack云计算

内容介绍

用户们最常提出的需求,就是希望为其服务器添加额外的IP地址。大家可以创建VPN隧道,从而将专有IP地址分配给自己的Droplet。无论是选择构建自己的虚拟专有网络(简称VPN),还是为该IP地址分配一份SSL证书,都能够达到理想的效果。不过在各类可行方案中,PPTP与OpenVPN无疑是最具人气的选项。PPTP的全称为点到点隧道协议,允许大家快速实现自己的VPN,且兼容大多数移动设备。尽管PPTP在安全性方面不及OpenVPN,但其速度更快且占用的CPU资源更少。

第一步——安装PPTP

首先我们要选择一套服务器,其作用是处理发出的IP并验证VPN之内的全部服务器,而它就是我们将要使用的PPT服务器。

在CentOS 6 x64上:

rpm -i http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
yum -y install pptpd

在Ubuntu 12.10 x64上:

apt-get install pptpd

现在大家可以编辑/etc/pptpd.conf文件并添加以下行:

localip 10.0.0.1
remoteip 10.0.0.100-200

其中localip为服务器IP地址,而remoteip则为将要分配给各客户端用于接入的IP。

接下来,大家需要添加用户与密码以设置PPTP验证。直接将其添加至/etc/ppp/chap-secrets:Image

其中client为用户名,server为本示例中的service-pptpd类型,secret为密码,而IP addresses则指定验证IP地址。通过在IP地址字段中设置“*”,我们可以指定接受任意IP的用户名/密码对。

第二步——向/etc/ppp/pptpd-options添加DNS服务器

ms-dns 8.8.8.8
ms-dns 8.8.4.4

现在我们可以启动PPTP守护程序了:

service pptpd restart

验证其是否开始运行并能够接收连接:

Image

第三步——设置IP转发

在PPTP服务器上启用IP转发非常重要,如此一来我们就能在利用PPTP设置的公共与专有IP之间实现数据包转发。直接编辑/etc/sysctl.conf文件并添加以下行:

net.ipv4.ip_forward = 1

运行sysctl -p以应用变更。

第四步——为iptables创建NAT规则

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save

如果大家希望各PPTP客户端彼此通信,则添加以下iptables规则:

iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT

现在我们的PPTP服务器还将作为路由器起效。

如果大家需要限定Droplet所能访问的服务器,则可设置一项iptables规则以限定TCP接入端口1723。

第五步——设置客户端

在客户端服务器上安装PPTP客户端:

yum -y install pptp

第六步——添加必要内核模块

modprobe ppp_mppe

在/etc/ppp/peers/pptpserver位置创建一个新文件,添加以下行并将其中的名称与密码替换为实际值:

pty "pptp 198.211.104.17 --nolaunchpppd"
name box1
password 24oiunOi24
remotename PPTP
require-mppe-128

其中198.211.104.17是PPTP服务器的公共IP地址,而用户名box1与密码24oiunOi24则通过PPTP服务器上的/etc/ppp/chap-secrets文件进行指定。

现在我们已经能够“call”该PPTP服务器了,因为这条命令使用点到点协议。请在以下命令行中使用实际名称,我们的文件名称为pptpserver:

pppd call pptpserver

可以看到PPTP服务器日志中的成功连接信息:

Image

在PPTP客户端上,通过ppp0接口设置通向专有网络的路由:

ip route add 10.0.0.0/8 dev ppp0

这时我们的接口ppp0即于PPTP客户端服务器上启动,且可通过ifconfig命令检查:

Image

现在大家可以ping自己的PPTP服务器及其它接入此网络的客户端:

Image

我们可以向此网络中添加第二套PPTP客户端:

yum -y install pptp
modprobe ppp_mppe

添加至/etc/ppp/peers/pptpserver (注意将名称与密码替换为实际值):

pty "pptp 198.211.104.17 --nolaunchpppd"
name box2
password 239Aok24ma
remotename PPTP
require-mppe-128

现在在第二套客户端中运行以下命令:

pppd call pptpserver
ip route add 10.0.0.0/8 dev ppp0

Image

大家也可以ping第一套客户端,因为数据包会经由PPTP服务器并利用iptables规则进行路由:

Image

这套设置允许大家创建自己的虚拟专有网络:

Image

如果大家希望在单一网络上实现全部设备的安全通信,此次介绍的内容将轻松帮您实现目标。

另外,大家也可以根据需要使用Nginx、Squid、MySQL以及其它任何应用。

由于流量经过128位加密,因此其CPU资源使用量比OpenVPN更低,且仍然能够提供一定程度的安全保护。

本文来源自DigitalOcean Community。英文原文:How To Setup Your Own VPN With PPTP By Bulat Khamitov

翻译:diradw

猜你喜欢

转载自blog.csdn.net/zstack_org/article/details/72469935