本地客户端通过SSL-VPN隧道连接MongoDB

您可以在管理客户端与MongoDB实例的专有网络之间建立SSL-VPN隧道,实现安全便捷地连接MongoDB实例。

适用场景

  • 管理MongoDB数据库的客户端所处的网络环境没有固定的公网地址,导致您要在MongoDB控制台上频繁调整白名单IP地址,且如果没有及时清理过期的白名单地址,将存在一定的安全风险。

  • 对网络安全要求较高,通过公网连接MongoDB实例时,需要更加安全的方式连接MongoDB实例。

  • 数据库运维人员在公网环境中通过ECS来登录MongoDB数据库,在权限管理上存在一定的风险,需要实现ECS的管理权限和MongoDB数据库权限的分离。

费用说明

操作步骤中创建VPN网关时将产生费用,详情请参见计费说明

前提条件

  • MongoDB实例的网络类型为专有网络,如果是经典网络请切换至专有网络,详情请参见经典网络切换为专有网络

  • 本地客户端的IP地址段和MongoDB实例所在的VPC网络的IP地址段不能相同,否则无法通信。

  • 本地客户端必须能访问外网。

案例环境介绍

SSL连接环境介绍

步骤一:创建VPN网关

操作步骤,请参见创建和管理VPN网关实例

创建VPN网关时,请注意以下配置项。

配置项

配置说明

地域

VPN网关所属的地域,选择与MongoDB实例相同的地域。

VPC

VPN网关所属的VPC,选择与MongoDB实例相同的VPC。

IPsec-VPN

选择是否开启IPsec-VPN功能,您可以根据业务需求选择。

本案例使用客户端直接接入,选择关闭IPsec-VPN。

IPsec-VPN功能提供站点到站点的连接。您可以通过创建IPsec隧道将本地数据中心网络和专有网络或两个专有网络安全地连接起来。

SSL-VPN

选择是否开启SSL-VPN功能,您可以根据业务需求选择。

本案例使用客户端直接接入,选择开启SSL-VPN。

提供站点到站点的VPN连接,不需要配置客户端网关,客户端直接接入。

步骤二:创建SSL服务端

操作步骤,请参见创建和管理SSL服务端

创建SSL服务端时,请注意以下配置项。

配置项

配置说明

VPN网关

关联的VPN网关,选择步骤一中创建的VPN网关。

本端网段

本端网段是客户端通过SSL-VPN连接要访问的地址段。本端网段可以是VPC的网段、交换机的网段、通过专线和VPC互连的IDC的网段、云服务如RDSOSS等网段。

本案例填写MongoDB实例所属专有网络中交换机的网段地址:172.16.1.0/24。

说明

本端网段的子网掩码的范围为1629位。

客户端网段

客户端网段是给客户端虚拟网卡分配访问地址的地址段,不是指客户端已有的内网网段。当客户端通过SSL-VPN连接访问MongoDB实例时,VPN网关会从指定的客户端网段中分配一个IP地址给客户端使用。

此案例中填写192.168.100.0/24。

说明

确保客户端网段本端网段不冲突。

步骤三:创建SSL客户端

操作步骤,请参见创建和管理SSL客户端证书

SSL客户端证书创建完成后,您需要下载证书并将证书安装在客户端中。

步骤四:建立SSL-VPN连接

下文以Linux客户端和Windows客户端为例连接SSL-VPN,其他操作系统的客户端操作,请参见客户端远程连接VPC

Linux客户端

  1. 打开命令行窗口。

  2. 执行以下命令安装OpenVPN客户端。

    #CentOS系统执行以下命令
    yum install -y openvpn
    #执行以下命令查看系统是否已创建/etc/openvpn/conf/目录,如果系统未创建,需手动创建/etc/openvpn/conf/目录。
    cd /etc/openvpn #进入openvpn目录下
    ls              #查看openvpn目录下是否已创建conf目录
    mkdir -p /etc/openvpn/conf #如果openvpn目录下不存在conf目录,手动创建conf目录。
    
    #Ubuntu系统执行以下命令
    apt-get update
    apt-get install -y openvpn
    #执行以下命令查看系统是否已创建/etc/openvpn/conf/目录,如果系统未创建,需手动创建/etc/openvpn/conf/目录。
    cd /etc/openvpn #进入openvpn目录下
    ls              #查看openvpn目录下是否已创建conf目录
    mkdir -p /etc/openvpn/conf #如果openvpn目录下不存在conf目录,手动创建conf目录。
  3. 将已下载的SSL客户端证书解压拷贝至/etc/openvpn/conf/目录。

  4. 进入/etc/openvpn/conf/目录,执行以下命令建立VPN连接。

    openvpn --config /etc/openvpn/conf/config.ovpn --daemon

Windows客户端

  1. 下载并安装OpenVPN客户端(Windows版本)

  2. 将已经下载的SSL客户端证书解压拷贝至OpenVPN\config目录。

    本文将证书解压拷贝到C:\Program Files\OpenVPN\config目录,请您根据安装路径将证书解压拷贝至您真实的目录。

  3. 启动OpenVPN客户端,单击Connect建立VPN连接。

步骤五:登录MongoDB数据库

  1. SSL服务端配置中的客户端网段添加到MongoDB实例的IP白名单中。本案例将172.16.1.0/24加入至MongoDB实例的IP白名单中。

  2. 登录MongoDB管理控制台

  3. 获取MongoDB实例的专有网络地址,请参见实例连接说明

  4. 使用Mongo Shell或其他管理工具登录MongoDB数据库。

    说明

    请使用MongoDB实例的专有网络地址登录。