第一稿应该是10年写的了吧,几经修改和完善,今天公布。参考了无数文章,已无法一一列举了,在此致谢。关于open***,网上文章很多,不再赘述,如有错误,敬请指正。

【认证方式】

open***有三种认证方式:

    1、证书认证。

    2、证书加密认证(即对证书设置密码)。

    3、密码认证(支持pam_mysql,可直接使用系统用户或者在数据库中添加用户)。

    当然也支持混用。以上几种方式都已测试过。本文介绍证书认证。

【操作系统】CentOS 5.664位)Ubuntu9.10 Window2003

【环境支持】kernel 需要支持 tun 设备, 需要加载 iptables 模块。

【软件需求】open*** serverclientlzoopenssl-devel

【下载地址】http://open***.net

            http://www.oberhumer.com/opensource/lzo/download/

 服务器端下载并安装open***服务端,客服端下载并安装open***客服端。

 Centos服务器端】

  1、环境检测

  Open***需要TUN支持,通过命令检测:cat /dev/net/tun
  如果返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明正常

  2、安装openssl-devel

  1. #yum install -y openssl-devel 

3、安装lzo

  1. #tar xvf lzo.2.04.tar.gz 
  2. #cd lzo.2.04 
  3. #./configure 
  4. #make 
  5. #make install 

  3、安装open***服务端

  1. #tar xvf open***-2.1.4.tar.gz 
  2. # cd open***-2.1.4 
  3. #./configure 
  4. #make 
  5. #make install 
  6. #cd .. 
  7. #mkdir /etc/open*** 
  8. #cp -r open***-2.1.4/easy-rsa/2.0  /etc/open*** 
  9. #cd /etc/open***/2.0  

4、生成证书

创建证书颁发机构等信息:

  1. #vi vars 
  2. #.vars 
  3. #./build-ca server 

生成服务器证书:

  1. #./build-key-server server 

生成客服端证书:(可选,如果采用密码认证则可不生成。)

  1. #./build-key client1 
  2. #./build-key client2 

  ……生成多个

最后生成Diffie Hellman参数:

  1. #./build-dh 

5、配置参数

创建open*** 服务端配置文件。

  1. #mkdir /etc/open***/config && cd /etc/open***/config 
  2. #vi server.conf 
  1. user  nobody 
  2. group nobody 
  3. port  8144  #自定义端口
  4. proto tcp   #协议,tcp或者udp
  5. dev tun  
  6. ca /etc/open***/2.0/keys/ca.crt  
  7. cert /etc/open***/2.0/keys/server.crt  
  8. key /etc/open***/2.0/keys/server.key  
  9. dh /etc/open***/2.0/keys/dh1024.pem  
  10. client-config-dir /etc/open***/ccd        #客户端个性定制文件目录 
  11. server 10.8.0.0 255.255.255.0   
  12. ;push ”redirect-gateway”    #使Client的默认网关指向***,让Client的所有Traffic都通过***走 
  13. push "dhcp-option DNS 10.8.0.1
  14. push "dhcp-option DNS 8.8.8.8"  
  15. push "dhcp-option DNS 8.8.4.4"  
  16. route 10.25.79.0 255.255.255.254          #添加静态路由 
  17. push "route 10.25.79.0 255.255.255.254"   #推送到客户端 
  18. client-to-client                          #***拨号客户端互通 
  19. max-clients 100                         #最大连接数 
  20. keepalive 10 120  
  21. comp-lzo  
  22. persist-key  
  23. persist-tun  
  24. status /var/log/open***-status.log        #状态日志 
  25. log-append /var/log/open***.log 
  26. verb 4                                 #日志级别 

为客户端固定分配IP

配置文件中添加client-config-dir /etc/open***/ccd

  创建目录/etc/open***/ccd

  创建客户端证书名称命名的文件,并添加

  1. #cd /etc/open***/ccd 
  2. #vim client1  #名字必须对上号。
  3. ifconfig-push 10.8.0.9 10.8.0.10 

客户端的IP地址不是任意指定的,由于WindowsTAP驱动必须采用/30网段的IP,为兼容该协议,应从特定的IP地址中选择,而且是成组出现的;[如192.168.0.1 192.168.0.2是一组],匹配表如下。

[1,    2] [5,    6]  [9, 10] [13, 14] [ 17, 18] [ 21, 22] [ 25, 26] [ 29, 30] [33, 34]

[ 37, 38] [ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58] [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78] [ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98] [101,102] [105,106] [109,110] [113,114] [117,118] [121,122] [125,126] [129,130] [133,134] [137,138] [141,142] [145,146] [149,150] [153,154] [157,158] [161,162] [165,166] [169,170] [173,174] [177,178] [181,182] [185,186] [189,190] [193,194] [197,198] [201,202] [205,206] [209,210] [213,214] [217,218] [221,222] [225,226] [229,230] [233,234] [237,238] [241,242] [245,246] [249,250] [253,254]

 6、启动

  1. #/usr/sbin/open*** --config /etc/open***/config/server.conf >/dev/null 2>&1 & 

  Open***添加到开机启动。

  1. #vi /etc/rc.local 
  2. 加入/usr/sbin/open*** --config /etc/open***/config/server.conf >/dev/null 2>&1 & 

Ubuntu客户端配置】

1、安装openssl-devel

  1. #sudo apt-get install openssl 
  2. #sudo apt-get install libssl-dev  

  其余步骤同Centos服务器端安装。

      Centos服务器端传输open***生成的keys文件夹中的ca.crtclient1.crtclient1.key               

    到本地/etc/open***/config目录中。

  2、创建配置文件

  1. #vim /etc/open***/config/client.conf 
  1. client  
  2. dev tun  
  3. proto tcp  
  4. remote 1.2.3.4 8144   #服务器端IP和端口
  5. resolv-retry infinite  
  6. nobind  
  7. persist-key  
  8. persist-tun  
  9. ca ca.crt  
  10. cert client1.crt  
  11. key client1.key  
  12. ns-cert-type server  
  13. comp-lzo  
  14. verb 3 

3、启动

  1. #/usr/sbin/open*** --config /etc/open***/config/server.conf >/dev/null 2>&1 & 

  Open***添加到开机启动。

  1. #vi /etc/rc.local 
  2. /usr/sbin/open*** --config /etc/open***/config/ client.conf >/dev/null 2>&1 &  

windows客户端配置】 

1、安装

安装open***window客户端。 

2、配置
   从Centos服务器端下载open***生成的keys文件夹中的ca.crt、client2.crt和  client2.key 到客户端C:\Program Files\Open***\config目录中。
   在C:\Program Files\Open***\config里面新建client2.o***文件,添加以下内容并修改参数。 

  1. client  
  2. dev tun  
  3. proto tcp  
  4. remote 1.2.3.4 8144   #服务器端IP和端口
  5. resolv-retry infinite   #自动重拨 
  6. nobind  
  7. persist-key  
  8. persist-tun  
  9. ca ca.crt  
  10. cert client2.crt  
  11. key client2.key  
  12. ns-cert-type server  
  13. comp-lzo  
  14. verb 3 

3、启动

windows服务管理中,将Open***Service 服务设置为自动启动。

      开启客户端连接登录验证open***是否连接成功。

windows下若出现拨号成功,但虚拟网卡无法获取到地址,则打开DHCP服务。