注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure 免费套餐。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
使用 DNS 防火墙保护 Oracle Cloud Infrastructure 内部网络
简介
要控制虚拟机 (Virtual Machine,VM) 实例的性能,您必须先控制该实例,然后才能控制其行为。在大多数情况下,域名系统 (Domain Name System,DNS) 查询被遗忘且不受控制或监视,从而使受感染的计算机可以连接到命令和控制 (C2) 服务器并下载恶意软件。能够控制和阻止这些出站查询到 C2 服务器和其他类型的恶意服务器,为您的网络增加了一层额外的安全保护,您可能会避免您的 VM 和网络进一步受到损害。
目标
- 使用 Oracle Cloud Infrastructure (OCI) 专用 DNS 服务,通过配置 DNS 防火墙和添加日志记录来更好地控制和查看实例的 DNS 查询,从而保护您的内部 OCI 网络免受恶意出站 DNS 查询的侵害。
先决条件
-
访问 OCI 租户。
-
基本了解 DNS。
-
Virtual Cloud Network,VCN。
配置:默认情况下,每个 VCN 创建时都具有自己的 DNS 解析程序,如果您注意 Linux 计算机上的配置,则会在
/etc/resolv.conf
文件中配置以下内容(Oracle Linux 9 示例):[opc@linu-lab ~]$ cat /etc/resolv.conf ... nameserver 169.254.169.254
自动专用 IP 地址 (Automatic Private IP Addressing,APIPA) 地址
169.254.169.254
在 OCI 网络中用于多个服务,其中包括 DNS 解析器。 -
任何 DNS 防火墙提供商上的账户(可选)。
任务 1:在 OCI 控制台上找到 DNS 解析程序
确保您已创建 VCN,然后单击 VCN 名称。在 Virtual Cloud Network Details(虚拟云网络详细信息)页面中,单击 DNS 解析程序。
任务 2:配置转发端点
-
在资源下,单击端点和创建端点。
-
在创建端点页中,输入以下信息,然后单击创建端点。
- 名称:输入一个名称。
- 子网:选择您希望转发者端点所在的子网。
- 端点类型:选择转发。
这需要几分钟,完成后,您将创建 DNS 转发器。这将允许我们配置查询的重定向,我们想要的地方,在我们的情况下,到 DNS 防火墙。
DNS 解析器遵循如何解析实例查询的顺序:
首先,它将检查所有附加的专用视图,然后检查解析程序规则,最后使用 Oracle 自己的公共 Internet 解析程序解析主机名。有关更多信息,请参见 Configuration and Resolution 。
在下一步中,我们希望转移所有非本地(在任何专用视图中不存在)的查询,并将其发送到 DNS 防火墙服务或贵公司管理的其他一些 DNS 服务器以控制查询。
您可以选择免费服务,例如 OpenDNS、Quad9、ControlD 和其他许多服务,或者选择具有更多控制和功能的付费服务,例如 Cisco Umbrella、ControlD、NextDNS、InfoBlox 等。
注意:我们与任务 3 中提到的 DNS 提供者没有连接。由于其简单性、易用性和配置性,它们被用作示例。还有许多其他供应商提供类似的服务,找到最符合您要求的供应商。
任务 3:创建解析程序规则
-
使用免费 DNS 防火墙服务
请记住,解析程序将按规则顺序对规则进行求值,并在第一次匹配时停止。确保如果您对内部域有其他规则,我们的规则是最后一个规则,因此我们可以将所有其他查询重定向到我们的 DNS 防火墙。
在本教程中,我们使用 Quad9 服务,这是一个免费服务,使用起来非常简单,基本上没有配置。其他免费服务(如 ControlD)允许您配置要阻止的多个类别的查询。
-
在 Resources(资源)下,单击 Rules(规则)和 Manage Rules(管理规则)。
-
在管理规则页中,输入以下信息。
-
规则条件:选择无,这将创建一个匹配所有客户机,这意味着未在专用视图或以前规则上解析的所有查询都将转移到解析器转发器,并且不会由 OCI Internet 公共解析器解析。
-
源点:选择在任务 2 中创建的转发器端点。
-
目标 IP 地址:我们使用 Quad9 DNS 服务器
9.9.9.9
。
-
-
单击保存更改,然后等待几分钟以更新解析程序。
您的所有实例查询都会发送到 Quad9 DNS 防火墙服务,如果某些实例尝试连接到恶意 IP,则会阻止这些查询。
或者
-
-
使用付费 DNS 防火墙服务
如果您需要更多的控制、功能和日志记录,那么免费服务可能不是您的解决方案。付费服务提供比免费服务更多的控制和功能,并可能允许您检测对主机名进行可疑查询的实例,而这些实例不应该这样做。
在本教程中,我们将使用 NextDNS,还需要执行一些额外的步骤才能使其正常工作。
首先,您需要一个帐户,NextDNS 提供了一个免费套餐,每月最多可查询 300K 个,这应该足以测试服务。拥有账户后,登录并为 VCN 创建新概要信息。
-
单击新建并输入名称。
-
单击设置,然后选择将保存日志的区域,您可以在美国、欧洲或瑞士之间进行选择。
-
单击安全性,然后选择如何使用 AI 使用馈送和更多选项来过滤和阻止恶意 IP。
-
单击隐私并添加已知恶意 IP、跟踪器、广告服务器等的列表。
-
您还可以在 DenyList 和 AllowList 中创建拒绝和允许列表。
此服务的最佳部分是日志和分析功能。这使我们能够在笔记本电脑上找到一个浏览器扩展,对一个非常奇怪的主机名进行数十万次查询,从而导致删除扩展。
-
现在,单击设置,我们可以看到存在不同的端点:IPv4、IPv6、DoT (DNS over TLS) 和 DOH (DNS over HTTP)。
-
在本教程中,我们将使用 IPv4,并为其解析器提供特定的 IP,我们只需要链接 IP 地址,以便 NextDNS 知道查询来自何处,以便他们可以根据您的配置文件记录这些查询。
为此,我们需要登录到访问 Internet 的实例之一(通过 NAT),然后运行以下命令将 IP 链接到配置文件。
[opc@linux-lab ~]$ curl https://link-ip.nextdns.io/d34ff7/fd11c0xxxxx67cab 158.101.204.149[opc@linux-lab ~]$
单击显示高级选项、链接的 IP 并获取配置文件的正确链接。
该脚本将返回 OCI NAT 网关的 IP,该 IP 由 OCI DNS 解析程序用于执行所有查询。
我们只需要对解析程序规则进行最后一次更改,以指向 NextDNS 解析程序的 IPv4 IP。
-
在 VCN 解析程序页中,单击规则并删除我们之前添加的规则,然后创建一个指向 IP
45.90.28.43
的新规则。使用此更改更新 OCI DNS 解析器后,在此 VCN 上执行 DNS 查询的所有内部实例都将使用 NextDNS 防火墙服务。
创建拒绝列表
让我们创建一个拒绝列表并检查它是否有效。转到 NextDNS 控制台,选择创建的配置文件,然后单击 DenyList 。添加域
malicious.site
,然后单击 Enter 。在内部实例中,尝试解析此域的 IP。
[opc@linux-lab ~]$ dig +short A malicious.site 0.0.0.0
正如预期的那样,查询未解析为任何 IP,并返回
0.0.0.0
,除此之外,已记录查询。Analytics 选项卡开始显示有关针对此配置文件执行的所有查询的信息。从现在起,VCN 中的内部实例进行的所有查询都将使用解析程序规则将查询转发到 DNS 防火墙。
-
注:
所有这些提供商都有任播网络和高度弹性和可扩展的架构,这应该可以承受服务器的故障,但如果你想提高自己的架构的弹性,你应该在 OCI 中实施网络负载平衡器,该网络负载平衡器将用作解析器规则上的转发器,并使用 DNS 提供者提供的多个 IP 作为网络负载平衡器后端。如果 DNS 提供商的一个 IP 发生故障(这种情况非常罕见),则网络负载平衡器会将流量切换到另一个 IP。
请记住,部署专用 DNS 端点转发器的子网的安全列表必须允许端口用户数据报协议 (User Datagram Protocol,UDP) 和传输控制协议 (Transmission Control Protocol,TCP) 端口 53 上的连接才能接收 DNS 查询。
此子网需要通过 NAT 网关建立 Internet 连接。确保安全列表和路由表都已正确配置为允许这样做。
相关链接
确认
- 作者 — Carlos Jorge Santos(OCI 云工程师—网络域专家)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Protect your Oracle Cloud Infrastructure Internal Network using a DNS Firewall
G16362-01
September 2024