图书前言

随着互联网的发展和计算机技术的普及,在网络中传输的数据的安全也尤为重要,因此在很多地方都使用了虚拟专用网,也就是我们所说的VPN。通过使用VPN,在两个连接在公网的点上构建一条虚拟通道,这样,传输在此通道中的数据将被看做是安全的数据。

在实现VPN 的技术中,有Cisco 提供的专用设备,由硬件实现,还有其他通过软件实现的VPN。在众多的VPN 产品中,OpenVPN 以其优秀的性能被开源市场认可,尤其是它对网络的强大穿透力。

OpenVPN 就是VPN 的一个具体实现,它穿透能力强,是所有VPN 产品中的佼佼者,不但性能优秀,而且是开源软件,可以免费使用,并进行二次开发。OpenVPN 提供了多种平台的安装版本,此外,它还提供了许多种类的客户端,包括Windows、Linux 和MAC 下的客户端,以及各种移动设备的客户端安装包。

OpenVPN 适用于以下情况:

. 两个局域网的互联;

. 异地传输(保存)数据(涉及安全的数据);

. 异地办公(出差在外的员工或者是公司的合作伙伴)。

为网络数据的安全传输保驾护航是我们作为安全工程师的重要责任,但愿本书能够为读者提供帮助。

本书内容

在本书中我们将讲述OpenVPN 的安装和使用,以及OpenVPN 的基础知识,全书分为4 个部分,共12 章的内容。

第1 部分 OpenVPN 的基础

本部分包括以下4 章内容:

.认识OpenVPN 

.安装OpenVPN 服务器

.分析OpenVPN 安装包中的部分目录和文件

.安装OpenVPN 客户端

构建虚拟专用通道

—— OpenVPN服务器详解与架设指南(基于Linux)

第2 部分 OpenVPN 的应用

本部分包括以下5 章内容:.OpenVPN 的两种用户验证方式.OpenVPN 的两种典型应用.OpenVPN 有两种运行模式.管理OpenVPN 服务器.控制OpenVPN 用户的访问

第3 部分应用案例——使用FreeRADIUS 验证OpenVPN 用户登录

本部分包括以下2 章内容:.使用MySQL 后台.使用OpenLDAP 后台

第4 部分商业OpenVPN 服务器

本部分包括一章内容,讲述OpenVPN 的另一个分支——商业OpenVPN 服务器OpenVPN_AS,被称为OpenVPN 访问服务器。

内容声明

如果你在任何地方看到了与本书内容雷同的内容,则需要确定一下它的内容是否来自于相应软件的官方网站、man 文档、howto、README,Changelog、INSTALL、LICENSE、* .conf 等这些原创。在我看来,什么是原创?只有这些才是原创(我个人的观点,别拿砖头拍我!),我们只是对它们进行衍生和应用。本书中的内容就是这样,这是我个人的一种学习方法,对于每一种新使用的软件,我都会看它提供的相关文档和其官方网站,配置文件绝对是软件的精华所在,因此在本书中讲述了大量的配置文件,没办法,Linux 下的服务不就是命令加上配置吗?

由于这些官方网站、man 文档、howto、README,Changelog、INSTALL、LICENSE、

* .conf 等都是英文的,因此对于我们的认识和阅读是非常不方便的,事实上我们也正是缺乏这些文档的知识,才导致我们一直徘徊在技术的门口。本人就是基于这个基础来编写本书,将这些最基础也是最权威的文档通过理解来实现汉语化,以方便更多的国人阅读,以我个人的感觉,这些东西实际上是我们最需要的,它是认知的第一步,毕竟我们的官方语言是汉语。

书中的内容是我在工作中的一个总结,没有刻意地去改变任何说法,相反,只要是官方文档中有的,我就尽可能地使用它们的说法及方法。

使用对象

.广大的Linux 爱好者;.具有一定Linux 基础的系统管理员;.Linux 下的安全工程师;.培训中心;.运维人员;.构建和使用OpenVPN 的广大用户。

关于读者

全书分为12 章,如果你是初学者,那么不要从第1 章开始,而要从第2 章开始,因为第1 章是基础部分,对于初学者来说,看起来很累;如果你急于使用OpenVPN,那么可以从第6 章开始,然后是第3 部分;如果你是一个有经验的OpenVPN 管理者,那么有必要看看第1 章,在这些内容中找到新的使用,以便组合出新的功能。

本书的最后一章是针对OpenVPN 的商业版所写,对于开源用户不妨也参考一下,毕竟这两个版本是一母同根,而且它还提供了两个客户端的免费使用,这对于不提供OpenVPN 用户访问,而是作为管理员自己使用方法(比如你在家里就可以访问公司的内网,或者管理公司的服务器)已经足够了。

作者声明

本书的内容是我在工作中的一个总结,在生产环境中都使用过,并非纸上谈兵,但是书中的例子,我尽可能地不使用生产环境中的例子,一是怕对你造成误导,二是不想说什么是权威。

我在前面说了本书内容的来源,而对于其内容的构成,其一是培训员工的资料;其二是培训中心的一些文案;其三是我在学习中的笔记。本书由这三部分融合而成,而不是简单地拼凑。

另外,毕竟我们都是做互联网的,每天面对着无数个页面,我所要说的是,如果读者在阅读本书的过程中发现有和网络上相似的内容,那么确定一下是否是两者(即笔者和您看到的文章的作者)参考了同一个官方的资料,本人绝对没有有意抄袭其他作者的内容;第二,如果我写的内容确实和您的内容有相同之处,那么及时和我联系(绝对是缘分!);第三,互联网给了我们发展,也给了我们交流,如果您在阅读本书的过程中发现有个别说法、方法和您的相同,那么请您海涵,往往是一个提法、方法用久了就觉得是自己的方法了(我相信谁都会犯这种错误!);第四,由于本人是做运维(系统管理和网络管理)的,因此在写作风格上是按照自己的认知过程所写,既没有受过专业的训练也没有模仿某个作者或者某个作品的写作风格,如果和您的写作风格相同,那么绝对是巧合(这个就不要计较了!);第五,本书引用了互联网的一些内容,由于同一个内容被转载来转载去,确实很难找到原出处,因此在应用的内容处只指明了来源于互联网。

由于本人才疏学浅,因此本书难免会有疏漏和不足,希望广大读者有什么建议和意见可以给本人发邮件:linux_safe_openvpn@126.com。

关于OpenVPN 

OpenVPN是实现VPN的一个开源软件,在了解OpenVPN之前首先要理解VPN。VPN的全名是“Virtual Private Network”,翻译为中文就是“虚拟专用网”,因此又引出一个“专用网”的概念,也就是说OpenVPN“概念”的形成是这样的: 

专用网→虚拟专用网(VPN)→OpenVPN 

专用网就是在两个点(例如,北京和广州)之间架设一条专用线路,但是它并不需要真正地去铺设光缆之类的物理线路。虽然没有亲自去铺设,但是需要申请专线,在这条专用的线路上只能传输自己的东西。这种专用网的费用可想而知。 

虚拟专用网就是在这两个点之间通过公网实现的一种“专用网”,因此称为“虚拟专用网”,不需再铺设专用线路,也不需再申请专线,而是只要这两个点之间属于公网的一个节点就可以了,对于服务器端需要有一个公网地址,而客户端则能够接入互联网就可以了。 

OpenVPN就是VPN的一个具体实现,它穿透能力强、无须修改协议栈(例如,基于IPSec实现的VPN需要修改)、无须编写专门的策略来解决VPN数据穿越NAT的问题,便可以在现有的网络上进行构建,所以它是VPN产品中的佼佼者,不但性能优秀,而且是开源软件,不但可以免费使用,还可以二次开发。 

举一个简单的例子,对于一个在外跑业务的员工,需要时刻访问公司的资源。如果一个员工在甲方的网络中访问自己公司的资源,那么甲方只要在业务员连接的交换机上采取点小措施,那么所有的信息将会被甲方获取,如果该员工在正常连接网络后使用了VPN,那么被

获取的数据也是被加密的数据,也就是说甲方获取的数据等于是无效的垃圾数据。 

因此,无论是在何种情况下,使用VPN非常重要。 

OpenVPN在本质上是将虚拟网卡设备、TCP/IP网络技术、路由技术以及SSL加密技术结合而成的一个具体实现,虚拟网卡实现连接设备,TCP/IP 实现连接协议,路由技术实现网络间的穿透,而SSL加密技术实现虚拟通道的安全,即认证和加密。所以在学习、使用和处理OpenVPN的问题时要从这四个方面去分析。