在Linux中使用PPTP架设VPN服务

Published: Tags: VPN LINUX

亚马逊申请了一台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

确认iptablesChain 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