Linode vpn 设置

// June 25th, 2009 // Funny, Linode, Stuff, Uncategorized, domain

VPN 的好处就不用多说了, 老实说真的花了好多时间来设置VPN, 终于可以利用VPN来看hulu.com 了, Linode.com 200G的流量不能浪费了。

配置参考了 openvpn的官方文档 点击这里查看

VPN设置第一步就是安装。 默认安装的openvpn 已经有样例 这里用证书的方式来进行登录VPN, 所以拷贝了一份examples/easy-rsa 到openvpn 目录。 同时建立一个keys目录来保存私钥已经对应的证书。 用root 用户来见以保证私钥不会被其他人获取。

$sudo apt-get install openvpn openssl ca-certificates bridge-utils;
$cd /etc/openvpn; 
$sudo mv /usr/share/doc/openvpn/examples/easy-rsa ./;
$cd easy-rsa/2.0;
$sudo mkdir keys;

接下来就是创建必要的私钥和证书了,第一次做的时候运行一下下面的命令吧

$sudo source ./vars;
$sudo ./clean-all;
$sudo ./build-ca;

然后创建必要的服务端密钥和证书

$sudo ./build-key-server vpn.demo.com

接下来创建客户端的密钥和证书,

$sudo ./build-key demouser
$sudo ./build-dh

修改/etc/openvpn 目录下面的server.conf 没有的话自己建吧, openvpn 默认是读取这个配置文件来与运行openvpn的。

port 1194
#这个是openvpn的监听端口
proto udp
#我们用udp的协议
dev tun
#这里用了 tun 模式
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/vpn.demo.com.crt
key /etc/openvpn/easy-rsa/2.0/keys/vpn.demo.com.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
#上面是证书及相关私钥。
server 10.8.0.0 255.255.255.0
#设置VPN 服务器私有网络的IP段, 默认会给Linode 服务器建立一个10.8.0.1 的IP。
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
#这里设置了客户端所有网络请求都会被转发到Linode 的VPN 服务器。 这个才是VPN数据包路由的关键。
push "dhcp-option DNS your_Linode_DNS_IP"
#因为数据被被转发到VPN 服务器,所以有必要给客户端指定DNS ,这边的DNS应该是Linode服务器用到的
#DNS, 可以通过Linode 的console 看到。
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

这样服务端的配置就完成鸟, 因为所有的数据请求都转发到了服务端VPN, 在iptables 里面需要加入转发规则。

客户端的配置就更简单了, 安装openvpn 自带的客户端,修改自己对应的ca 证书 和客户端证书就OK了,配置内容如下:

client
dev tun
proto udp
remote yourVpnServerIP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\Program Files\\OpenVPN\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\keys\\username.crt"
key "C:\\Program Files\\OpenVPN\\keys\\username.key"
ns-cert-type server
comp-lzo
verb 3

BinGo, 连接到VPN后就客户端就可以看到多了一个本地连接,IP就是 10.8.0.6 Ping 一下 10.8.0.1 正常情况下都没有问题。这个IP用VPN Server的DNS 来作为自己的DNS, 所以还有一个必须要做的就是利用Iptables 来做一下数据包转发。

$sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

如果还不行就要检查一下IPTABLES 转发规则,$sudo iptables -A FORWARD -j ACCEPT 我比较懒 就全部FORWARD了。
MAC下面我使用的是 tunnelblick 这个工具 配置大同小异,记得Set as Nameserver 打钩就可以了。
Enjoy 。。。。

PS: 补充一下 这个配置完全用证书进行VPN连接, 保管好自己客户端的KEY和证书, 经常换服务端客户端证书以提高安全性。

No Comments

(Required)
(Required, will not be published)