轻松构建自己的OpenVPN家庭服务器(VMware+Amahi)

原创
系统 Linux
传统上,VPN是公司实施的一种安全机制,旨在让员工们在远离办公室时——或者甚至在同一家公司的远程分支机构时,可以全面而安全地访问企业网络。但其实我们在家里就能组建起自己的VPN服务器,并从任何有Wi-Fi热点的地方,通过这条加密通道安全的在网上冲浪。

【51CTO精选译文】实不相瞒,我抵挡不住开放式Wi-Fi热点的吸引力。我的智能手机有数据服务方案,我甚至可以把智能手机用作我那台笔记本电脑的无线路由器,但无线的速度比3G快多了,而且通常不会有相应的带宽限制或额外成本。另一方面,无线热点又天生缺乏安全性。这就是为什么每当外出时,我经常让那台iMac开着,那样就能通过与家里那台服务器之间通过SSH加密隧道,上网冲浪。这项技术用起来相当棒,也相当安全。它甚至帮助我在17届DefCon大会期间避免被公布在绵羊墙上(51CTO编辑注:Wall of Sheep,又叫耻辱墙,是DefCon大会上的一个特色,这面“墙”会显示大会期间采用不安全的协议使用了Wi-Fi热点的那些用户们的用户名和密码,见下图)。

DefCon绵羊墙

比SSH隧道安全更高、功能更多的一种解决方案是,让你的笔记本电脑成为VPN网络的一个成员。传统上,VPN是公司实施的一种安全机制,旨在让员工们在远离办公室时——或者甚至在同一家公司的远程分支机构时,可以全面而安全地访问企业网络。

但你没必要是个大人物才能享用VPN技术的好处。归功于免费开源的OpenVPN,你在家里就能组建起完全属于你自己的VPN服务器,然后能够从你所在的任何地方,安全地访问家庭局域网里面的资源。另外,你只要在OpenVPN配置中稍作几处细小调整,还能使用该服务器来安全地上网冲浪,这意味着你可以通过从笔记本电脑到远程OpenVPN服务器的加密隧道,重新路由发送所有网络流量。

(51CTO编辑注:当然了,这样的策略也同样适合小型企业。)

先决条件

你可以将OpenVPN安装在市面上的任何一款操作系统上,不过最好是用Linux或*BSD。对我来说,选择Linux是明摆着的。虽然一开始我认为自己会选择Ubuntu Server,但Amahi Home Server很快因极其容易的安装和配置而赢得了我的芳心。

说到类似组建环境的软件部分,你其实只需要一款Linux发行版。至于硬件部分,配备奔腾3级处理器、512MB内存和20GB硬盘的这样一种中规中矩的设备完全够用了。另外,你总是可以为Amahi准备一个虚拟机,然后使用该虚拟机而不是物理机。实际上我就是这么做的。

至于虚拟化平台,我本该选择免费的VirtualBox软件——顺便说一下,这款软件可供Windows、Mac OS X和Linux等主机使用。但VMware很早就赢得了我的信任。说实话,我使用VMware的技术也觉得最自在。我那台旧iMac运行Mac OS X Snow Leopard,担任小型虚拟化主机的角色完全绰绰有余,于是我开始用VMware Fusion构建了一台Amahi虚拟机。如果你的主机电脑运行Windows或Linux,又想继续使用VMware,那么你可以使用工作站版本或免费的VMware Player。

我会在下文演示如何使用Amahi发行版来构建完全属于自己的OpenVPN家庭服务器,只要遵照七个步骤,轻轻松松就能搞定。

要想有可能建立起VPN连接,客户机必须处在与服务器不同的子网。从哪个子网来连接你没得选择,不过可以确保你的OpenVPN服务器处在一个不太常见的子网,比如10.10.10.*或10.20.30.*等。你只要相应地设置住宅(ADSL)路由器,可能还要重新配置局域网里面使用静态IP地址的任何个人电脑。话虽如此,在下面的一些屏幕截图中,你会看到我们的OpenVPN服务器处在极其常见的子网192.168.1.*里面。但那是由于我们构建的这台服务器只是用于本文演示而已。

#p#

第一步:为Amahi配置一个新的虚拟机

如果你碰巧有一台备用设备完全闲置着,那倒是也不需要虚拟化。不过作为一名不折不扣的虚拟化爱好者,我很少有闲置硬件,于是很高兴开始踏上了另一趟愉快的虚拟化之旅。下列屏幕截图显示了我那个Amahi虚拟机的参数。

#p#

第二步:为HAD创建配置文件,并下载

Amahi是一款基于Fedora的发行版,为家庭级文件服务器、媒体服务器和应用服务器而设计。Amahi的那些人员喜欢把这类服务器称之为家庭数字助手(Home Digital Assistant),简称HDA。如果你想进一步了解Amahi,弄清楚它能够为你的家庭网络做什么,强烈鼓励你从其官方网站的这一页开始好好了解一番。在你开始下载Amahi之前,要注册一个免费帐户,为你的HAD创建配置文件。参阅下列屏幕截图,即可了解更多细节。

就我们这个创建环境而言,其实没有理由下载安装DVD。Amahi Express CD完全可以了,可以从这里获得该光盘,通过BitTorrent或直接通过HTTP来下载。至于选择32位版本还是64位版,我建议你选择前者,因为选择64位版其实没什么优点。下载完成后,你就有了一个名为Amahi-6.1-Express-v1-i386.iso的ISO映像文件。

#p#

第三步:安装Amahi

安装Amahi的经历不像你之前可能安装其他任何Linux发行版的经历。在本文中这意味着安装过程很容易、很快速、很简单。参阅下列屏幕截图即可了解所有细节。

#p#

第四步:初始配置

成功安装Amahi后,你需要通过其网络界面登录到系统上,更改默认的管理员密码,以及创建一个或多个普通用户。

#p#

第五步:测试OpenVPN服务器

至此,你的家庭OpenVPN(虚拟)服务器应该建立并运行起来。为了测试它,你就得在家庭局域网的外面。但根本用不着拿起那台笔记本电脑奔到外面去,因为你可以直接从Amahi网站来测试服务器!

#p#

第六步:下载、安装和配置适合操作系统的VPN客户软件

你可以从Amahi项目的这个维基页面下载一款合适的OpenVPN客户软件。不管你的笔记本电脑运行哪种操作系统,客户软件的配置都相当容易。

以Windows为例,只要先下载该客户软件,然后安装并运行。

在Mac OS X下安装VPN客户软件来得比较复杂。在Amahi人员建议的两款客户软件中,我选择了Tunnelblick,它是开源的,而且对我来说效果始终很好。Amahi维基的这个页面详细介绍了安装和配置方面的操作指南。下面就是我在运行Mac OS X Leopard的MacBook上进行的一番操作。

首先,我开启Terminal(终端)端口,把最新的Tunnelblick稳定版安装到了我的桌面上。截至本文截稿时,这个最新稳定版是版本3.1.7:

mblack:~ cvar$ cd ~/Desktop
mblack:Desktop cvar$ curl -O http://tunnelblick.googlecode.com/files/Tunnelblick_3.1.7.dmg
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                               Dload  Upload   Total   Spent     Left   Speed
100 3441k  100 3441k    0     0   706k      0  0:00:04  0:00:04 --:--:--  802k
mblack:Desktop cvar$
mblack:Desktop cvar$ ls -lh Tunnel*
-rw-r--r--  1 cvar  staff   3.4M Jul 10 08:43 Tunnelblick_3.1.7.dmg
mblack:Desktop cvar$

我从桌面上的那个*.dmg文件,以平常的方式安装了Tunnelblick:先打开DMG,把Tunnelblick.app拷贝到Applications文件夹。回到Terminal(终端)窗口上,我在桌面上创建了一个名为amahi.tblk的文件夹,切入到该文件夹:

mblack:Desktop cvar$ mkdir amahi.tblk
mblack:Desktop cvar$ cd amahi.tblk
mblack:amahi.tblk cvar$

按照Amahi维基上的操作指南,我下载了下列三个文件:

mblack:amahi.tblk cvar$ curl -O http://dl.amahi.org/vpn/AmahiHDAClient.crt
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100  3809  100  3809    0     0   6291      0 --:--:-- --:--:-- --:--:-- 14373
mblack:amahi.tblk cvar$ curl -O http://dl.amahi.org/vpn/AmahiHDAClient.key
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100   887  100   887    0     0   1364      0 --:--:-- --:--:-- --:--:--  2889
mblack:amahi.tblk cvar$ curl -O http://dl.amahi.org/vpn/ca-cert.crt
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100  1257  100  1257    0     0   2072      0 --:--:-- --:--:-- --:--:--  4054
mblack:amahi.tblk cvar$
mblack:amahi.tblk cvar$ ls -lh
total 24
-rw-r--r--  1 cvar  staff   3.7K Jul 10 09:08 AmahiHDAClient.crt
-rw-r--r--  1 cvar  staff   887B Jul 10 09:08 AmahiHDAClient.key
-rw-r--r--  1 cvar  staff   1.2K Jul 10 09:08 ca-cert.crt
mblack:amahi.tblk cvar$

我创建了一个空文件,并命名为openvpn.ovpn:

mblack:amahi.tblk cvar$ touch openvpn.ovpn
mblack:amahi.tblk cvar$ ls -lh
total 24
-rw-r--r--  1 cvar  staff   3.7K Jul 10 09:24 AmahiHDAClient.crt
-rw-r--r--  1 cvar  staff   887B Jul 10 09:24 AmahiHDAClient.key
-rw-r--r--  1 cvar  staff     0B Jul 10 09:27 openvpn.ovpn
-rw-r--r--  1 cvar  staff   1.2K Jul 10 09:24 ca-cert.crt
mblack:amahi.tblk cvar$

我在TextEdit中打开了openvpn.ovpn,把下列内容粘贴到里面:

remote delta.yourhda.com 1194
client
dev tun
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca Ca-cert.crt
cert AmahiHDAClient.crt
key AmahiHDAClient.key
comp-lzo
verb 3
auth-user-pass

当然在你这个例子中,要把“delta”换成为HAD赋予的那个名字。然后,我保存openvpn.ovpn,退出TextPad,第一次运行Tunnelblick。

最后但并非最不重要的一点是,本文是以Linux为例来演示的。正如你所料,Amahi维基的这个页面详细介绍了如何连接到OpenVPN服务器的操作指南。我遵照了这些简单、一般的操作指南,一次是在openSUSE设备上,另一次是在Ubuntu设备上。在这两种情况下,我都成功连接到了远程OpenVPN服务器,没有任何问题。

#p#

第七步:通过OpenVPN服务器,重新路由发送所有网络流量

到现在,你随时能够安全地连接到家庭网络,访问(ADSL)路由器后面的资源。这相当有用,但如果你通过OpenVPN服务器还能安全地上网冲浪,那就更棒了。这一点完全能够做到:你只要在主要的OpenVPN配置文件中作几处改动即可。

从Amahi虚拟机的文本控制台,以root用户的身份登录到Fedora,进入到/etc/openvpn目录,用文本编辑器打开amahi.conf(nano是个不错的选择):

[root@localhost ~]# cd /etc/openvpn/
[root@localhost openvpn]# nano amahi.conf

找到下面这一行

push "route 192.168.1.0 255.255.255.0"

把它注释掉:

#push "route 192.168.1.0 255.255.255.0"

提醒:你的Amahi可能在不同的子网里面,所以你可能看到的不是192.168.1.0,而是192.168.0.0或10.0.0.0之类的子网。就在被注释掉的那一行下面,插入下列内容:

push "redirect-gateway def1"

将变更内容保存到amahi.conf,退出编辑器。重新启动OpenVPN服务,就万事大吉了:

[root@localhost openvpn]# /etc/init.d/openvpn restart
Shutting down openvpn:                                     [  OK  ]
Starting openvpn:                                          [  OK  ]
[root@localhost openvpn]#

祝贺你!现在开始,只要你一连接到OpenVPN服务器,不但可以访问家庭路由器后面的资源,还能够通过远程家庭服务器,安全地上网冲浪!

英文原文:http://parabing.com/2011/07/10/build-your-own-openvpn-home-server-in-7-easy-steps/

【编辑推荐】

  1. openVPN应用指南
  2. 实路出真知 FreeBSD8下Bridge配置openVPN
  3. 实践出真知 布署openvpn环境应注意的事
责任编辑:yangsai 来源: 51CTO.com
相关推荐

2009-12-28 15:04:40

2009-10-27 15:31:29

苹果服务器

2020-03-06 20:50:30

FedoraLinuxNextcloud

2011-03-29 15:30:20

Zabbix服务器

2010-03-31 10:05:40

CentOS Samb

2010-08-05 13:40:06

NFS服务器

2021-08-07 21:51:17

服务器网站部署

2023-01-12 22:00:48

2012-02-27 15:44:12

存储服务器宝通

2009-07-19 14:05:54

微软操作系统Windows 7服务器

2010-06-30 13:56:32

构建FTP服务器

2024-01-03 11:44:26

开发云服务

2009-08-18 10:48:33

2011-02-25 16:14:09

proftpdftp

2010-03-01 17:51:11

Fedora funa

2014-03-06 09:23:19

Git服务器Github

2021-08-09 20:30:17

开源框架页面

2011-02-25 16:14:09

proftpdftp

2013-03-12 17:30:17

2009-11-24 15:34:41

DNS服务器组建
点赞
收藏

51CTO技术栈公众号