在CentOS系统的ECS实例中如何配置OpenVPN

在CentOS系统的ECS实例中如何配置OpenVPN

贡献者:

KB小秘书

 · 

更新时间:2019-08-07 16:22:17

提示: 这是一篇由阿里云ACE开发者(Alibaba Cloud Engineer)贡献,针对特定用户问题发布的文章。文档的内容以原稿呈现,阿里云对于文档内容不做任何形式的承诺。阿里云有权在未经通知的情形下对文档内容做出任何形式的修改。

概述

本文主要介绍在CentOS系统的ECS实例中如何配置OpenVPN。

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

 

详细信息

以下是在CentOS系统的ECS实例中如何配置OpenVPN的具体操作步骤。

 

步骤一:准备工作

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

  1. 请参考如下文档,将YUM源更新为阿里云的YUM源。
  2. 依次执行如下命令,安装依赖的软件包。     
    yum install -y lzo lzo-devel openssl openssl-devel pam pam-devel
    yum install -y pkcs11-helper pkcs11-helper-devel
  3. 执行如下命令,确认软件包已经安装成功。
    rpm -qa lzolzo-devel openssl openssl-devel pam pam-devel pkcs11-helper pkcs11-helper-devel
    系统显示类似如下。

 

步骤二:安装OpenVPN服务

以下是安装OpenVPN服务的具体操作步骤。

  1. 执行如下命令,下载OpenVPN的源码包。
    wget http://oss.aliyuncs.com/aliyunecs/openvpn-2.2.2.tar.gz
  1. 执行如下命令,将源码包编译成RPM包进行安装。
    rpmbuild -tb openvpn-2.2.2.tar.gz
    注:执行命令后即开始编译,编译完成后,/root/rpmbuild/RPMS/x86_64目录下会生成名为“openvpn-2.2.2-1.x86_64.rpm” 的安装包。
  1. 执行如下命令,以RPM包的格式进行安装。
    rpm -ivh openvpn-2.2.2-1.x86_64.rpm
    系统显示类似如下。

 

步骤三:配置OpenVPN服务

以下是配置OpenVPN服务的具体操作步骤。

 

初始化

  1. 执行如下命令,进入指定目录。找到vars证书环境文件,修改以下5行export定义的参数值。
    cd /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0
  2. 编辑vars证书环境文件,修改如下5行环境变量定义的参数值,保存并退出。
    export KEY_COUNTRY="CN" 
    export KEY_PROVINCE="BJ"
    export KEY_CITY="Hangzhou"
    export KEY_ORG="aliyun"
    export KEY_EMAIL=my@test.com
    注:
    • “KEY_COUNTRY”为所在的国家。
    • “KEY_PROVINCE”为所在的省份。
    • “KEY_CITY”为所在的城市。
    • “KEY_ORG”为所属的组织。
    • “KEY_EMAIL”为邮件地址。
    • 您可以对上述参数的值进行自定义设置,不会导致OpenVPN配置出现异常。

 

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

  1. 执行如下命令,创建软链接。
    ln -s openssl-1.0.0.cnf openssl.cnf
  2. 执行如下命令,读取并加载vars文件。
    source ./vars
  3. 执行如下命令,清除目录下的所有key。
    ./clean-all
  4. 执行如下命令,生成CA证书。您已经在vars证书环境文件中配置了默认参数值,在本步骤中连续输入回车确认,完成配置即可。
    ./build-ca
  5. 执行如下命令,生成服务器证书,其中aliyuntest是自定义的名字,连续输入回车确认,最后会有两次交互,输入y确认。完成后,目录下会生成aliyuntest.key、aliyuntest.csr和aliyuntest.crt三个文件。
    ./build-key-server aliyuntest 
    系统显示类似如下。
  6. 执行如下命令,创建秘钥与证书,其中aliyunuser是用户名,连续输入回车确认,最后会有两次交互,输入y确认。完成后,目录下会生成1024位RSA服务器密钥aliyunuser.key、aliyunuser.crt和aliyunuser.csr三个文件。
    ./build-key aliyunuser 
  7. 执行如下命令,生成用于客户端验证的Diffie Hellman参数,完成后,目录下会生成1024.pem参数文件。
    ./bulid-dh 

 

复制证书、密钥和参数文件

  1. 执行如下命令,将/usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys目录中的所有文件复制到/etc/openvpn目录中。
    cp -a /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys/* /etc/openvpn/
  2. 执行如下命令,将OpenVPN服务端配置文件server.conf复制到/etc/openvpn/目录中。
    cp -a /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf  /etc/openvpn/
  3. 配置完成后,执行如下命令,查看配置文件。
    egrep -v "^$|^#|^;" server.conf
    配置文件内容如下所示。
    local [$IP]
    port 1194
    proto udp
    dev tun
    ca ca.crt
    cert [$CRT_Name]
    key [$Key_Name]
    dh dh1024.pem
    server 172.16.0.0 255.255.255.0
    ifconfig-pool-persist ipp.txt
    push "redirect-gateway def1 bypass-dhcp"
    push "dhcp-option DNS 223.5.5.5"
    client-to-client
    keepalive 10 120
    comp-lzo
    user nobody
    group nobody
    persist-key
    persist-tun
    status openvpn-status.log
    log openvpn.log
    verb 3
    注:
    • [$IP]为云服务器的公网IP地址。
    • [$CRT_Name]为生成服务器端证书时自定义的额CRT名称。
    • [$Key_Name]为生成服务器证书时自定义的KEY的名称。

 

设置防火墙

注:设置防火墙前,请确保iptables服务已经开启,且/etc/sysconfig/iptables文件已经存在。

  1. 执行如下命令,编辑配置文件。
    vi /etc/sysctl.conf
  2. 修改成如下参数,启用IPv4转发,然后保存并退出。
    net.ipv4.ip_forward = 1
  3. 执行如下命令,加载系统参数。
    sysctl -p
  4. 添加如下iptables规则,确保服务器可以转发数据包到阿里云内网和外网。
    iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -j MASQUERADE
  5. 执行如下命令,保存iptables配置。
     service iptables save

 

配置Windows PC客户端

  1. 下载如下Windows PC客户端。
  2. 执行Windows PC客户端安装程序,按照默认设置安装完成。
  3. 将云服务器中/etc/openvpn/目录下的aliyunuser.key、aliyunuser.crt 和 aliyunuser.csr三个文件下载到需要连接OpenVPN的 Windows PC 客户端上(可以使用FTP工具下载),保存路径为OpenVPN安装路径下的\OpenVPN\config目录。
  4. 在OpenVPN安装路径下,将\OpenVPN\sample-config\目录下的client.opvn复制到\OpenVPN\config目录下,然后修改配置文件中的以下参数。
    proto udp   
    remote [$IP] 1194
    cert aliyunuser.crt
    key aliyunuser.key
    注:
    • “proto udp”字段中,需删除前面的注释分号,采用UDP协议,与服务器端保持一致。
    • “remote [$IP] 1194”字段中,需删除该行前面的注释分号。
  5. 打开C:\Program Files(x86)\OpenVPN\bin目录,右键单击openvpn-gui-1.0.3.exe文件,选择 以管理员身份运行,避免导致添加路由失败。
  6. 连接成功后,访问阿里云的内网镜像源,确认可以通过OpenVPN访问阿里云内网。
  7. 然后访问“ip.cn”,可以看到此时Windows PC端的出口公网IP地址已经变为云服务器的公网IP地址。

 

适用于

  • 云服务器 ECS
  • 89

    发布KB

  • 555

    回答问题

  • 1

    粉丝数