Amazon AWS 漫游指南三: VPN

November 8, 2010

Update 2011-04-23:修正SRPM地址失效。
Update 2010-11-08:重新测试了一遍,只需开放 tcp 1723端口即可正常连接PPTP VPN。

本篇介绍在Amazon ec2上一键安装配置PPTP VPN服务,开始之前您应该已经有一个AWS账户并运行Instance。如果您还没有开通,可以参照前面的文章()。

为什么PPTP

VPN常见的有:IPSec, PPTP, L2TP, OpenVPN。OpenVPN运行在用户空间,这需要用户端安装客户端软件,对手机用户来说并不友好。IPSec, L2TP over IPSec则过于繁琐。PPTP的话,从协议上来讲,不够安全,但由于其易用并且安全风险在可以接受的范围,这里选择了 PPTP。

警告:如果您对安全要求非常高,请使用IPSec或者OpenVPN代替。

安装配置PPTP

我在DiaHosting提供的PPTPD一键安装脚本基础上定制了 Amazon AWS EC2的pptpd安装配置脚本

系统要求

需要您的系统为 Amazon Linux AMI。

安装

登陆您的EC2 instance,如果您用使用Tunnier并且按照前文登陆时默认关闭"Open Terminal"的话,需要在Login后,点击左侧Open New Terminal Console进入EC2 instance终端。

进入EC2系统终端后,输入下面的代码:

wget https://gist.github.com/raw/666241/a69692ff2689f8e21b15ed92c5d4ee59d828485b/pptpd.sh
sudo sh pptpd.sh

安装配置完成后会高亮提示vpn用户名和密码。

VPN用户管理

增加用户,直接编辑 /etc/ppp/chap-secrets 文件,按照相同格式添加用户名和密码即可。

防火墙

如果您使用的不是默认的Security Group,比如按照前文设置的"Security Group",那么还需要调整防火墙规则。

PPTP默认跑1723端口,我设置了没有成功,所以这里我打开了所有的端口只需第一行规则即可,见图:

客户端连接

客户端使用PPTP协议连接您的EC2服务器,服务器地址为您的Public DNS(参见前文),使用安装完成提示您的用户名密码即可连接。

需要注意,Public DNS在EC2 instance重启后会变更,您可以通过动态域名服务或者设置固定IP来解决。其实还有更简单的办法,对于普通用户,不妨不重启EC2 instance,linux系统稳定跑上一年没问题,一年后都收费了。如果你讨厌冗长的Public DNS,不妨ping一下得到您的IP,其实就是Public DNS中间的一串数字。

如果您希望长时间运行不受动态IP地址问题的影响,那么不妨设置一个固定IP。

有图有真相

感谢 @CharSeer 帮忙测试脚本,并报告Mac成功连接。

MORE ON amazon, aws, ec2 and vpn