用树莓派搭建VPN(下):创建加密的客户端

经过上篇教程,你的树莓派现在已经变成一个VPN服务器了。你肯定花了一整晚的时间!不过相比现在不安全的网络,这是值得的。起码发邮件和传数据的时候不会担心有人在窃听。

有了VPN,可以放心大胆的使用任何没有密码保护的WIFI,来访问存储在家中的文件了。不过现在还不行,因为虽然我们为客户端(电脑及其他设备)创建了所需的密钥,却没有告诉它如何链接到服务器以及要使用哪一个密钥。

上篇教程中我们为不同设备创建的密钥名称是Client1, Client2, Client3等。这里我们将使用Eric Jodoin的脚本为我们自动创建每一个客户的配置文件。

使用脚本

这个脚本将会读取我们的默认设置并单独产生每个新的配置文件。我们先创建一个空白的默认配置文件。
nano /etc/openvpn/easy-rsa/keys/default.txt 
写入以下内容:
client
dev tun
proto udp
remote 1194
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ns-cert-type server
key-direction 1
cipher AES-128-CBC
comp-lzo
verb 1
mute 20 

除了IP地址不同外,应该如下图所示。我删除了我的公网IP地,因为这是私人信息。你也不应该把你的IP地址到处晒。另外,本地静态IP应该都是以192.168.开头。按Control+X保存并退出。

如果你使用的不是静态的公网IP地址的话,你需要使用动态域名解析服务(DDNS)来将你的域名指向你。在你的树莓派上,要运行DDclient来自动更新DDNS的注册信息。参见这篇教程

创建脚本文件:
nano /etc/openvpn/easy-rsa/keys/MakeOPVN.sh

复制Jodoin写的代码到你创建的脚本文件中。

还需要给这个文件赋可执行权限,首先进入它所在的目录:
cd /etc/openvpn/easy-rsa/keys/

然后给他root用户权限。上篇教程提到过,Linux系统的权限控制由3个十进制数字表示。700代表“拥有者可读可写可执行”。
chmod 700 MakeOPVN.sh

最后,执行此脚本。
./MakeOPVN.sh

此脚本在运行的过程中会要求你输入你之前生成了CA密钥的客户名字,例如Client1,务必确定名字正确。

运行顺利的话,会看到如下信息。
Done! Client1.opvn Successfully Created.

为每个客户执行一次。

最后一件事情是连接到树莓派,然后下载配置文件。需要使用SCP(安全复制协议)客户端来完成。如果你使用windows系统,我推荐WinSCP.我在MAC下用的是Fugu。

提示:如果你没有权连接,你需要给自己增加该目录的读写权限。在树莓派上,输入:
chmod 777 -R /etc/openvpn

安全起见,拷贝文件完成后,记得取消读写权限,改为600.
chmod 600 -R /etc/openvpn

把下载的配置文件复制到需要连接VPN的设备中就好了。

使用客户端软件

困难的部分终于完成了。现在开始,需要将我们早前生成的配置脚本到图形界面当中。如果是Android或者IOS,可以使用OpenVPN Connect应用。MAC系统没有客户端软件,我尝试了Tunnelblick和Viscosity.Tunnelblick免费,Viscosity在30天试用期过后需要$9。

我的Mac是我的第五个客户端,所以配置文件是client5.opvn 现在OSX上能工作的Tunnelblick版本。我是Mavericks,下载了这个软件的beta版本。

它会提示你是否已有想要使用的配置文件,是的,Client5.opvn。

然后会要求选择的配置文件是.opvn格式的还是.tblk格式的。如果你选择.opvn格式的,它会将文件格式改为Tunnelblick自己的文件格式。我把Client5.opvn移动到Tunnelblick的一个目录中,然后文件重命名为Client5.tblk

现在可以准备连接了。点击右上角TunnelBlick图标,选择Client5。

将会提示你输入密码,这个密码和我们在上个教程当中为每个客户生成密钥时输入的一样。如果你的密码正确,将会看到这个画面。

去咖啡店、图书馆,任何不加密的WIFI网络试试你的新连接吧。就算使用开放的网络,有了VPN,你的数据,你的一切都不会是开放的了。

Via: ReadWrite