配置 NAT 以从专用网络访问因特网
本教程描述了 经典基础架构的使用。 可以使用 IBM Cloud® Virtual Private Cloud 资源来实现大多数工作负载。 使用 IBM Cloud VPC 在共享公共云基础结构上创建您自己的私有云类计算环境。 VPC 使企业能够定义和控制从逻辑上与所有其他公共云租户隔离的虚拟网络,从而在公共云上创建专用的安全场所。 具体而言,虚拟服务器实例, 安全组,网络 ACL 和 公共网关。
本教程可能会发生成本。 使用“成本估算器”根据您的预计使用量生成成本估算。
在如今基于 Web 的 IT 应用程序和服务遍布的世界,几乎没有应用程序是孤立存在的。 开发者开始期望在因特网上访问服务,无论服务是开放式源代码应用程序代码和更新,还是通过 REST API 提供应用程序功能的“第三方”服务。 为了保护从专用网络对因特网托管的服务的访问,一种常用的方法是网络地址转换 (NAT) masquerade。 在 NAT 伪装中,私有 IP 地址以多对一的关系被翻译成出站公共接口的 IP 地址,从而将私有 IP 地址屏蔽在公众视线之外。
本教程说明了如何在虚拟路由器设备 (VRA) 上设置网络地址转换 (NAT) masquerade,以连接到 IBM Cloud 专用网络上的安全子网。 它以 使用安全专用网络隔离工作负载 教程为基础,增加了源 NAT(SNAT)配置,其中源地址被混淆,防火墙规则用于保护出站流量。 更复杂的 NAT 配置可以在补充 VRA 文档中找到。
目标
- 在虚拟路由器设备 (VRA) 上设置源网络地址转换 (SNAT)
- 针对因特网访问设置防火墙规则
{: caption="*
- 记录必需的因特网服务。
- 设置 NAT。
- 创建因特网防火墙专区和规则。
准备工作
本教程在通过使用安全专用网络隔离工作负载教程创建的安全专用网络隔离区中启用主机,以访问公用因特网服务。 后一个教程必须先完成。
记录因特网服务
第一步是确定将在公用因特网上访问的服务,并记录必须为来自因特网的出站和相应入站流量启用的端口。 在稍后的步骤中,防火墙规则将需要此端口列表。
在此示例中,仅启用了 http 和 https 端口,因为这两种端口可满足大多数需求。 DNS 和 NTP 服务通过 IBM Cloud 专用网络提供。 如果需要这两种服务及其他服务,例如 SMTP(端口 25)或 MySQL(端口 3306),那么需要其他防火墙规则。 两个基本端口规则如下:
- 端口 80 (http)
- 端口 443 (https)
验证第三方服务是否支持定义允许的源地址列表。 如果支持,那么需要 VRA 的公共 IP 地址来配置第三方服务,以限制对服务的访问。
通过 NAT masquerade 访问因特网
按照此处的指示信息,使用 NAT masquerade 为 APP 专区中的主机配置外部因特网访问。
-
通过 SSH 登录到 VRA,然后进入 [编辑](配置)方式。
SSH vyatta@<VRA Private IP Address> configure
-
在 VRA 上创建 SNAT 规则,指定与之前 VRA 配置教程中为 APP 区域子网/VLAN 确定的 <子网网关 IP>/
相同的规则。 set service nat source rule 1000 description 'pass traffic to the Internet' set service nat source rule 1000 outbound-interface 'dp0bond1' set service nat source rule 1000 source address <Subnet Gateway IP>/<CIDR> set service nat source rule 1000 translation address masquerade commit
创建防火墙
-
为 APP-TO-OUTSIDE 创建防火墙规则
set security firewall name APP-TO-OUTSIDE default-action drop set security firewall name APP-TO-OUTSIDE description 'APP traffic to the Internet' set security firewall name APP-TO-OUTSIDE default-log set security firewall name APP-TO-OUTSIDE rule 90 protocol tcp set security firewall name APP-TO-OUTSIDE rule 90 action accept set security firewall name APP-TO-OUTSIDE rule 90 destination port 80 set security firewall name APP-TO-OUTSIDE rule 100 protocol tcp set security firewall name APP-TO-OUTSIDE rule 100 action accept set security firewall name APP-TO-OUTSIDE rule 100 destination port 443 set security firewall name APP-TO-OUTSIDE rule 200 protocol icmp set security firewall name APP-TO-OUTSIDE rule 200 icmp type 8 set security firewall name APP-TO-OUTSIDE rule 200 action accept commit
-
创建防火墙规则 OUTSIDE-TO-APP
set security firewall name OUTSIDE-TO-APP default-action drop set security firewall name OUTSIDE-TO-APP description 'Internet traffic to APP' set security firewall name OUTSIDE-TO-APP default-log set security firewall name OUTSIDE-TO-APP rule 100 protocol tcp set security firewall name OUTSIDE-TO-APP rule 100 action accept set security firewall name OUTSIDE-TO-APP rule 100 destination port 443 set security firewall name OUTSIDE-TO-APP rule 90 protocol tcp set security firewall name OUTSIDE-TO-APP rule 90 action accept set security firewall name OUTSIDE-TO-APP rule 90 destination port 80 set security firewall name OUTSIDE-TO-APP rule 200 protocol icmp set security firewall name OUTSIDE-TO-APP rule 200 icmp type 8 set security firewall name OUTSIDE-TO-APP rule 200 action accept commit
创建专区并应用规则
-
创建专区 OUTSIDE 来控制对外部因特网的访问。
set security zone-policy zone OUTSIDE default-action drop set security zone-policy zone OUTSIDE interface dp0bond1 set security zone-policy zone OUTSIDE description 'External Internet'
-
分配防火墙以控制进出因特网的流量。
set security zone-policy zone APP to OUTSIDE firewall APP-TO-OUTSIDE set security zone-policy zone OUTSIDE to APP firewall OUTSIDE-TO-APP commit
-
验证 APP 专区中的 VSI 现在是否可以访问因特网上的服务。 使用 SSH 登录到本地 VSI:
ssh root@<VSI Private IP>
使用 ping 和 curl 验证对因特网上站点的 icmp 和 tcp 访问:
ping 8.8.8.8 curl www.google.com
除去资源
除去本教程中创建的资源所需执行的步骤。
VRA 采用按月付费套餐。 取消也不会退费。 建议您仅在下个月不再需要此 VRA 时取消。 如果需要双 VRA 高可用性集群,那么可以在网关详细信息页面上升级此单个 VRA。
- 取消任何虚拟服务器或裸机服务器
- 取消 VRA
- 取消任何 VLAN