如何在Amazon EC2上架设UBUNTU VPN

前几天在面包的虚拟机上一直测试VPN,经常出现错误619拨号错误,查询了很多资料,发现与IPTABLES防火墙设置有关系,本想研究IPTABLES防火墙设置,但是用PPTUY无法连接到面包的虚拟机,所以作罢,只能另寻他处,经过面包的建议,选择了EC2重新架设VPN,下面是如何架设VPN的步骤:

– 安装 PPTPD

sudo apt-get install pptpd

-修改PPTPD的配置

vi /etc/pptpd.conf

在里面我是选择了recommended

Localip

192.168.0.1

Remoteip

192.168.0.234-238

修改完成,保存

然后继续修改/etc/ppp/pptpd-options,改变其中的 ms-dns 选项,为 VPN 客户端指派 DNS 服务器地址:

ms-dns 8.8.8.8

ms-dns 8.8.4.4

当然你可以选择Amazon的DNS 172.16.0.23(我是比较喜欢用google的DNS)

修改完成,保存

接着修改/etc/ppp/chap-secrets,这里存放在VPN的用户名和密码,里面的第一列是用户名,第二列是服务器名(默认pptpd),第三列是密码,第四列是IP限制(如果没有任何的IP限制,就填*即可)

– 修改/etc/pptpd.conf

找到logwtmp语句,并且注释

– 重新启动pptpd

sudo /etc/init.d/pptpd restart

– 开启ipv4 forward

修改/etc/sysctl.conf,然后找到如下语句并取消注释

net.ipv4.ip_forward=1

使新配置生效:

sudo sysctl -p

– 安装IPTABLES

sudo apt-get intall iptables

– 修改Iptables,设置网络地址翻译

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

上述设置在重起后悔丢失,因此需要修改 /etc/rc.local文件, 在exit 0之前添加以下语句:

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

因为PPTPD采用TCP 1723端口,所以在EC2的左边Navigation选择NETWORK & SECURITY -> Security Groups, 然后选择和INSTANCE匹配的Security Group, 在Inbound里面建立一个新RULE, 选择Custom TCP rule, Port range里面填写1721-1723, Source里面填写0.0.0.0,然后点击Add Rule, 最后是Apply rule changes

这样操作后,客户端机器应该就可以上网了。

但是,只是这样,iptables 的规则会在下次重启时被清除,所以我们还需要把它保存下来,方法是使用 iptables-save 命令:

sudo iptables-save > /etc/iptables-rules

然后修改 /etc/network/interfaces 文件,找到 eth0 那一节,在对 eth0 的设置最末尾加上下面这句:

pre-up iptables-restore < /etc/iptables-rules