在安装之前保证系统时间要正确,否则证书生成的可能会无效。


date 
ntpupdate -u time.windows.com        ;同步时间
hwclock [-rw]  
 
    - r 为读取当前BIOS时间, 
    -w 为将当前系统时间写入BIOS时间。

一。安装

    yum  install openssl-devel.i*
 
    rpm -ivh lzo-2.02-3.el5.kb.i386.rpm

    
     rpm - ivh  open***-2.1-0.20.rc4.el5.kb.i386.rpm


二。复制配置文件到指定目录

cp -r / usr /share/ open*** /easy- rsa /2.0/ /etc/ open*** /

cp / usr /share/doc/open***-2.1/sample- config -files/ server.conf  /etc/ open*** /

三。生成key,为配置服务器做准备。


    cd  /etc/ open*** /2.0
     vi  vars                    #最下面值设置成想要的样子

export KEY_COUNTRY="CN"
export KEY_PROVINCE="BJ"
export KEY_CITY="BJ"
export KEY_ORG="XX"
export KEY_EMAIL="me@myhost.mydomain "

  


    读取变量,生成密钥。

            读取变量。
            source ./ vars
            
            清理所有的key ,只有第一次时需要使用。
            #./clean-all
            
            生成CA证书                                             
            #./build-ca
    
       建立  server key 
            ./build-key-server server

  #生成客户端 key, 使用用户名密码验证时可以不生成客户端的key.

  #./build-key client1
        
             生成  Diffie  Hellman  参数

            #./build-dh


 

  将keys 下的所有文件打包下载到本地 ,其它客户机用。

    创建服务端配置文件 ,keys下的ca.crt   server.crt server.key   dh1024.pem拷贝到/etc/open***

 


    
四,配置服务器。

    vim /etc/ open*** / server.conf

[root@localhost ~]# vim /etc/open***/server.conf 

 

 
 
local a.b.c.d
#服务器端IP
port 1194
#服务器端口,可以设多个,如 port 1194 1195 1196
proto tcp
#使用tcp 协议,默认使用udp协议.
dev tun
# dev tun为ip路由通道,dev tap为以太网通道,dev tap0为以太网桥通道.
ca ca.crt
# 指明ca证书,设置根证书,server和 client 使用同一证书.
cert server.crt
#设置cert证书,服务器上要有此证书,每个客户端要有自己不同的证书.
key server.key
# 设置私有key, 服务器上要有此key,每个客户端要有自己不同的key.
dh dh1024.pem
#用于hash的文件.
server 192.168.100.0 255.255.255.0
#客户端拨入服务器分配IP的地址池
ifconfig-pool-persist ipp.txt
#设定当服务重启以后,客户端可以拿到之前的IP地址.也就是DHCP绑定.
#push "redirect-gateway"
#设置客户端默认网关为×××,这样会增大×××网关上的流量.没有意义.通常不用
push "route 10.10.0.0 255.255.0.0"
#push "route 10.136.0.0 255.255.0.0"
 
#推送网段10.15.0.0 的路由策略到客户端的×××上
push "dhcp-option DNS 10.0.0.101"
#推送客户端DNS
push "dhcp-option WINS 10.0.0.101"
#推送客户端WINS设置
client-to-client
#×××客户端间可以互访.
keepalive 10 120
#检查连接状态,10秒ping一次,120秒无响应就断开.
comp-lzo
#支持压缩
user nobody
group nobody
#open***初始化以后以nobody 方式运行.
persist-key
#×××服务重启后重读key
persist-tun
#×××服务器重启后保持之前客户端的连接.
status /var/log/open***-status.log
#设置日志位置.
verb 3
#设置日志等级,默认3 ,若设置成4则为通用模式,只记录一般使用情况.
mute 20
#同样的日志记录重启n次后,则忽略.
duplicate-cn
#允许一份证书多个客户端使用.
max-clients 100
 
#下面的三行意思是使用Linux系统自身的身份验证机制
plugin /usr/lib/open***/plugin/lib/open***-auth-pam.so login
client-cert-not-required
username-as-common-name
 
 


五.1  启动服务器和设置开机启动


service open*** start
chkconfig --level 345 open*** on 
 
五.2 创建用户名密码,用于open*** 的认证。

useradd *** -M -s /sbin/nologin
passwd ***
 
 
五.3 客户端
 
Open××× 可以通过插件(plugin )方式支持上述的用户名认证,在Linux 下以PAM 为例,必须先增加用户:
useradd -M -s /sbin/nologin test 
passwd test
 
    在open***客户端的config目录下建立一个 client.o*** ,写入如下内容。
 
         


#声明是客户端
client

#声明这是客户端配置文件

dev tun

#使用和服务端相同的设备.
proto tcp

#使用tcp协议


remote  172.16.100.137  1194

#远程服务器地址及端口

persist-key

persist-tun 
#
客户端重启程序时,尽量保持之前的状态,如不重新读key.

#remote-random

#remote 给出的服务器列表中,随机选择一个,如果不用此参数将顺序尝试连接.

ca ca.crt

根证书位置,服务器端和客户端用的是同一个.
;cert client.crt 
;key client.key

#设置客户端的证书和key.
ns-cert-type server

#验证服务端证书的可靠性.需要服务器端在生成证书时指定nsCertType类型.
comp-lzo

#支持压缩
verb 3

#指定日志的详细程序.默认3
#redirect-gateway def1

#设置×××为默认网关,所有流量都走×××端口.

#resolv-retry infinite

#持续解析服务器IP地址,如果用IP地址连接,则不需要此项.

nobind

#客户绑定特别端口.

user nobody

group nobody

#初始化完成后,降级用户和组.

#http-proxy

#穿越代理连接***服务器,格式 http-proxy [proxy server] [proxy port #]

# http-proxy-retry

#proxy 尝试连接重试次数.

#mute-replay-warnings

#忽略重启的警告.


#激活登陆认证方式

auth-user-pass


六,在服务器端开放路由转发

echo '1' > /proc/sys/net/ipv4/ip_forward     

在 vim /etc/rc.local  里加入,开启内核支持。

        echo '1' > /proc/sys/net/ipv4/ip_forward     

 

设置开机启动
 
chkconfig --level 345 iptables on

 

下面可以开始使用iptables做转发了。

iptables -F
iptables -Z
iptables -X
iptables -P INPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -s a.a.a.a/aa -o eth0 -j SNAT --to-source 192.168.0.2 

 上面的aa 是 open*** 客户端的ip地址段加子网,后面那个是本地网卡的。


测试成功后,保存 并设置好开机读取。

 

iptables-save > /root/fw.iptables

在 vim /etc/rc.local  里加入

iptables-restore < /root/fw.iptables

 

七。 在服务器端设置路由

在某些大的网络中,局域网之间也需要路由,如果服务器本身不能访问到其它局域网,自然***的客户端也不可以。

vim /etc/rc.local

/sbin/route add -net 10.0.0.0/8 gw 10.10.0.1