OpenVPN的部署

一.openvpn 介绍: 

openvpn通过使用公开密钥(非对称密钥,加密解密使用不同的key,一个称为Publice key,另外一个是Private key)对数据进行加密的。这种方式称为TLS加密

openvpn使用TLS加密的工作过程是,首先VPN Sevrver端和VPN Client端要有相同的CA证书,双方通过交换证书验证双方的合法性,用于决定是否建立VPN连接。

然后使用对方的CA证书,把自己目前使用的数据加密方法加密后发送给对方,由于使用的是对方CA证书加密,所以只有对方CA证书对应的Private key才能解密该数据,这样就保证了此密钥的安全性,并且此密钥是定期改变的,对于窃听者来说,可能还没有破解出此密钥,VPN通信双方可能就已经更换密钥了。

二.安装配置openvpn 
    1.安装:yum -y install openvpn easy-rsa 
        PS: openvpn   和easy-rsa 在系统仓库里没有,需使用epel的yum源 
      2.制作vpn相关证书(ca证书 server证书 client证书) 
        1)在/etc/openvpn中创建 easy-rsa目录,并copy相关文件 
                mkdir /etc/openvpn/easy-rsa 
                cp -fr /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/ 
        2)制作CA证书 
             编辑  /etc/openvpn/easy-rsa/2.0/vars  文件,填写基本信息
   
   
  1. export KEY_COUNTRY="CN”  
  2. export KEY_PROVINCE="CA  
  3. export KEY_CITY="Beijing”  
  4. export KEY_ORG=“beyond"
  5. export KEY_EMAIL="[email protected]
  6. export KEY_OU="sa  
  7. export KEY_NAME=“JeckFY"
            vars文件主要用于设置证书的相关组织信息, KEY_NAME后面需要使用
            最后执行 source vars 使其生效 
            清除keys内容,开始制作证书 
            ./clean-all 
            ./build-ca 
            由于之前已经把相关信息加入了环境变量,所以,一路回车即可 
                
        3)制作服务端证书.使用默认信息即可 
             ./build-key-server JeckFY 
              为服务器生成加密交换时的Diffie-Hellman
                 ./build-dh 
         4)制作client证书 
             ./build-key client 
         5)查看制作的证书: 
            

    3. copy证书到指定目录 
            mkdir /etc/openvpn/certs/ 
            cp -fr /etc/openvpn/easy-rsa/2.0/keys/{ca.*,client.*,JeckFY.*,dh2048.pem} /etc/openvpn/certs 
     4.配置server端 
            生成server.conf文件 
                cp -fr /usr/share/doc/openvpn-2.3.9/sample/sample-config-files/server.conf /etc/openvpn/ 
        修改下面参数: 
   
   
  1. local  192.168.254.100   #绑定网卡IP
  2. port 1194  #指定vpn 端口
  3. proto tcp  #指定使用tcp协议
  4. ca certs/ca.crt     #指定ca证书位置
  5. cert certs/JeckFY.crt   #指定服务端证书位置
  6. key certs/JeckFY.key
  7.  dh certs/dh2048.pem    #指定加密时使用的Diffie-Hellman文件
  8. server 192.168.254.0 255.255.255.0     #定义给客户端分配的地址池
  9. push "route 192.168.254.0 255.255.255.0”    #给客户端推的路由
  10. push "dhcp-option DNS 192.168.254.254   #给客户端推的DNS
  11. client-to-client    #让client之间可以互相访问

  12. duplicate-cn         #定义openvpn一个证书在同一时刻是否允许多个客户端接入,默认没有启用

  13. status /var/log/openvpn/openvpn-status.log  #vpn状态日志
  14. log /var/log/openvpn/openvpn.log    vpn的日志
        最后启动openvpn 
            /etc/init.d/openvpn start 
     5.客户端设置 
            客户端需要的证书文件:ca.crt  client.crt  client.ey 
            客户端配置文件 client.ovpn 
                cp -fr /usr/share/doc/openvpn-2.3.9/sample/sample-config-files/client.conf /etc/openvpn/client.ovpn 
            内容如下: 
   
   
  1.  client
  2.  dev tun  
  3.  proto tcp
  4. remote 172.16.254.250 1194  
  5.  resolv-retry infinite
  6.  nobind
  7.  persist-key  
  8.  persist-tun
  9.  ca ca.crt  
  10.  cert client.crt  
  11.  key client.key  
  12.  remote-cert-tls server
  13.  comp-lzo
  14.  verb 3
把这些文件放到openvpn的conf目录下,即可拨号访问 




猜你喜欢

转载自www.cnblogs.com/pycode/p/9495815.html