Linux版Open×××安装、配置教程

Linux版Open×××安装、配置教程

来源:原创  707次浏览 3条评论html

本文主要介绍软件 Open×××的相关内容: Linux版Open×××安装、配置教程

   其下列版本/分支能够参考本文:linux

  • Open××× Linux版:[所有分支]git

其余版本/分支请点击这里查看:[ Open×××安装、配置]


本文将以目前最新的open***-2.3.4.tar.gz(更新于2014-5-2,下载地址)为例来介绍如何在Linux系统中安装、配置及使用Open×××。github

在这里,咱们选用了一台预装CentOS 6.5 64位系统的计算机做为Open×××服务器,一台预装Ubuntu 14.04 64位系统的计算机做为Open×××客户端,来演示Linux版Open×××的安装配置操做过程。实际上,Open×××并不区分Linux发行版本,几乎全部的配置都是同样的,所以Red Hat、Fedora、SUSE等Linux发行版都可参考本文。算法

安装Open×××的前提条件

在安装Open×××以前你必须确保你已经安装了C编译器(例如gcc)、OpenSSL、LZO(一种无损压缩算法)、PAM(一种可插入式的身份验证模块)。若是你安装了yum,可使用以下命令来安装这些工具(选择性地安装以前没有安装的软件包便可):安全

#安装gcc、openssl、lzo、pam
yum install
-y gcc openssl-devel lzo-devel pam-devel
Ubuntu、Debian等系统使用apt-get进行安装,安装命令请 参考这里

安装Linux版Open×××

首先,咱们须要先下载Open×××安装程序,上面已经给出了Linux版Open×××的下载地址,在这里咱们就很少说了。服务器

在这里,咱们将下载的安装文件移动到/usr/local/文件夹中(你也能够自行移动到其余目录)。网络

Open×××安装文件

接着,咱们使用tar命令,将该压缩文件解压到当前目录,完整命令为:tar zxf open***-2.3.4.tar.gztcp

解压后的Open×××目录

接着,咱们依次执行以下命令:ide

#跳转到解压后的open***目录
cd open***
-2.3.4
#调用configure
./configure
#编译
make
#安装
make install

Open×××配置

安装Open×××完毕后,接下来就应该配置Open×××,以便于其能正常工做。配置Open×××主要有两个步骤:一是生成服务器和客户端所需的各类证书,二是编写服务器和客户端所需的配置文件。

下载easy-rsa

想要生成各类证书和密钥,咱们还要用到easy-rsa(只有服务器端须要easy-rsa,客户端无需安装)。坑爹的是,Open××× 2.3.x并无自带这个东西,咱们还须要去GitHub下载easy-rsa。更坑爹的是,GitHub上的easy-rsa已经升级到了3.0版本,该版本几乎重写了以前全部的程序代码,连使用方法都全变了,然而Open×××的官方文档并无做相应更新,其中介绍的仍然是easy-rsa 2.0的操做方法。为了不没必要要的麻烦,咱们推荐下载2.0版本的easy-rsa,你也能够直接点击这里下载。

在这里咱们将下载的easy-rsa-release-2.x.zip文件放在/root目录中。咱们依次执行以下命令:

#转到easy-rsa安装文件所在目录
cd
/root/
#解压该安装文件
unzip
-q easy-rsa-release-2.x.zip

执行结果以下图所示(其中的ls命令用于查看文件列表):

解压easy-rsa

接着,咱们将上图中所标注的easy-rsa-release-2.x/easy-rsa文件夹复制到Open×××的解压目录中,命令以下:

#复制解压后的easy-rsa目录到Open×××解压目录下
cp
-r easy-rsa-release-2.x/easy-rsa /usr/local/open***-2.3.4

复制easy-rsa

而后,咱们执行命令cd /usr/local/open***-2.3.4/easy-rsa/2.0从而进入Open×××下的easy-rsa/2.0目录。

easy-rsa的2.0目录文件列表

上面说了这么多,实际上就只是下载了easy-rsa 2.0,并将解压后的easy-rsa子目录复制到了Open×××的主目录下。这里的文件夹2.0就是咱们之后生成各类证书和密钥的根据地了。

使用easy-rsa生成CA证书

在生成证书以前,咱们建议你对2.0目录中的vars文件稍做修改。vars文件存储的是一些用户变量设置信息,每次生成证书都会使用到其中的某些变量。以下图所示,咱们着重建议你关注红色矩形框内的变量,并选择性地对其进行修改(你能够不修改这些参数,但不要把这些参数留空)。

KEY_SIZE:表示密钥的长度,通常为1024或2048(长度越长,性能耗费越多)。

#下面是一些用户相关信息配置
KEY_COUNTRY:所在国家
KEY_PROVINCE:所在省
KEY_CITY:所在城市
KEY_ORG:所在组织
KEY_EMAIL:邮箱地址
KEY_OU:机构单位或部门名称

vars文件部份内容

下面,咱们就开始来生成证书了。保持当前目录为Open×××根目录/easy-rsa/2.0。而后依次执行下列命令:

#初始化命令,用于设置后续命令所需的相关变量信息
. ./vars
#清除以前建立的全部证书和密钥
./clean-all
#生成CA证书和密钥
./build-ca
注意:证书的用户信息能够根据须要自行输入。若是不输入、直接回车,则表示该字段使用"[]"中的默认值(也就是前面vars文件中设置的参数值);若是输入".",则表示该字段留空。在这里须要注意Common Name字段,这至关于证书的"用户名",请确保每一个证书的Common Name字段是惟一的。

执行初始化命令并建立CA证书

到这里,咱们的CA证书和密钥就已经生成成功了,生成的证书和密码默认均存放在当前目录的子文件夹keys中。

生成服务器端证书

接下来,咱们为服务器和客户端生成各自所需的证书和密钥(全部的证书和密钥都必须由Open×××服务器上的easy-rsa生成)。

咱们能够执行命令./build-key-server server来生成服务器端所需的证书和密钥。以下图所示,与建立CA证书同样,咱们先输入证书的相关信息,并在最后输入两次"y"确认生成便可。

生成server端证书和密钥

生成客户端证书

与建立服务器端证书相似,咱们可使用命令./build-key clientName来生成客户端证书和密钥,其中clientName为自定义的客户端名称(例如:client一、client二、jim、tom)。若是须要为多个客户端生成证书,只须要分别执行屡次便可。

生成客户端证书和密钥

生成迪菲·赫尔曼交换密钥

此外,咱们还须要为Open×××的服务器端建立迪菲·赫尔曼交换密钥,命令为./build-dh(无需额外输入,耐心等待生成完毕便可)。迪菲·赫尔曼交换密钥是一种安全协议,用以对数据进行加密。

生成迪菲·赫尔曼交换密钥

生成TLS-auth密钥

这一步骤是可选操做。Open×××提供了TLS-auth功能,能够用来抵御Dos、UDP端口淹没***。出于安全考虑,你能够启用该功能;启用该功能,你须要执行命令open*** --genkey --secret keys/ta.key来生成TLS-auth所需的密钥文件。

到这里,咱们的证书生成就告一段落了。若是你之后想要生成新的客户端或执行其余操做,只须要先执行命令. ./vars,而后执行相应的命令便可,例如./build-key client2

最后,咱们来看看咱们一共生成了哪些证书和密钥。

编号①:CA证书和密钥
编号②:客户端client1的证书和密钥,
编号③:迪菲·赫尔曼交换密钥 (若是你的KEY_SIZE=1024,则该文件名称为dh1024.pem)。
编号④:服务器端证书和密钥。
编号⑤:启用tls-auth所需的文件。

生成的全部证书文件和密钥

编写配置文件

众所周知,Open×××虽然能够分为客户端和服务器,不过它们的安装程序是彻底同样的,只是经过不一样的证书和配置文件来进行区分。在这里,咱们先在Open×××主目录下建立一个config目录,并将其所需的证书和密钥文件拷贝到该目录中。

其中,服务器端须要用到的文件有:

ca.crt
ca.key
dh2048.pem (若是最初的变量KEY_SIZE设为1024,这里就是dh1024.pem)
server.crt
server.key
ta.key (若是不开启tls-auth,则无需该文件)

客户端client1须要用到的文件有:

ca.crt
client1.crt
client1.key (名称client1根据我的设置可能有所不一样)
ta.key (若是不开启tls-auth,则无需该文件)

在这里,咱们以Open×××服务器端为例来演示上述操做流程。

#建立config目录
mkdir
/usr/local/open***-2.3.4/config
#复制证书和密钥文件到config目录
cp keys
/ca.crt keys/ca.key keys/server.crt keys/server.key keys/dh2048.pem keys/ta.key /usr/local/open***-2.3.4/config

拷贝证书和密钥文件

此外,咱们还须要为服务器和每一个客户端的config目录分别编写一个配置文件,服务器端的配置文件为server.conf,客户端的配置文件为client.conf。

这两个配置文件该如何编写呢?Open×××已经在sample/sample-config-files子目录中为咱们提供了相关的示例文件server.conf和client.conf,而且配置文件中的每一个配置选项均有详细的英文说明(配置文件中"#"或";"开头的均为注释内容)。

Open×××提供的示例配置文件

如今,咱们先将server.conf文件拷贝到config目录中,而后再对其进行修改。

#转到simple-config-files目录
cd
/usr/local/open***-2.3.4/sample/sample-config-files
#复制server.conf到config目录中
cp server
.conf /usr/local/open***-2.3.4/config

复制到config目录中

在这里,咱们先给出server.conf的详细配置,并注明每项配置的做用。

local 192.168.1.106     #指定监听的本机IP(由于有些计算机具有多个IP地址),该命令是可选的,默认监听全部IP地址。
port
1194             #指定监听的本机端口号
proto udp            
#指定采用的传输协议,能够选择tcp或udp
dev tun              
#指定建立的通讯隧道类型,可选tun或tap
ca ca
.crt             #指定CA证书的文件路径
cert server
.crt       #指定服务器端的证书文件路径
key server
.key    #指定服务器端的私钥文件路径
dh dh2048
.pem         #指定迪菲赫尔曼参数的文件路径
server
10.0.0.0 255.255.255.0   #指定虚拟局域网占用的IP地址段和子网掩码,此处配置的服务器自身占用10.0.0.1。
ifconfig
-pool-persist ipp.txt   #服务器自动给客户端分配IP后,客户端下次链接时,仍然采用上次的IP地址(第一次分配的IP保存在ipp.txt中,下一次分配其中保存的IP)。
tls
-auth ta.key 0     #开启TLS-auth,使用ta.key防护***。服务器端的第二个参数值为0,客户端的为1。
keepalive
10 120      #每10秒ping一次,链接超时时间设为120秒。
comp
-lzo              #开启×××链接压缩,若是服务器端开启,客户端也必须开启
client
-to-client      #容许客户端与客户端相链接,默认状况下客户端只能与服务器相链接
persist
-key
persist
-tun           #持久化选项能够尽可能避免访问在重启时因为用户权限下降而没法访问的某些资源。
status open***
-status.log    #指定记录Open×××状态的日志文件路径
verb
3                #指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细
接着是客户端配置文件client.conf。
client         #指定当前×××是客户端
dev tun        
#必须与服务器端的保持一致
proto udp      
#必须与服务器端的保持一致
remote
192.168.1.106 1194      #指定链接的远程服务器的实际IP地址和端口号
resolv
-retry infinite    #断线自动从新链接,在网络不稳定的状况下(例如:笔记本电脑无线网络)很是有用。
nobind        
#不绑定特定的本地端口号
persist
-key
persist
-tun
ca ca
.crt      #指定CA证书的文件路径
cert client1
.crt       #指定当前客户端的证书文件路径
key client1
.key    #指定当前客户端的私钥文件路径
ns
-cert-type server      #指定采用服务器校验方式
tls
-auth ta.key 1     #若是服务器设置了防护DoS等***的ta.key,则必须每一个客户端开启;若是未设置,则注释掉这一行;
comp
-lzo              #与服务器保持一致
verb
3                #指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细
实际上,将两个模板文件中与IP地址有关的配置修改一下,就能够直接拿来使用。
关于Open×××配置文件的更多信息请参考 server.conf配置详解client.conf配置详解

启动Open×××

当咱们把服务器和客户端所需的证书、密钥和配置文件都分配完毕以后,咱们就能够尝试启动Open×××来检查咱们的工做成果了。

在Linux中,咱们能够直接执行如下命令来启动Open×××:

open*** 配置文件路径

若是你是服务器端,就指定server.conf文件的路径,若是你是客户端就指定client.conf文件的路径。

请注意:

  1. 配置文件中的文件路径涉及到相对路径的,均以启动Open×××时的所在目录为准。因为咱们在配置文件中设置的文件路径都是相对

    config

    目录的路径,所以咱们也只能在

    config

    目录下才能正常启动Open×××。若是你想在任何地方都能使用上述命令启动Open×××,建议你将配置文件与文件路径相关的部分所有改成绝对路径。

  2. Open×××服务器所在计算机必须容许Open×××经过防火墙,你能够禁用掉防火墙,或者将Open×××设为可信程序,或者开放1194端口。

  3. 启动服务器和客户端都须要必定的权限,建议用

    root

    帐户或sudo命令进行启动。

如下就是Open×××服务器的启动效果:

启动Open×××服务器成功

客户端的启动效果以下:

启动Open×××客户端成功

咱们在客户端尝试ping服务器的虚拟IP地址10.0.0.1,顺利ping通。

Open×××客户端ping服务器IP地址

做者:软件指南针(http://www.softown.cn),转载请保留出处!