[AWS EC2安装VPN(转载/整理)]

1、先看看你的主机是否已经支持pptp,返回结果为yes就表示通过。
1
modprobe ppp-compress-18 && echo yes
2、是否开启了TUN,有的虚拟机主机需要开启,返回结果为cat: /dev/net/tun: File descriptor in bad state。就表示通过。
1
cat /dev/net/tun
3、安装ppp , pptpd 和 iptables。

先更新一下再安装。

1
yum update
a.安装ppp和pptpd。
1
yum -y install ppp pptpd

如果出现 No package pptpd available ,请先进行以下操作:

1
2
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm
yum install epel-release-7-14.noarch.rpm

如果 wget 也没安装,可以先 yum -y install wget 。

上面的下载地址可能需要自己去网站确认一下

b.安装iptables(可能已经存在,会提示,忽略进行下一步即可)。
1
yum install iptables
4、配置
a.配置客户端IP池(pptpd.conf)
1
vi /etc/pptpd.conf

找到 localip 和 remoteip ,按喜好设置

b.配置options.pptpd,修改dns和proxyarp。
1
vi /etc/ppp/options.pptpd

找到 ms-dns (共两行),按 i 键然后将前面的 # 号删除,并将输入改为你要使用的DNS地址,例如:

1
2
ms-dns	8.8.8.8
ms-dns 8.8.4.4

还要将#proxyarp注释掉

1
#proxyarp
c.配置连接VPN客户端要用到的帐号密码
1
vi /etc/ppp/chap-secrets

格式通俗易懂,client为帐号,server是pptpd服务,secret是密码,表示是分配任意的IP,例如:
username pptpd password *
其中
号处可以设置为分配固定的内网IP地址。

d.配置sysctl.conf(允许转发)。
1
vi /etc/sysctl.conf

添加一行:

1
net.ipv4.ip_forward = 1

保存后执行 sysctl -p 使之生效。

e.配置iptables转发规则,最重要的一步

增加 iptables 转发规则,否则VPN连上后无法通过VPN访问外网。
iptables -t nat -F (清除已有规则)
iptables -t nat -A POSTROUTING -s 前面设置的remoteip(VPN客户端IP)地址/24 -j SNAT –to 你的服务器的公网IP
注意:如果是AWS EC2等部分主机,主机上没有直接绑定公网IP,而是一个内网IP,可用 ifconfig eth0 查看IP地址,上面的公网IP部分应为这个内网IP。
设置错了?可 iptables -t nat -F 后重新设置。

用例:

1
iptables -t nat -A POSTROUTING -s 192.168.90.0/24 -j SNAT --to 172.31.2.113

增加 iptables 防火墙放行规则。(未必需要

1
2
3
4
iptables -I INPUT -p tcp --dport 1723 -j ACCEPT
iptables -I INPUT -p tcp --dport 自定义VPN端口 -j ACCEPT
iptables -I INPUT -p tcp --dport 47 -j ACCEPT
iptables -I INPUT -p gre -j ACCEPT

保存规则

1
iptables-save
f.最后,保险起见,到了这里应该重启一下pptpd服务和iptables服务生效。

pptpd肯定要重启,iptables未必需要

1
2
systemctl restart iptables
systemctl restart pptpd
g.在安全组中增加入站规则,端口1723

至此,你应该可以畅快上网了。