全部产品

云服务器 ECS Linux CentOS OpenVPN 配置概述

更新时间:2018-11-16 18:57:54

本文简要说明如何在 CentOS 系统下配置 OpenVPN 和如何配置 Windows PC 客户端

说明:本文相关配置和说明仅用于示例和操作指引,阿里云不对相关操作结果及由此产生的问题负责。

配置 OpenVPN

准备工作

在安装 OpenVPN 服务前,请确保完成以下准备工作:

  1. 使用 工具:update_source.sh 更新 yum 源为阿里云的内网 yum 源。

  2. 安装依赖的软件包:

    1. bash
    2. yum install -y lzo lzo-devel openssl openssl-devel pam pam-devel
    3. yum install -y pkcs11-helper pkcs11-helper-devel
  3. 确认软件包已经安装完成:

    1. bash
    2. rpm -qa lzolzo-devel openssl openssl-devel pam pam-devel pkcs11-helper pkcs11-helper-devel

    更新 yum 源

安装 OpenVPN 服务

请按照以下步骤安装 OpenVPN 服务:

  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 服务

配置 OpenVPN 服务(服务端)

配置 OpenVPN 服务分为 4 个阶段:

初始化

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

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

说明:您可以对上述参数的值进行自定义设置,不会导致 OpenVPN 配置出现异常。

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

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

  1. 执行以下命令,生成服务端的证书并清除keys目录下的所有 key:
    1. bash
    2. ln -s openssl-1.0.0.cnf openssl.cnf 软链接到openssl-1.0.0.cnf配置文件
    3. source ./vars
    4. ./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
复制证书、密钥和参数文件

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

  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/
  3. 配置完成后,server.conf文件的内容如下:

    1. bash
    2. $ egrep -v "^$|^#|^;" server.conf
    3. local 1.1.1.1 请在此处填写您的云服务器的公网IP地址
    4. port 1194
    5. proto udp
    6. dev tun
    7. ca ca.crt
    8. cert aliyuntest.crt 请在此处填写生成服务器端证书时您自定义的crt名称
    9. key aliyuntest.key 请在此处填写生成服务器端证书时您自定义的key名称
    10. dh dh1024.pem
    11. server 172.16.0.0 255.255.255.0
    12. ifconfig-pool-persist ipp.txt
    13. push "redirect-gateway def1 bypass-dhcp"
    14. push "dhcp-option DNS 223.5.5.5"
    15. client-to-client
    16. keepalive 10 120
    17. comp-lzo
    18. user nobody
    19. group nobody
    20. persist-key
    21. persist-tun
    22. status openvpn-status.log
    23. log openvpn.log
    24. verb 3

    server.conf 配置

设置 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 172.16.0.0/24 -j MASQUERADE
  5. 保存 iptables 配置:

    1. service iptables save

启动 OpenVPN

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

配置 Windows PC 客户端

请按照以下步骤配置 Windows PC 客户端:

  1. 下载Windows PC 客户端。

  2. 执行 Windows PC 客户端安装程序,按照默认设置安装完成。

  3. 将云服务器中/etc/openvpn/目录下的aliyunuser.keyaliyunuser.crtaliyunuser.csr三个文件下载到需要连接 OpenVPN 的 Windows PC 客户端上(可以使用 ftp 工具下载),保存路径为 OpenVPN 安装路径下的\OpenVPN\config目录。

  4. 配置 client.opvn。在 OpenVPN 安装路径下,将\OpenVPN\sample-config\目录下的client.opvn复制到\OpenVPN\config目录下,然后修改配置文件中的以下参数:

    1. bash
    2. proto udp 去掉前面的分号,采用udp协议,与服务器端保持一致
    3. remote 1.1.1.1 1194 请在此处将1.1.1.1修改为您的云服务器的公网IP地址,同时去掉该行前面的注释分号
    4. cert aliyunuser.crt
    5. key aliyunuser.key
  5. 打开C:\Program Files (x86)\OpenVPN\bin目录,右击openvpn-gui-1.0.3.exe文件,选择 以管理员身份运行(A)(避免导致添加路由失败)。运行 openvpn-gui-1.0.3

  6. 连接成功后,访问阿里云的内网镜像源,确认可以通过 OpenVPN 访问阿里云内网:访问阿里云内网然后访问 ip.cn,可以看到此时 Windows PC 端的出口公网 IP 已经变为云服务器的公网 IP 地址:访问 ip.cn

如果本文未能解决您的问题,您可以前往阿里云社区进行免费咨询,或者联系云市场商家寻求帮助。