在Linux中使用PPTP架设VPN服务
亚马逊申请了一台EC2,是在日本东京的机房,主要的作用当然是为了浏览大好河山,所以VPN之类的服务是不能少的。
比较让人无语的,就是如果EC2选用了亚马逊的发行版,则无法安装PPTP的服务包,因为它的软件源里面没有提供:
yum install -y ppp pptpd iptables
不过不要紧,因为可以直接下载RPM包,也能使用yum安装的:
wget http://poptop.sourceforge.net/yum/stable/rhel6/i386/pptpd-1.4.0-1.el6.i686.rpm
(32位)
wget http://poptop.sourceforge.net/yum/stable/rhel6/x86_64/pptpd-1.4.0-1.el6.x86_64.rpm
(64位)
然后再使用yum安装:yum localinstall pptpd-1.4.0-1.el6.i686.rpm
接下来是VPN的终端IP配置:vi /etc/pptpd.conf
,在最下方的位置加上内容:(原本配置没有的就填上)
option /etc/ppp/options.pptpd
logwtmp
localip 10.0.0.1
remoteip 10.0.0.100-200
再到DNS的配置:vi /etc/ppp/options.pptpd
,添加或修改以下内容:(原本配置没有的就填上)
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 114.114.114.114
lock
novj
novjccomp
nobsdcomp
nologfd
proxyarp
最后一个配置,VPN帐号和密码的设置:vi /etc/ppp/chap-secrets
,格式如下:
USERNAME pptpd PASSWORD *
上方内容里面的pptpd
也可以用*
星号来代替哦,貌似是指定服务用的~
至此,VPN相关的配置已经完成,最后来处理数据包的转发和重启后自动执行服务的问题。
内核参数开启IPv4的转发:vi /etc/sysctl.conf
,如下:
net.ipv4.ip_forward = 1
记得修改完了之后,还要执行命令才可以生效:/sbin/sysctl -p
另外我们还需要借助iptables
的NAT配置:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
如果需要每次重启后都自动执行,可以放到自启动文件里面/etc/rc.local
即可。
好了,我们来启动一下:
chkconfig pptpd on
/sbin/service pptpd start
确认iptables
的Chain FORWARD (policy ACCEPT)
规则没有屏蔽转发的reject-with icmp-host-prohibited
设定。
最后要到亚马逊的网页管理平台中,找到EC2实例的安全组,把相应TCP的1723端口开放才能正常使用,不然连不上VPN。
如果有任何的疑问,请参考谷歌的资料,还有系统日志:/var/log/messages
,Windows的VPN设置中记得选择PPTP类型。
最后吐槽中国移动的宽带,分配的是内网IP就算了,居然还不支持VPN的穿透,会报错628链接被终止,果然便宜没好货!
参考: http://riobard.com/2011/11/12/pptp-vpn-on-ubuntu/ http://www.yzhang.net/blog/2013-03-07-pptp-vpn-ec2.html