利用阿里云搭建VPN

<–more–>

科学上网—-利用阿里云ECS架设VPN

原理

  1. 阿里云上ECS上架设VPN
  2. 本地连接使用VPN拨号到阿里云ECS
  3. 使用阿里云实现翻墙等功能

首先要台国外IP的服务器

架设VPN

安装ppp pptpd iptables

ppp 数据链层协议
pptpd VPN服务类型
iptables 防火墙,用来消息转发
yum install ppp pptpd iptables
安装后的版本信息

1
2
3
4
5
6
7
8
9
10
11

$ lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.6 (Final)
Release: 6.6
Codename: Final
$ pptpd --version
pptpd v1.4.0
$ iptables --version
iptables v1.4.7

配置ppp DNS 信息

编辑 options.pptpd 配置文件

1
vim /etc/ppp/options.pptpd

修改为一下内容 去掉前面的#

1
2
ms-dns 8.8.8.8
ms-dns 8.8.4.4

配置ppp VPN帐号信息

编辑chap-secrets配置文件

1
vim /etc/ppp/chap-secrets

设置规则为VPN帐号 服务类型 VPN密码 IP,若IP为*则代表所有IP都可以使用该帐号密码

1
2
3
# Secrets for authentication using CHAP  
# client server secret IP addresses
SeeSea pptpd wing *

这里帐号是SeeSea 密码是wing

配置pptpd

编辑options.pptpd 配置文件

1
vim /etc/pptpd.conf

修改成一下内容,将注释去掉即可

1
2
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

配置内核支持转发

编辑sysctl.conf 配置文件

1
vim /etc/sysctl.conf

找到第7行进行修改 修改结果为

1
net.ipv4.ip_forward = 1

重新加载内核配置项

1
sysctl -p

配置iptables

首次运行 iptables 查看iptables运行状态

1
2
service iptables status
iptables: Firewall is not running

启动iptables服务

1
iptables -L -n

配置规则

第一次配置

1
2
3
4
iptables -A INPUT -i lo -j ACCEPT #允许127.0.0.1访问本地服务  
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT #允许访问外部服务
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT #允许 ping
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #开启 ssh 端口

已经配置 iptables

设置转发策略(because 阿里云是双网卡,内网eth0,外网eth1)

1
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -jMASQUERADE

设置VPN端口策略

1
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT

保存iptables 选项并重新启动iptables

1
service iptables save

##Finally

1
2
3
4
5
service iptables restart #重新启动 iptables  
sudo service pptpd restart #重新启动 pptpd
sudo chkconfig iptables on #开机启动 iptables
sudo chkconfig pptpd on #开机启动 pptpd
sudo iptables -P INPUT DROP #加载防火墙策略

各种参考资料

阿里云
阿里云Centos配置iptables防火墙