首先介绍一下 open***,此介绍来自网络:
   Open××× 允许参与建立×××的单点使用预设的私钥,第三方证书,或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库,以及SSLv3/TLSv1 协议。Open×××能在Linux、xBSD、Mac OS X与Windows 2000/XP上运行。它并不是一个基于Web的×××软件,也不与IPsec及其他×××软件包兼容。
隧道加密
   Open×××使用OpenSSL库加密数据与控制信息:它使用了OpesSSL的加密以及验证功能,意味着,它能够使用任何OpenSSL支持的算法。它提供了可选的数据包HMAC功能以提高连接的安全性。此外,OpenSSL的硬件加速也能提高它的性能。
验证
   Open×××提供了多种身份验证方式,用以确认参与连接双方的身份,包括:预享私钥,第三方证书以及用户名/密码组合。预享密钥最为简单,但同时它 只能用于建立点对点的×××;基于PKI的第三方证书提供了最完善的功能,但是需要额外的精力去维护一个PKI证书体系。Open×××2.0后引入了用 户名/口令组合的身份验证方式,它可以省略客户端证书,但是仍有一份服务器证书需要被用作加密.
网络
   Open×××所有的通信都基于一个单一的IP端口,默认且推荐使用UDP协议通讯,同时TCP也被支持。Open×××连接能通过大多数的代理服务 器,并且能够在NAT的环境中很好地工作。服务端具有向客户端“推送”某些网络配置信息的功能,这些信息包括:IP地址、路由设置等。Open×××提供 了两种虚拟网络接口:通用Tun/Tap驱动,通过它们,可以建立三层IP隧道,或者虚拟二层以太网,后者可以传送任何类型的二层以太网络数据。传送的数 据可通过LZO算法压缩。IANA(Internet Assigned Numbers Authority)指定给Open×××的官方端口为1194。Open××× 2.0以后版本每个进程可以同时管理数个并发的隧道。
   Open×××使用通用网络协议(TCP与UDP)的特点使它成为IPsec等协议的理想替代,尤其是在ISP(Internet service provider)过滤某些特定×××协议的情况下。在选择协议时候,需要注意2个加密隧道之间的网络状况,如有高延迟或者丢包较多的情况下,请选择 TCP协议作为底层协议,UDP协议由于存在无连接和重传机制,导致要隧道上层的协议进行重传,效率非常低下。
安全
   Open×××与生俱来便具备了许多安全特性:它在用户空间运行,无须对内核及网络协议栈作修改;初始完毕后以chroot方式运行,放弃root权限;使用mlockall以防止敏感数据交换到磁盘。
Open×××通过PKCS#11支持硬件加密标识,如智能卡。

  有两种模式,一种是路由模式,一种是桥接模式,这里用的是路由模式(官方推荐的模式),如有特殊需求可采用桥接模式,具体要求可参考官方说明。

那么开始搭建吧!!!
以下是我的安装步骤:

一。服务器端的安装

1.首先安装软件包并更新时间

 ntpdate server 0.pool.ntp.org

open***需要以下三个软件包。
openssl
pam
lzo

  检查系统中是否已安装以上所需安装包,如没有安装许下载安装,安装方式可以是rpm包或源码包,我在这里选择的是源码包


2.下载 lzo
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz

3.到官方网站下载open***
wget http://www.open***.net/release/open***-2.1.1.tar.gz

4.安装lzo

 tar -zxvf lzo-2.03.tar.gz
 cd lzo-2.03
./configure
 make ; make install

5.安装open***
tar -zxvf open***-2.1.1.tar.gz
cd open***-2.1.1
./configure --with-ssl-headers=/usr/include/openssl --with-ssl-lib=/usr/lib --with-lzo-headers=/usr/local/include/lzo --with-lzo-lib=/usr/local/lib
make;make install

6.进到相关目录设定相关环境参数:(你也可以修改该目录下的vars文件)
cd /root/soft/***/open***-2.1.1/easy-rsa/2.0                                   
export D=`pwd`
export KEY_CONFIG=$D/openssl.cnf
export KEY_DIR=$D/keys
export KEY_SIZE=1024
export KEY_COUNTRY=CN
export KEY_PROVINCE=BJ
export KEY_CITY=BJ
export KEY_ORG="bob.zhang"
export KEY_EMAIL="zhangbouu@sina.com"

7.建立KPI:


8.生成服务器端证书:



9.生成客户端的证书:


##如有需要可以再生成其他client端的key,方法同上。

10.生成服务器必须的文件
export OPENSSL="/usr/bin/openssl"
运行


## 生成的所有证书都在/root/soft/***/open***-2.1.1/easy-rsa/2.0/keys下。
## 其中服务器需要的是ca.crt、server.crt、server.key、dh1024.pem,每个客户端需要的是ca.crt、client1-3.crt、client1-3.key。



下图是各文件的说明:


将所生成的keys打包
tar -zcvf keys.tgz client1.key client1.crt ca.crt

11.创建服务器端配置文件
[root@www sample-config-files]# cp server.conf /usr/local/etc/
[root@www sample-config-files]# pwd
/root/soft/***/open***-2.1.1/sample-config-files

vi /usr/local/etc/server.conf

[root@www etc]# cat server.conf | grep -v '#' | grep -v ';' | grep -v '^$' > new
[root@www etc]# cat new
port 1194    //监听端口,此为默认值
proto udp    //使用UDP协议
dev tun        //使用路由隧道模式
ca /root/soft/***/open***-2.1.1/easy-rsa/2.0/keys/ca.crt        //各生成库的证书位置,要写对哦
cert /root/soft/***/open***-2.1.1/easy-rsa/2.0/keys/server.crt
dh /root/soft/***/open***-2.1.1/easy-rsa/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0    //客户端连入后的ip段
ifconfig-pool-persist ipp.txt
client-to-client     //允许连入端可以看到刺网段内的其他主机
keepalive 10 120    //监测客户端,每10秒ping一次,连续120秒后切断
comp-lzo        //开启压缩模式
persist-key
persist-tun
status /root/soft/***/open***-2.1.1/easy-rsa/2.0/keys/open***-status.log //生成的一些链接和状态日志
verb 3

12.启动服务
/usr/local/sbin/open*** /usr/local/etc/server.conf > /dev/null 2>&1 &
确认服务状态
[root@www keys]# netstat -an | grep 1194
udp        0      0 0.0.0.0:1194                0.0.0.0:*
然后将其放到 /etc/rc.d/rc.local下即可。


二。Open××× GUI For Windows 客户端安装过程

1. 首先去下载相对用的客户端
    下载地址:http://open***.se/development.html
    注意版本号的对应哦
2.安装客户端
    步骤默认即可,这里就不演示了。
3.配置客户端
    a)记得在服务器端打包的文件吗?把 open***_keys.tgz 安全的拷贝到客户端.
    b)在GUI的安装目录中查找config目录,将软件包解压即可,见下图
    c)在任务栏右下角右键编辑client 端配置文件(该配置文件在sample-config下,拷到本目录下即可),如图:




4.客户端的配置文件如下
    client
    dev tun
    proto udp
    remote 192.168.1.11 1194     //要链接的服务器的IP和端口
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    ca ca.crt
    cert client1.crt        //注意对应
    key client1.key
    comp-lzo
    verb 3

5.)在任务栏右下角右键选 connect即可

三。验证

其实最好的方法是在客户端看一下IP就可以了,看一下是不是服务器分配的IP段就可以了,或ping一下服务器的ip也是可以的。



   总结:以上就是点对点链接***完成,可能说复杂了,但对于深入了解和进行下一步搭建***是必经阶段;请看我的下一篇 "我的***--再探open***(二)" http://zhangbo.blog.51cto.com/350645/251248

   欢迎交流!