说明:

    目的是实现在家可以访问公司内部局域网内的机器。实现方式是通过在centos上部署open***服务,

通过***连入内部局域网。


软件包下载:http://build.open***.net/downloads/releases/

参考文档:https://open***.net/index.php/open-source/documentation/howto.html


系统环境:centos 6.8

安装包准备:

    Openssl   lzo   pam  open***

安装open***依赖 

    openssl lzo pam

系统默认安装了openssl-1.0.1e-48.el6_8.1.x86_64  pam-1.1.1-22.el6.x86_64

使用的软件包:

        easy-rsa-2.2.0_master.tar.gz  lzo-2.09.tar.gz  open***-2.3.11.tar.gz


安装部署:

    1、 安装lzo, 是致力于解压速度的一种数据压缩算法,LZO是Lempel-Ziv-Oberhumer的缩写。加快open***的数据传输。

    [root@www open***soft]# ls    
    easy-rsa-2.2.0_master.tar.gz  lzo-2.09.tar.gz  open***-2.3.11.tar.gz
    [root@www open***soft]# tar -xzf lzo-2.09.tar.gz 
    [root@www lzo-2.09]# ./configure --prefix=/usr/local/
    [root@www lzo-2.09]# make && make install

    2、 安装open***

    [root@www open***soft]# tar zxf open***-2.3.11.tar.gz
    [root@www open***-2.3.11]# ./configure --prefix=/usr/local/open***
    [root@www open***-2.3.11]# make && make install

    3、 安装easy-rsa,用来生成证书和秘钥

    [root@www open***soft]# tar zxf easy-rsa-2.2.0_master.tar.gz -C /usr/local/open***/
    #备份vars文件
    [root@www 2.0]# cp vars vars_20160706
    #这里为了方便,去掉注释和空行,生成vars文件,你也可以直接编辑原文件
    [root@www 2.0]# grep -v '^#' vars_20160706 > vars
    [root@www 2.0]# sed '/^$/d' -i vars
    #编辑vars文件 基本只需要修改有注释的部分,其他部分保持默认
    [root@www open***]# cd easy-rsa-2.2.0_master/easy-rsa/2.0/vars
    export EASY_RSA="`pwd`"
    export OPENSSL="openssl"
    export PKCS11TOOL="pkcs11-tool"
    export GREP="grep"
    export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
    export KEY_DIR="$EASY_RSA/keys"
    echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
    export PKCS11_MODULE_PATH="dummy"
    export PKCS11_PIN="dummy"
    #修改为2048
    export KEY_SIZE=2048				
    export CA_EXPIRE=3650
    export KEY_EXPIRE=3650
    #下面信息 根据个人情况设置
    #在后面生成服务端ca证书时,这里的配置会作为缺省配置
    export KEY_COUNTRY="CN" 			
    export KEY_PROVINCE="BJ"			
    export KEY_CITY="BJ"			
    export KEY_ORG="Fly"
    export KEY_EMAIL="125065124@qq.com"
    export KEY_EMAIL=125065124@qq.com
    export KEY_CN=China
    export KEY_NAME=open***key
    export KEY_OU=Fly
    #这里是配置设置智能卡
    #export PKCS11_MODULE_PATH=changeme 
    #export PKCS11_PIN=1234

       

    #配置SSL文件的软连接
    [root@www 2.0]# ln -s openssl-1.0.0.cnf openssl.cnf
    #全局变量
    [root@www 2.0]# source vars
    NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/local/open***/easy-rsa-2.2.0_master/easy-rsa/2.0/keys
    #初始化key文件,清空keys目录
    [root@www 2.0]# ./clean-all

    4、 生成证书 CA、server端crt、key 客户端 crt、key 证书秘钥传输加密ta.key

        根据提示基本一路回车,不过有需要确认的信息,使用build-key-pass时需要设置密码

    #生成服务器CA
    [root@www 2.0]# ./build-ca
    #生成服务端证书、秘钥 
    [root@www 2.0]# ./build-key-server 
    #生成客户端证书秘钥,在客户端连接时不需要密码认证
    [root@www 2.0]# ./build-key client1
    #生成客户端证书秘钥,在客户端连接时需要密码认证
    [root@www 2.0]# ./build-key-pass client2
    #为服务器生成Diffie-Hellman文件
    [root@www 2.0]# ./build-dh 
    #增强upd传输时的安全性,降低DDos风险
    open*** --genkey --secret ta.key

    5、 配置open***

    #将证书复制到/usr/local/open***/keys/目录下
    [root@www keys]# cp -a ca.crt ta.key www.roger.com.crt dh2048.pem www.roger.com.key /usr/local/open***/keys/ 
    #在解压包中将配置文件复制到/usr/local/open***/    
    [root@www open***-2.3.11]# cp -a sample/sample-config-files/server.conf /usr/local/open***/
    #备份配置文件
    [root@www open***]# cp -a server.conf server.conf_20160706
    [root@www open***]# grep -v '^[#|;]' server.conf_20160706 | grep -v '^$' > server.conf
    #配置服务端open***
    [root@www 2.0]# vim /usr/local/open***/server.conf     
    # 设置监听IP,默认是监听所有IP
    ;local a.b.c.d
    #设置监听接口,注意防火墙开放
    port 1194
    #设置使用tcp 还是udp协议
    proto tcp
    #选择模式 tun为路由模式,tap为桥接模式
    dev tun
    #指定SSL/TLS root certificate (ca) 证书(cert)和私钥(key)
    #每个客户端和服务端都必须有自己的证书和私钥文件。
    #服务端和客户端使用相同的ca文件
    ca keys/ca.crt
    cert keys/www.roger.com.crt
    key keys/www.roger.com.key  # This file should be kept secret
    #指定Diffie hellman parameters. 默认是2048,生成ca的时候修改过dh参数“export KEY_SIZE”则改为对应的数字
    dh keys/dh2048.pem
    #证书秘钥加密传输,服务端设置ta.key 0 客户端设置ta.key 1
    tls-auth keys/ta.key 0
    # 配置×××使用的网段,Open×××会自动提供基于该网段的DHCP服务,但不能和任何一方的局域网段重复
    server 10.8.0.0 255.255.255.0
    ifconfig-pool-persist ipp.txt
    #为客户端创建对应的路由,以另其通达公司网内部服务器
    #但记住,公司网内部服务器也需要有可用路由返回到客户端
    push "route 10.10.0.0 255.255.0.0"       
    # 用Open×××的DHCP功能为客户端提供指定的DNS、WINS等
    push "dhcp-option DNS 8.8.8.8"
    keepalive 10 120
    persist-key
    persist-tun
    # 使用lzo压缩的通讯,服务端和客户端都必须配置
    comp-lzo
    # 输出短日志,每分钟刷新一次,以显示当前的客户端
    status /var/log/open***/open***-status.log
    # 缺省日志会记录在系统日志中,但也可以导向到其他地方
    # 建议调试的使用先不要设置,调试完成后再定义
    log         /var/log/open***/open***.log
    log-append  /var/log/open***/open***.log
    #设置日志级别
    verb 3

    6、启动open***

    #将启动脚本复制到/etc/init.d/目录下
    [root@www open***-2.3.11]# cp -a distro/rpm/open***.init.d.rhel /etc/init.d/open***
    #修改启动脚本相关配置,脚本85行 修改为:work=/usr/local/open***
    [root@www open***-2.3.11]# vim /etc/init.d/open***
    #启动open***
    [root@www ~]# service open*** start
    #添加开机启动
    [root@www ~]# chkconfig open*** on

    7、开启外网访问,配置防火墙

    #开启系统IP转发功能,让数据包在不同的网段之间流通
    [root@www ~]# vim /etc/sysctl.conf
    #将net.ipv4.ip_forward = 0 改为 1
    [root@www ~]# sysctl -p #立即生效
    #配置防火墙 开启1194
    [root@www ~]# iptables -A INPUT -p TCP --dport 1194 -j ACCEPT
    #配置nat表将***网段IP转发到server内网 注意eth0是内网的接口
    [root@www ~]# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    #注意nat表POSTROUTING需要保存重启才生效
    #保存iptables
    [root@www ~]# service iptables save
    #重启iptables
    [root@www ~]# service iptables restart

    8、 Windows客户端配置:

        软件包下载:http://build.open***.net/downloads/releases/

        使用软件 open***-install-2.3.2-I003-x86_64.exe,一路默认选项安装。

        一般安装在目录中C:\program files\Open×××中

        在C:\program files\Open×××\config目录下创建client.o*** 内容如下:

    client
    dev tun
    proto tcp
    remote 192.168.1.188 1194        #这里配置的是***服务端ip
    resolv-retry infinite
    ca ca.crt
    cert client1.crt
    key client1.key
    tls-auth ta.key 1
    comp-lzo
    persist-key
    persist-tun
    auth-nocache
    status open***-status.log
    verb 3

       下载服务器端生成的证书ca.crt client1.crt client1.key ta.key 并复制到 C:\program files\Open×××\config目录下。

       此时,可以启动open***连接了。