Linode vpn 设置
// June 25th, 2009 // 1 Comment » // 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和证书, 经常换服务端客户端证书以提高安全性。
