`
kyleliu
  • 浏览: 27642 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Linode上安装VPN

阅读更多

最近美国的Office准备修改VPN的设置,

1、用OpenVPN取代现在的PPTP VPN.

2、限制VPN对Internet的访问,今后通过VPN只能访问内部资源。

对我的影响则是:

1、不能用手机连入VPN了,iPhone不支持OpenVPN。

2、不能用公司VPN了。

不得以想到自己在Linode的VPS,通常只用来做一些测试和host一些Imified的Bot,每月200G的流量大多浪费了,不如干脆自己建一个VPN好了。

因为单纯自用,不需要什么复杂的配置,很简单的就搞定了,步骤如下:

1、安装PPTP服务,因为系统是Ubuntu,所以简单的apt-get就可以了。

sudo apt-get install pptpd -y

2、修改/etc/pptpd.conf

这个配置文件内容很简单,主要需要修改的就是文件末尾的localip和remoteip

#localip 192.168.0.1

#remoteip 192.168.0.234-238,192.168.0.245

remoteip指的是将来分配给VPN Client的IP,localip则是将来VPN Client看到的远端地址。VPN Client建立VPN连接后:

在VPN Client上ifconfig看到的:

ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1444

inet 192.168.0.234 --> 192.168.0.1 netmask 0xffffff00

在Linode上ifconfig看到的:

ppp0Link encap:Point-to-Point Protocol

inet addr:192.168.0.1 P-t-P:192.168.0.234 Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1496 Metric:1

RX packets:385 errors:0 dropped:0 overruns:0 frame:0

TX packets:322 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:3

RX bytes:56584 (56.5 KB) TX bytes:91628 (91.6 KB)

3、修改/etc/ppp/chap-secrets,这个文件名中保存了访问VPN的用户名密码,格式如下:

username pptpd password *

Username和password都是明文;pptpd代表服务名,和/etc/ppp/options.pptpd里的name对应,通常默认值就是pptpd;最后一项是分配这个用户的ip,*代表随机分配。

4、修改/etc/ppp/options.pptpd,大多数配置项都不需要修改,除了DNS设置:

#ms-dns x.x.x.x

#ms-dns x.x.x.x

去掉前面的#注释符号,修改地址为真正有效的DNS服务器地址。VPN Client建立VPN连接后,就会使用这里指定的DNS服务器来解析域名。如果这里不指定,就需要在每个VPN Client上指定。

如果系统是Ubuntu,还需要在这个文件中指定log文件的位置,否则就需要在/etc/pptpd.conf中注释掉logwtmp以彻底关闭log。

logfile /var/log/pptpd.log

5、重启PPTP

/etc/init.d/pptpd restart

通常这样VPN就可以工作,Client已经可以建立到Server的VPN连接,并且访问Server的资源了。但是因为没有建立从VPN到Internet的路由,所以Client是无法通过VPN访问Internet,需要通过设置路由规则来解决。

6、开启IP转发

修改/etc/sysctl.conf,打开net.ipv4.ip_forward=1

执行sysctl -p使配置生效。

7、安装iptables,通过iptables设置转发规则简单,

apt-get intall iptables

8、添加转发规则

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

192.168.0.0/24 对应remoteip的网段

9、保存iptables转发规则

由于iptables添加的转发规则在系统或网络设备重启后就会失效,所以需要保存iptables的配置,并使它能在重启后恢复。

保存转发规则到/etc/iptables-rules

iptables-save > /etc/iptables-rules

创建新文件/etc/network/if-up.d/iptables

#!/bin/sh

iptables-restore < /etc/iptables-rules

chmod +x /etc/network/if-up.d/iptables

这样每次网卡启动时都会重新从iptables-rules读取iptables的转发规则

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics