一、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版本

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 包的方式进行安装:

三、初始化

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
    1. 执行以下命令创建秘钥与证书,其中aliyunuser是用户名,连续回车确认,最后会有两次交互,输入y确认。完成后,keys目录下会生成 1024 位 RSA 服务器密钥aliyunuser.keyaliyunuser.crtaliyunuser.csr三个文件。
      1. ./build-key aliyunuser(为用户开账号即如此)
    2. 执行以下命令,生成用于客户端验证的 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 

1.《openvpn搭建和使用》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《openvpn搭建和使用》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/study/24688.html