提供: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:
其中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
验证其是否开始运行并能够接收连接:
第三步——设置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服务器日志中的成功连接信息:
在PPTP客户端上,通过ppp0接口设置通向专有网络的路由:
ip route add 10.0.0.0/8 dev ppp0
这时我们的接口ppp0即于PPTP客户端服务器上启动,且可通过ifconfig命令检查:
现在大家可以ping自己的PPTP服务器及其它接入此网络的客户端:
我们可以向此网络中添加第二套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
大家也可以ping第一套客户端,因为数据包会经由PPTP服务器并利用iptables规则进行路由:
这套设置允许大家创建自己的虚拟专有网络:
如果大家希望在单一网络上实现全部设备的安全通信,此次介绍的内容将轻松帮您实现目标。
另外,大家也可以根据需要使用Nginx、Squid、MySQL以及其它任何应用。
由于流量经过128位加密,因此其CPU资源使用量比OpenVPN更低,且仍然能够提供一定程度的安全保护。
本文来源自DigitalOcean Community。英文原文:How To Setup Your Own VPN With PPTP By Bulat Khamitov
翻译:diradw