IBM Cloud Docs
利用安全的专用网络隔离工作负载

利用安全的专用网络隔离工作负载

本教程描述了 经典基础架构的使用。 可以使用 IBM Cloud® Virtual Private Cloud 资源来实现大多数工作负载。 使用 IBM Cloud VPC 在共享公共云基础结构上创建您自己的私有云类计算环境。 VPC 使企业能够定义和控制从逻辑上与所有其他公共云租户隔离的虚拟网络,从而在公共云上创建专用的安全场所。 具体而言,Direct Link虚拟服务器实例安全组VPN流日志

本教程可能会发生成本。 使用“成本估算器”根据您的预计使用量生成成本估算。

在公共云上,针对隔离且安全的专用网络环境的需要对于 IaaS 应用程序部署模型来说至关重要。 防火墙、VLAN、路由和 VPN 都是创建隔离的专用环境所必需的组件。 通过这种隔离,虚拟机和裸机服务器能够安全地部署在复杂的多层应用程序拓扑中,同时能防范公用因特网上的风险。

本教程重点介绍如何在IBM Cloud上配置 Virtual Router Appliance(VRA)以创建安全专用网络(外壳)。 VRA 在一个自我管理的软件包中提供防火墙、VPN 网关、网络地址转换 (NAT) 和企业级路由。 在本教程中,VRA 用于显示如何在 IBM Cloud 上创建封闭、隔离的网络环境。 在此隔离区中,可以使用为人熟悉且众所周知的 IP 路由、VLAN、IP 子网、防火墙规则、虚拟服务器和裸机服务器技术来创建应用程序拓扑。

本教程是在 IBM Cloud 上进行经典联网的起点,不应将其视为按原样使用的生产功能。 可以考虑的其他功能包括:

目标

  • 部署虚拟路由器设备 (VRA)
  • 定义 VLAN 和 IP 子网,以部署虚拟机和裸机服务器
  • 使用防火墙规则保护 VRA 和隔离区

架构*" caption-side="bottom"}{: caption="*

  1. 配置 VPN
  2. 部署 VRA
  3. 创建虚拟服务器
  4. 通过 VRA 路由访问
  5. 配置隔离区防火墙
  6. 定义 APP 专区
  7. 定义 INSIDE 专区

准备工作

配置 VPN 访问

在本教程中,创建的网络外壳在公共互联网上不可见。 VRA 和任何服务器只能通过专用网络访问,您将使用 VPN 进行连接。

  1. 确保 VPN 访问已启用

    您必须是主用户才能启用 VPN 访问,或联系主用户以获取访问权限。

  2. 通过在用户列表中选择用户来获取 VPN 访问凭证。

  3. 通过 Web 界面 登录到 VPN,或者使用 VPN 客户端 for Windows,Linux 或 macOS

    对于 VPN 客户端,请使用 "可用 VPN 端点" 页面中单个数据中心 VPN 访问点的 FQDN,例如 vpn.ams03.softlayer.com 作为网关地址。

检查帐户许可权

请联系基础架构主用户以获取以下许可权:

  • 快速许可权 - 基本用户
  • 网络,以便创建和配置机箱(需要所有网络权限)
  • 服务许可权,用于管理 SSH 密钥

上传 SSH 密钥

使用门户 上传 SSH 公钥,用于访问和管理 VRA 和专用网络。

设定目标数据中心

选择一个IBM Cloud数据中心来部署安全专用网络。

订购 VLAN

要在目标数据中心内创建专用隔离区,必须首先分配服务器所需的专用 VLAN。 创建 VLAN 时,请在 位置 下选择 Pod,并确保在计划创建 VRA 的同一数据中心和 pod 中请求 VLAN。 如果在订购虚拟服务器实例之前订购了 VRA,那么必须为该虚拟服务器实例购买 VLAN,以确保该虚拟服务器实例位于正确的 pod 中。 支持多层应用拓扑的额外 VLAN 需要付费。

要确保在同一数据中心路由器上有足够的 VLAN 可用并且可以与 VRA 相关联,您可以订购 VLAN。 有关详细信息,请参阅 订购 VLAN

供应虚拟路由器设备

第一步是部署Virtual Router Appliance(VRA),它将为专用网络外壳提供 IP 路由和防火墙。 通过IBM Cloud面向公共的中转 VLAN、网关和硬件防火墙(可选)从机柜访问互联网,以创建从公共 VLAN 到安全专用机柜 VLAN 的连接。 在本解决方案教程中,VRA 为外围提供了网关和防火墙。

  1. 从目录中选择 Gateway Appliance
  2. 网关供应商部分,选择 AT&T。 可以选择“最高 20 Gbps”或“最高 2 Gbps”上行速度。
  3. 主机名部分,输入新 VRA 的主机名和域。
  4. 如果选中“高可用性”复选框,就可以使用 VRRP 在活动/备份设置中使用两个 VRA 设备。
  5. 在“位置”部分,选择您需要 VRA 的位置和舱位
  6. 选择“单处理器”或“双处理器”。 您将看到服务器列表。 通过单击相应单选按钮来选择服务器。
  7. 选择 RAM 量。 对于生产环境,建议至少使用 64GB RAM。测试环境的 8GB 最小值。
  8. 选择 SSH 密钥(可选)。 此 SSH 密钥将安装在 VRA 上,因此可以使用用户 vyatta 通过此密钥来访问 VRA。
  9. 硬盘驱动器。 请保留缺省值。
  10. “上行链路端口速度”部分,选择符合您需求的速度、冗余、专用和/或公用接口组合。
  11. 附加组件部分中,保留缺省值。 如果要在公共接口上使用 IPv6,请选择 IPv6 地址。

在右侧窗格中,您可以看到订单摘要。 选择“_我已阅读并同意下列第三方服务协议”:_复选框,然后单击“创建”按钮。 这将部署网关。

设备列表几乎会立即显示该 VRA,并带有时钟符号,指示此设备上正在进行事务处理。 在 VRA 创建完成之前,时钟符号保持不变,除了查看详细信息外,无法对设备执行任何配置操作。

查看部署的 VRA

  1. 检查新的 VRA。 在 基础架构控制面板 左侧窗格中选择网络,然后选择网关设备,进入 网关设备 页面。 单击网关栏中新建 VRA 的名称,进入网关详细信息页面。

  2. 记下 VRA 的PrivatePublic IP 地址,以供未来使用。

初始 VRA 设置

  1. 从工作站使用SSL VPN,使用默认的 vyatta 账户登录 VRA,接受 SSH 安全提示。

    ssh vyatta@<VRA Private IP Address>
    

    如果 SSH 提示输入密码,说明 SSH 密钥未包含在构建中。 使用 网络浏览器 访问 VRA,使用 VRA Private IP Address。 密码位于软件密码页面中。 在配置选项卡上,选择“系统/登录/vyatta”分支,并添加所需的 SSH 密钥。

    设置 VRA 需要使用 configure 命令将 VRA 置于 [编辑] 方式。 在edit方式下,提示符会从 $ 更改为 #。 成功更改 VRA 配置后,可以使用 compare 命令查看更改,并使用 validate 命令检查更改。 通过使用 commit 命令提交更改,更改将应用于正在运行的配置,并自动保存到启动配置中。

  2. 通过仅允许 SSH 登录来增强安全性。 现在使用专用网络 SSH 登录已成功,请禁用用户名/密码验证访问。

    configure
    set service ssh disable-password-authentication
    commit
    exit
    

    在本教程中,假定所有 VRA 命令都是在使用 configure 命令后在 edit 提示符下输入的。

  3. 复审初始配置。

    show
    

    VRA 已针对 IBM Cloud IaaS 环境进行预配置。 这包括以下内容:

    • NTP 服务器
    • 名称服务器
    • SSH
    • HTTPS Web 服务器
    • 缺省时区 - 美国/芝加哥
  4. 根据需要设置当地时区。 使用制表符键自动完成将列出可能的时区值。

    set system time-zone <timezone>
    
  5. 设置 ping 行为。 为了帮助路由和防火墙故障诊断,未禁用 ping。

    set security firewall all-ping enable
    set security firewall broadcast-ping disable
    
  6. 启用有状态防火墙操作。 默认情况下,VRA 防火墙是无状态的。

    set security firewall global-state-policy icmp
    set security firewall global-state-policy udp
    set security firewall global-state-policy tcp
    
  7. 提交并自动保存对启动配置的更改。

    commit
    

订购第一个虚拟服务器

现在创建的虚拟服务器用于帮助诊断 VRA 配置错误。 验证是否能通过 IBM Cloud 专用网络对 VSI 进行成功访问,然后在稍后的步骤中通过 VRA 路由对该 VSI 的访问。

  1. 订购 虚拟服务器
  2. 在订购页面上:
    • 选择 公用
    • 计费设置为按小时
    • 设置 VSI 主机名域名。 此域名不用于路由和 DNS,但应与网络命名标准保持一致。
    • 位置设置为与 VRA 相同。
    • 概要文件设置为 C1.1x1
    • 添加早先指定的 SSH 密钥
    • 操作系统设置为 CentOSStream9.x- Minimal
    • “上行链路端口速度”中,网络接口必须从默认的“公共”和“专用”改为只指定“专用网络上行链路”。 这可确保新服务器无法直接访问因特网。
    • 专用 VLAN 设置为早先订购的专用 VLAN 的 VLAN 号。
  3. 选中复选框以接受“第三方”服务协议,然后单击 创建
  4. 设备页面上或通过电子邮件监视完成情况。
  5. 记下 VSI 的_专用 IP 地址_以备后用,并注意在“设备详细信息”页面的“网络”部分,VSI 已被分配到正确的 VLAN。 如果没有,请删除此 VSI,然后在正确的 VLAN 上创建新的 VSI。
  6. 在本地工作站中,通过 VPN 使用 ping 和 SSH 来验证是否可以通过 IBM Cloud 专用网络成功访问 VSI。
    ping <VSI Private IP Address>
    SSH root@<VSI Private IP Address>
    

通过 VRA 路由 VLAN 访问

虚拟服务器的专用 VLAN 由IBM Cloud管理系统关联到此 VRA。 在此阶段,仍可通过IBM Cloud专用网络上的 IP 路由访问 VSI。 现在,您将通过 VRA 对子网进行路由,以创建安全专用网络,并确认 VSI 现在无法访问。

  1. 通过网关设备页面继续设置 VRA 的“网关详细信息”,并在该页面的下半部分找到关联的 VLAN 部分。 关联的 VLAN 将在此处列出。 在此阶段,VLAN 和相关子网未通过 VRA 受保护或路由,VSI 可通过IBM Cloud访问。专用网络访问 VSI。 VLAN 的状态显示为 路由周围。 单击 管理 VLAN 按钮。

    关联 VLAN 链路已启用,允许您添加其他供应的 VLAN。 如果在与 VRA 相同的路由器上没有可用的 VLAN,那么链路会灰显。 这将要求您 订购 VLAN 以请求与 VRA 位于同一路由器上的专用 VLAN。 初始 VLAN 关联需要几分钟才能完成。 完成后,VLAN 将显示在 关联 VLAN 标题下。

  2. 单击关联 VLAN 左侧的复选框,然后单击 路由通过 以通过 VRA 路由 VLAN/子网。 这可能需要几分钟时间。 屏幕刷新将显示状态为 路由通过

  3. 单击 VLAN 编号以查看 VLAN 详细信息。 在“设备”下,可以看到供应的 VSI。 在“子网”下,将看到要与 VRA 配合使用的主子网。 记下专用 VLAN 编号 ,因为这将在后面的步骤中使用。

    要获取 VLAN 的正确标识,请选中 VLAN 标识

  4. 单击 子网 以查看 IP 子网详细信息。 记下子网网络、网关地址和 CIDR (/26),因为进一步 VRA 配置需要这些信息。

  5. 使用 ping 验证子网/VLAN 是否已路由到 VRA,以及工作站是否可以通过管理网络访问 VSI。

    ping <VSI Private IP Address>
    

这就通过 IBM Cloud 控制台完成了 VRA 的设置。 现在,通过 SSH 直接在 VRA 上执行配置隔离区和 IP 路由的其他工作。

配置 IP 路由和安全隔离区

提交 VRA 配置后,将更改运行配置,并且更改会自动保存到启动配置中。

如果要返回到以前的工作配置,默认情况下可以查看、比较或恢复最近 20 个提交点。 请参阅补充文档 Basic System Configuration Guide,以获取有关 show system commitcomparerollback 的详细信息。

配置 VRA IP 路由

配置 VRA 虚拟网络接口以从 IBM Cloud 专用网络路由到新子网。

  1. 通过 SSH 登录到 VRA。

    SSH vyatta@<VRA Private IP Address>
    
  2. 使用前面步骤中记录的专用 VLAN 编号、子网网关 IP 地址和 CIDR 创建一个新的虚拟接口。 CIDR 通常为 /26

    configure
    set interfaces bonding dp0bond0 vif <VLAN ID> address <Subnet Gateway IP>/<CIDR>
    commit
    

    使用 <Subnet Gateway IP> 地址至关重要。 这通常是子网范围中第一批地址中的其中一个地址。 输入无效网关地址会导致错误 Configuration path: interfaces bonding dp0bond0 vif xxxx address [x.x.x.x] is not valid。 更正命令并重新输入。 您可以在网络 > IP 管理 > 子网中查找。 单击需要知道网关地址的子网。 列表中的第二个条目 (描述为 Gateway) 是要在 / 之前的 <Subnet Gateway IP>/<CIDR> 中输入的 IP 地址。

    默认情况下,VRRP 设置为禁用。 这将确保新供应和重新装入不会导致主设备发生中断。 为了使 VLAN 流量正常工作,必须在供应或重新装入完成后重新启用 VRRP。

    delete interfaces bonding dp0bond0 vrrp vrrp-group 1 disable
    commit
    

    如果使用 HA 对,那么此命令略有不同,VRRP 虚拟 IP(VIP)地址

  3. 列出新的虚拟接口 (vif):

    show interfaces
    

    这是一个接口配置示例,显示了 vif 1199 和子网网关地址。

    接口
    接口

  4. 在工作站中通过管理网络验证 VSI 是否再次可访问。

    ping <VSI Private IP Address>
    

    如果无法访问 VSI,请检查 VRA IP 路由表是否按预期进行了配置。 通过利用 show 界面提供的信息并运行 delete 命令来删除: delete interfaces bonding dp0bond0 vif <VLAN ID> address <Subnet Gateway IP>/<CIDR>,然后使用正确的值重新创建。 要在配置模式下运行 show 命令,可以使用运行命令:

     run show ip route <Subnet Gateway IP>
    

这就完成了 IP 路由配置。

配置安全隔离区

通过配置专区和防火墙规则,可创建安全专用网络隔离区。 在继续之前,请查看有关防火墙配置的 VRA 文档。

将定义两个专区:

  • INSIDE:IBM 专用网络和 IBM 管理网络
  • APP:专用网络隔离区中的用户 VLAN 和子网
  1. 定义防火墙和缺省值。

    configure
    set security firewall name APP-TO-INSIDE default-action drop
    set security firewall name APP-TO-INSIDE default-log
    
    set security firewall name INSIDE-TO-APP default-action drop
    set security firewall name INSIDE-TO-APP default-log
    commit
    

    如果不小心运行了两次 set 命令,则会收到一条信息_'配置路径 xxxxxxxx 无效'。 Node存在_。 可以将其忽略。 要更改不正确的参数,必须先使用 "delete security xxxxx xxxx xxxxx "删除节点。

  2. 创建 IBM Cloud 专用网络资源组。 此地址组定义可以访问隔离区的 IBM Cloud 专用网络以及可从隔离区访问的网络。 两组 IP 地址需要进出安全机柜。 这些 IP 地址是 SSL VPN 数据中心和 IBM Cloud 服务网络 (后端/专用网络)。IBM Cloud IP 范围 提供了允许的 IP 范围的完整列表。

    • 定义要用于 VPN 访问的数据中心的 SSL VPN 地址。 从IBM CloudIP 范围的SSL VPN数据中心 "部分,选择数据中心或 DC 集群的 VPN 接入点。 此示例显示了IBM Cloud的 VPN 地址范围。伦敦数据中心的 VPN 地址范围。
      set resources group address-group ibmprivate address 10.2.220.0/24
      set resources group address-group ibmprivate address 10.200.196.0/24
      set resources group address-group ibmprivate address 10.3.200.0/24
      
    • 为IBM Cloud定义地址范围DAL10、WDC04 和目标数据中心的“服务网络(后台/专用网络)”的地址范围。 这里的例子是DAL10、WDC04(两个地址)和LON06。
      set resources group address-group ibmprivate address 10.200.80.0/20
      set resources group address-group ibmprivate address 10.3.160.0/20
      set resources group address-group ibmprivate address 10.201.0.0/20
      
      set resources group address-group ibmprivate address 10.201.64.0/20
      commit
      
  3. 为用户 VLAN 和子网创建 APP 专区,并为 IBM Cloud 专用网络创建 INSIDE 专区。 分配先前创建的防火墙。 专区定义使用 VRA 网络接口名称来标识与每个 VLAN 关联的专区。 创建 APP 区域的命令要求指定与之前创建的 VRA 相关联的 VLAN ID。 突出显示为 <VLAN ID>

    set security zone-policy zone INSIDE description "IBM Internal network"
    set security zone-policy zone INSIDE default-action drop
    set security zone-policy zone INSIDE interface dp0bond0
    set security zone-policy zone INSIDE to APP firewall INSIDE-TO-APP
    
    set security zone-policy zone APP description "Application network"
    set security zone-policy zone APP default-action drop
    
    set security zone-policy zone APP interface dp0bond0.<VLAN ID>
    set security zone-policy zone APP to INSIDE firewall APP-TO-INSIDE
    
  4. 落实配置。 然后,从工作站使用 ping 验证防火墙现在是否拒绝通过 VRA 向 VSI 传输流量:

    commit
    
    ping <VSI Private IP Address>
    
  5. 针对 UDP、TCP 和 ICMP 定义防火墙访问规则。

    set security firewall name INSIDE-TO-APP rule 200 protocol icmp
    set security firewall name INSIDE-TO-APP rule 200 icmp type 8
    set security firewall name INSIDE-TO-APP rule 200 action accept
    set security firewall name INSIDE-TO-APP rule 200 source address ibmprivate
    
    set security firewall name INSIDE-TO-APP rule 100 action accept
    set security firewall name INSIDE-TO-APP rule 100 protocol tcp
    set security firewall name INSIDE-TO-APP rule 100 source address ibmprivate
    
    set security firewall name INSIDE-TO-APP rule 110 action accept
    set security firewall name INSIDE-TO-APP rule 110 protocol udp
    set security firewall name INSIDE-TO-APP rule 110 source address ibmprivate
    commit
    
    set security firewall name APP-TO-INSIDE rule 200 protocol icmp
    set security firewall name APP-TO-INSIDE rule 200 icmp type 8
    set security firewall name APP-TO-INSIDE rule 200 action accept
    set security firewall name APP-TO-INSIDE rule 200 destination address ibmprivate
    
    set security firewall name APP-TO-INSIDE rule 100 action accept
    set security firewall name APP-TO-INSIDE rule 100 protocol tcp
    set security firewall name APP-TO-INSIDE rule 100 destination address ibmprivate
    
    set security firewall name APP-TO-INSIDE rule 110 action accept
    set security firewall name APP-TO-INSIDE rule 110 protocol udp
    set security firewall name APP-TO-INSIDE rule 110 destination address ibmprivate
    commit
    
  6. 验证防火墙访问权。

    • 确认 INSIDE-TO-APP 防火墙现在允许来自本地计算机的 ICMP 和 UPD/TCP 流量。
      ping <VSI Private IP Address>
      SSH root@<VSI Private IP Address>
      
    • 确认 APP-TO-INSIDE 防火墙允许 ICMP 和 UPD/TCP 流量。 使用 SSH 登录 VSI,并 ping 位于10.0.80.11和10.0.80.12 的IBM Cloud名称服务器之一。
      SSH root@<VSI Private IP Address>
      [root@vsi  ~]# ping 10.0.80.11
      
  7. 在工作站中通过 SSH 来验证是否能持续访问 VRA 管理接口。 如果可持续访问,请复查并保存配置。 否则,重新启动 VRA 将返回工作配置。

    SSH vyatta@<VRA Private IP Address>
    
    show security
    

调试防火墙规则

可以通过 VRA 操作命令提示符来查看防火墙日志。 在此配置中,仅记录每个专区丢弃的流量,以帮助诊断防火墙配置错误。

  1. 查看防火墙日志,以了解被拒绝的流量。 定期查看日志可确定 APP 专区中的服务器是以有效方式还是以错误方式联系 IBM 网络上的服务。
    show log firewall name INSIDE-TO-APP
    show log firewall name APP-TO-INSIDE
    
  2. 如果无法联系到服务或服务器,且防火墙日志中未显示任何内容,请验证来自IBM Cloud专用网络的 VRA 网络接口上是否存在预期的 ping/ssh IP 流量,或使用前面的 <VLAN ID> 在通往 VLAN 的 VRA 接口上是否存在预期的 ping/ssh IP 流量。
    monitor interface bonding dp0bond0 traffic
    monitor interface bonding dp0bond0.<VLAN ID> traffic
    

保护 VRA

  1. 应用 VRA 安全策略。 默认情况下,基于策略的防火墙分区不会确保对 VRA 本身的访问安全。 这是通过控制平面管制 (CPP) 配置的。 VRA 将基本 CPP 规则集作为模板提供。 请将其合并到配置中:
    configure
    merge /opt/vyatta/etc/cpp.conf
    
    这将创建名为 CPP 的新防火墙规则集。 查看其他规则并以 \ [edit] 方式落实。
    show security firewall name CPP
    commit
    
  2. 保护公共 SSH 访问。 由于 Vyatta 固件目前还存在一个未解决的问题,因此不建议使用 set service SSH listen-address x.x.x.x 来限制通过公共网络的 SSH 管理访问。 或者,可以通过 CPP 防火墙阻止 VRA 公共接口使用的公共 IP 地址范围的外部访问。 这里使用的 <VRA Public IP Subnet><VRA Public IP Address> 相同,最后一个八位位组为 0 x.x.x.0)。
    set security firewall name CPP rule 900 action drop
    set security firewall name CPP rule 900 destination address <VRA Public IP Subnet>/24
    set security firewall name CPP rule 900 protocol tcp
    set security firewall name CPP rule 900 destination port 22
    commit
    
  3. 通过IBM内部网络验证 VRA SSH 管理访问。 如果在执行提交后失去了通过 SSH 访问 VRA 的权限,可以通过 VRA 的“设备详情”页面上的“操作”菜单,通过 KVM 控制台访问 VRA。

这样就完成了安全专用网络外壳的设置,保护了包含 VLAN 和子网的单个防火墙区域。 可以按照相同的指示信息来添加其他防火墙专区、规则、虚拟服务器和裸机服务器、VLAN 以及子网。

除去资源

在这一步中,您将清理资源,删除创建的内容。

  • 取消任何虚拟服务器或裸机服务器
  • 取消关联并 取消任何 VLAN
  • 取消 VRA

VRA 采用按月付费套餐。 取消也不会退费。 建议您仅在下个月不再需要此 VRA 时取消。 如果需要双 VRA 高可用性集群,那么可以在网关详细信息页面上升级此单个 VRA。