openvpn搭建和使用

一、openvpn原理

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

 openvpn使用TLS加密的工作过程是,首先VPN Sevrver端和VPN Client端要有相同的CA证书,双方通过交换证书验证双方的合法性,用于决定是否建立VPN连接。然后使用对方的CA证书,把自己目前使用的数据加密方法加密后发送给对方,由于使用的是对方CA证书加密,所以只有对方CA证书对应的Private key才能解密该数据,这样就保证了此密钥的安全性,并且此密钥是定期改变的,对于窃听者来说,可能还没有破解出此密钥,VPN通信双方可能就已经更换密钥了。

 二、安装openvpn和easy-rsa

  1.yum安装

    yum -y install openvpn libssl-dev openssl easy-rsa

    安装完成后,可以查下openvpn版本
    openvpn --version | head -2,可以用 rpm -ql openvpn 和 rpm -ql easy-rsa  查看安装的文件。
  2.源码安装
  1. 下载 OpenVPN 的源码包:# wget http://oss.aliyuncs.com/aliyunecs/openvpn-2.2.2.tar.gz

  2. 使用 rpmbuild 命令将源码包编译成 rpm 包进行安装:# rpmbuild -tb openvpn-2.2.2.tar.gz。执行 rpmbuild 命令后即开始编译,编译完成后,/root/rpmbuild/RPMS/x86_64目录下会生成名为 openvpn-2.2.2-1.x86_64.rpm 的安装包。

  3. 执行# rpm -ivh openvpn-2.2.2-1.x86_64.rpm,以 rpm 包的方式进行安装:安装 OpenVPN 服务

三、初始化

  1.执行命令初始化 cd /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0,然后找到 vars 证书环境文件,修改以下 5 行 export 定义的参数值:

  1. export KEY_COUNTRY="CN" 所在的国家
  2. export KEY_PROVINCE="BJ" 所在的省份
  3. export KEY_CITY="Hangzhou" 所在的城市
  4. export KEY_ORG="aliyun" 所属的组织
  5. export KEY_EMAIL=my@test.com 邮件地址

  2.生成证书、密钥和参数文件

    请按照以下步骤生成所需的证书、密钥和参数文件:

  1. 执行以下命令,生成服务端的证书并清除keys目录下的所有 key:
     
    1. ln -s openssl-1.0.0.cnf openssl.cnf 软链接到openssl-1.0.0.cnf配置文件
    2. source ./vars
    3. ./clean-all
  2. 执行以下命令生成 CA 证书。在初始化时,您已经在 vars 证书环境文件中配置了默认参数值,在本步骤中连续回车确认,完成配置即可。

    1. ./build-ca

    生成 CA 证书

  3. 执行以下命令生成服务器证书,其中aliyuntest是自定义的名字,连续回车确认,最后会有两次交互,输入y确认。完成后,keys目录下会生成aliyuntest.keyaliyuntest.csraliyuntest.crt三个文件。

    1. ./build-key-server aliyuntest

    生成服务器证书

  4. 执行以下命令创建秘钥与证书,其中aliyunuser是用户名,连续回车确认,最后会有两次交互,输入y确认。完成后,keys目录下会生成 1024 位 RSA 服务器密钥aliyunuser.keyaliyunuser.crtaliyunuser.csr三个文件。

    1. ./build-key aliyunuser(为用户开账号即如此)
  5. 执行以下命令,生成用于客户端验证的 Diffie Hellman 参数,完成后,keys目录下会生成 dh 参数文件dh1024.pem

    1. ./build-dh
   6.复制证书、密钥和参数文件

    请按照以下步骤将生成的证书、密钥和参数文件复制到指定位置:

    1. 执行以下命令,将/usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys目录下的所有文件复制到/etc/openvpn目录下:

      1. cp -a /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys/* /etc/openvpn/
    2. 执行以下命令,将 OpenVPN 服务端配置文件server.conf复制到/etc/openvpn/目录下:

      1. cp -a /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf /etc/openvpn/
      2. 配置完成后,server.conf文件的内容如下:  

          port 1194
          proto tcp
          dev tun
          ca ca.crt
          cert ceshiserver.crt
          key ceshiserver.key # This file should be kept secret
          dh dh1024.pem
          cipher AES-256-CBC
          server 10.30.xx.0 255.255.255.0 #vpn地址池
          ifconfig-pool-persist ipp.txt
          push "route 192.168.xx.0 255.255.255.0" #为哪个网段开VPN
          client-to-client
          keepalive 10 120
          comp-lzo
          persist-key
          persist-tun
          status openvpn-status.log
          log openvpn.log
          verb 3
          crl-verify /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys/crl.pem  #注销用户用的文件
          management localhost 7505

 四、设置 iptables

   设置 iptables 前,请确保 iptables 已经开启且/etc/sysconfig/iptables文件已经存在,然后按照以下步骤完成设置:

    1. 开启内部路由转发:

      1. vi /etc/sysctl.conf
    2. 修改以下参数,启用 IPv4 转发:

      1. net.ipv4.ip_forward = 1
    3. 使内核参数生效:

      1. sysctl -p
    4. 添加 iptables 规则,确保服务器可以转发数据包到阿里云内网和外网:

      1. iptables -t nat -A POSTROUTING -s 10.30.xx.0/24 -j MASQUERADE
    5. 保存 iptables 配置:

          service iptables save

 

五、启动 OpenVPN

执行命令启动 OpenVPN:/etc/init.d/openvpn start,然后执行命令:netstat -ano | grep 1194,查看 1194 端口正在监听,确保 OpenVPN 正在运行。

六、客户端配置      

 1、windows客户端配置

   软件下载链接:http://openvpn.ustc.edu.cn/

    1、按照系统类型选择下载openvpn客户端

   2、从服务器上根据用户生成认证文件,把认证文件拷贝到openvpn安装目录config下面,一般在C:\program files\openvpn\config,也可能在C:\Program Files (x86)\OpenVPN\config。

   3、到openvpn的安装目录bin下(默认是C:\program files\openvpn\bin),找到openvpn-gui.exe, 在这个openvpn-gui.exe文件上单击鼠标右键,选择"以管理员身份运行"(英语是Run as Administrator)

   4. 如果openvpn-gui已经启动,选择退出

   5、单击openvpn-gui,在右下角openvpn-gui上单击鼠标右键,根据自己所在网络,到ustc-dianxin或其他菜单中,单击"connect"可以连接vpn

   连接成功如下:

  

  6、有用户碰到windows10下DNS查询异常,使用如下方式解决:文本编辑器打开ovpn配置文件。末尾插入一行,内容为: block-outside-dns

 2、MAC客户端配置

  软件下载地址:https://tunnelblick.net/

   1、下载需要的版本

  2、本地需要五个文件(三个用户名字开头的文件,一个ca.crt,一个认证文件.opvn)

  2、从服务器上根据用户生成认证文件,打开Tunnelblick程序,把openvpn认证文件client.ovpn拖入到Tunnelblick程序配置列。
  3、点击连接即可,连接成功如下
   
  
 
 
3、注销用户
   revoke-full username  

      

猜你喜欢

转载自www.cnblogs.com/xiaomapath/p/9959725.html