注:

使用 OCI 网络防火墙进行 SSL 转发代理和使用解密规则的入站检查

简介

Oracle Cloud Infrastructure (OCI) 网络防火墙服务是基于云的托管防火墙解决方案,它利用来自 Palo Alto Networks 的新一代防火墙技术 (NGFW)。OCI 网络防火墙服务具有先进的机器学习驱动的防火墙功能,可为您的 OCI 负载提供顶级保护,同时在 OCI 生态系统中轻松使用。

OCI 网络防火墙在通过防火墙时检查所有请求,包括传输层安全 (Transport layer security,TLS) 加密流量。根据用户定义的防火墙策略规则,该服务可以执行各种操作,包括允许、拒绝、删除、入侵检测或预防。通过这些强大的功能,OCI 网络防火墙是保护 OCI 工作负载免受各种安全威胁的强大工具。

目标

本教程的目标是提供在 OCI 云的下一代防火墙中使用解密规则实施 SSL 转发代理和入站检查的综合指南。

遵循本教程,您将充分了解使用解密规则的 SSL 转发代理和入站检查,并能够应用此知识在 OCI 云中保护您的网络基础结构。

先决条件

:建议您在 OCI 中设置一个测试环境,以便在生产环境中实施防火墙配置和解密规则之前对其进行试验。

体系结构

体系结构

OCI 网络防火墙策略包含以下列表:

测试用例

在本教程中,我们通过在防火墙策略中具有安全规则,通过 Internet 创建了与 Linux 计算机(公共子网:129.146.201.118)的 SSH 连接。

现在,您可以了解如何使用列表为防火墙创建安全规则。使用此规则,我们通过 SSH 连接到 Linux 计算机。

了解 TLS/SSL 加密技术

TLS 是一种加密协议,可为通过 Internet 在应用程序之间发送的任何数据提供端到端安全性。大多数常见的场景是安全的网络浏览。但是,它可以也应该用于其他应用程序,例如电子邮件、文件传输、视频/音频会议、即时消息和 IP 语音等。

了解 TLS 不保护最终系统上的数据非常重要。它确保通过互联网安全地传送数据,避免可能窃听和/或更改要发送的内容(在途)。TLS 通常在 TCP 上实施,以加密应用层协议,例如 HTTP、FTP、SMTP 和 IMAP,尽管它也可以在 UDP、DCCP 和 SCTP 上实现。

为了保护数据,TLS 依赖于加密技术来加密/解密通过互联网发送的传输中数据。我们将涵盖对称和非对称加密、公钥基础结构 (PKI) 和 X.509 数字证书等术语和概念。

要对网络设置、配置和应用下一代防火墙,您需要了解 TLS 连接(例如 https)的工作原理,包括数字 X.509 证书配置和部署。

加密和类型

加密背后的想法恰恰是为了在“不安全的渠道”中隐藏或隐藏(加密)我们想要从 A 到 B 发送的信息。不安全的通道是通道或路径,我们无法保证任何人不会拦截、窃取或修改(窃听)从 A 到 B 传输的信息,而其他方式。

通过加密,我们可以通过加密(隐藏)原始数据到目标位置来保护通过不安全通道传输的信息。接收者收到后,接收者将能够将收到的加密数据解密为其原始值。

有两种类型的加密:对称和非对称

对称加密

为了加密/解密数据块,对称加密引擎使用完全相同的密钥来加密和解密数据。这通常称为主密钥共享密钥

主密钥加密

虽然这听起来像是实现加密的简单方法,但其中的主要问题是通过不安全的通道分发双方之间的主密钥。此主密钥交换过程将在本教程中使用不同的技术进行处理,包括以下部分中介绍的一种技术:非对称加密。

常见的对称加密算法有:AES128、AES256、Serpent、Camelia 等。

非对称加密

非对称加密/加密,使用一对具有特殊关系的相关密钥:通过一对密钥加密的数据可以仅加密另一对密钥和其他方式

非对称加密

通常将此对密钥称为公钥私钥。公钥可以与所有人共享,而私钥必须保密

非对称加密通过使用公钥进行加密和私钥进行解密(或其他方式)解决密钥分发问题。然而,权衡是非对称加密系统与对称系统相比非常缓慢,并且由于其密钥长度要长得多,因此需要更多的计算能力。

对称加密算法的速度更快,且所需的计算能力更少,但其主要弱点是密钥分发,因为相同的密钥用于加密和解密信息,密钥必须分发给任何需要访问数据的人。

TLS 使用不对称和对称加密,不仅用于加密数据,还用于验证连接中涉及的各方。以下是 X.509 证书执行操作的位置。

X.509 证书

X.509 证书是基于广泛接受的 International Telecommunications Union (ITU) X.509 标准的数字证书,用于定义公钥基础结构 (PKI) 证书的格式。X.509 证书使用包含相关公共密钥和私钥的密钥对进行归档。如上所述,该密钥对恰好是非对称加密中使用的密钥对,我们选择一种是公钥,另一种是私钥。请记住,使用其中一个密钥加密的任何内容只能由其他密钥解密,反之亦然。

您可以想象,密钥对的公共部分(其名称暗示)是公共的,并且可以自由分布私钥必须是安全密钥,并且通常使用对称加密模式中的主密钥进行加密,因此即使被盗,也无法使用它。

除了公钥外,X.509 证书还包含表示身份(主机名、组织或个人)的其他信息,因此 x.509 证书将此身份绑定到包含的公钥

X.509 v3 数字证书的结构如下所示:

证书

版本号

序列号

签名算法 ID

发布者名称

有效期

不早于

不晚于

主题名

主题公共密钥信息

公共密钥算法

主题公共密钥 这是公共密钥

颁发者唯一标识符(可选)

用者唯一标识符(可选)

扩展(可选)

证书签名算法

证书签名

公钥绑定到用主题名称表示的身份,该名称是具有以下格式的字符串:

其中,主题:C = US,ST = California,L = Mountain View,O = Google LLC,CN = *。google.com

因此,此身份属于 Google,在美国国家/地区、加利福尼亚州和通用名称*。google.com

我们可以使用此证书来两种用途:分发我们的公钥向他人验证我们的身份。记住这一点,那里的任何计算机/移动/设备,收到我们的证书时,它将拥有我们的公钥和身份,因此,它将能够使用公钥发送加密的信息,只有我们将能够解密(使用私钥)。此外,证书内部还有我们的身份,因此接收它的设备将能够信任此身份,并确保它与正确的身份交换信息。

如上所述,通过公钥/私钥进行的不对称加密比对称加密(x4 或更多)慢得多,因此不可行。此外,我们还没有解释接收证书的设备如何才能真正信任证书中的身份。At the end, the X.509 certificate is just a piece of text received over an insecure channel.要信任/验证收到的证书,需要 Certificate Authority可信sign 数字证书的组织)。证书颁发机构验证请求证书的公司或个人的身份和合法性,如果验证成功,CA 会颁发签名证书。CA 组织的示例包括 Oracle、VeriSign、D-Trust、DigiCert 等。

那么,从加密的角度来看,这个签名过程是如何运作的?同样,我们将为此使用非对称加密的强大功能,如下所示:

因此,现在我们有 X.509 证书可供采取行动。在 TLS 连接期间接收此证书的计算机/移动/设备如何验证它是否为有效的 X.509 证书?同样,我们将使用非对称加密的强大功能,如下所示:

现在我们知道我们有一个有效的证书,其中包括我们尝试连接到的域名,例如 www.mycompanycomain.com (包括在证书的通用名称或主题替代名称字段中),计算机/移动/浏览器将确保我们实际连接到该 DNS 域名 (www.mycompanycomain.com),而不是其他域名。这是强制性验证,因为任何人都可以窃取 X.509 证书并尝试从其他 DNS 域服务器(www.myfakecompany.com 等)使用该证书,这将传递 CA 签名验证过程。

因此,现在所有的计算机/移动设备/设备都可以下载我们的证书的公钥并发送加密的数据,以便我们只能解密它。由于非对称加密比对称加密(x4 或更多)慢得多,因此它不可行。解决方法是同时使用这两者,这也是需要 SSL/TLS 的地方。

TLS 基础知识

TLS 是一种加密协议,可为通过 Internet 在应用程序之间发送的数据提供端到端的安全性。用户大多熟悉它用于安全 Web 浏览,特别是 Web 浏览器中在建立安全会话时显示的挂锁图标。

TLS 使用对称和非对称加密的组合,因为这在安全传输数据时在性能和安全性之间提供了很好的折衷。请记住,非对称加密需要 4 倍或更多的计算能力,而不是对称加密。但是,对称加密需要通信两端的同一主密钥才能加密/解密消息,因此使用对称加密的目标是能够交换该消息两方之间的主密钥(或共享密钥),首先通过不安全的通道,然后开始使用此主密钥来确保通信的安全,对使用所选对称引擎发送/接收的所有消息进行加密/解密。

TLS,黑客映像

为了通过不安全的通道交换主密钥, TLS 将使用两种不同的技术,它们遵循相同的目标,即在不安全的通道中安全地交换主密钥/共享密钥

RSA 方法将依靠非对称加密(私钥和公钥)的强大功能通过不安全的通道交换主密钥。

DHE/ECDHE 将依靠使用数学计算来生成不安全通道中两方之间的相同主键。双方将交换某些良性信息,这些信息将与他们的特权信息混合,因为它通过不安全的渠道旅行,并且可以在没有任何风险的情况下捕获。谈判结束时,双方的数学计算最终都将基于相同的共同秘密或主密钥。更多信息 https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

这两种关键交换方法在称为 TLS 握手的过程中进行。

已取消屏蔽 TLS 握手

SSL/TLS 握手是网络中两方(例如浏览器和 Web 服务器)之间的协商,用于确定其连接的详细信息。在协商期间,双方将验证(使用 X509 证书),同意密码套件(主密钥将如何交换以及将使用哪些加密引擎,例如 AES256、128,散列)例如 SHA1、2 等 ),最后,当验证发生(收到有效证书)并就如何建立安全通道完成达成协议时,我们将有一个来自双方的安全通道。下面是实际步骤:

TLS 握手

请注意,在上图中,我们在加密套件协商期间使用 RSA(私钥/公钥)交换要用于议定对称加密引擎(即 AES256)的主密钥(或共享密钥)。如果使用 DHE/ECDHE,而不是使用公钥和私钥交换主密钥,双方将使用 DHE 计算,交换良性材料,最终在双方计算相同的结果。此结果将成为用于对称加密的主密钥(共享密钥)。

任务 1:使用 OCI 网络防火墙进行 SSL 转发代理以及使用解密规则的入站检查

  1. 在 Linux 计算机上使用开放 SSL 为出站流量和入站检查创建两个自签名证书。更新 Linux 计算机以信任证书。

    自签名证书创建

  2. 在 OCI 中创建 Vault。

    Vault

  3. 创建 Vault 之后,创建密钥。密钥内容必须采用以下格式。

    {
    
    "caCertOrderedList":
    
    [
    
    "-----BEGIN CERTIFICATE
    
    -----END CERTIFICATE-----\n"
    
    ],
    
    "certKeyPair":
    
    {
    
    "cert" : "-----BEGIN CERTIFICATE
    
    -----END CERTIFICATE----\n",
    
    "key": "-----BEGIN RSA PRIVATE KEY
    
    -----END RSA PRIVATE KEY----\n"
    
    }
    
    }
    
  4. 在网络防火墙策略中,添加映射的密钥。

    1. 选择“映射的密钥”类型作为 SSL 转发代理或 SSL 入站检查。

    2. 选择创建的 Vault。

    3. 选择密钥。

    4. 添加映射的密钥。

      映射的密钥

  5. 创建解密概要信息。

    1. 选择 SSL 转发代理并检查服务器证书验证选项,或者选择 SSL 入站检查并检查流量所需的不支持的模式检查。

      解密概要信息转发

      解密概要信息入站

    2. 添加解密概要文件。

      添加解密概要信息

  6. 创建解密规则。

    1. 从您在策略中创建的 IP 地址列表中选择源 IP 地址,或者选择任何 IP 地址。

    2. 从您在策略中创建的 IP 地址列表中选择目标 IP 地址,或者选择任何地址。

      目的地 IP 地址

    3. 选择用于对使用 SSL 转发代理、SSL 入站或不解密的通信进行解密的操作。

    4. 选择解密概要信息和映射的密钥。

      解密概要信息选择

使用解密规则更新策略后,可以将其附加到防火墙。

任务 2:将策略附加到防火墙

创建网络防火墙时,您可以选择应附加到防火墙的策略。

NetworkFirewall 附件

我们创建了一个解密规则来解密通过 SSL 转发代理的流量,另一个用于 SSL 入站检查。如同 SSL 出站连接所述,来自公共子网的所有流量都将传输到 OCI 网络防火墙以及通过 OCI 网络防火墙,它正在从互联网网关到互联网的路径。

对于入站检查,它会通过互联网网关将下一个 HOP 作为防火墙,然后访问公共子网中的 Linux 计算机。

根据解密规则,对于使用 Hub-Linux-Machine 的源 IP 地址以及任何目标 IP 地址,流量应该由 SSL 转发代理解密,对于作为 Hub-Linux 的任何来源和目标的入站连接,它应该使用 SSL 入站检查解密流量。

解密规则

注:对于任何遇到防火墙的流量,它首先检查解密规则,然后检查安全规则。

问题:如何确定解密规则是否可用于遇到防火墙的通信?

答案:可以在名称为“解密”规则命中计数附加到防火墙的度量上看到此项。

每当 Linux 计算机尝试访问 Internet 上的 https 网站或者 https 上与 Linux 计算机的任何入站连接时,解密规则命中计数都会增加。

Network Firewall 度量

任务 3:将解密规则与安全规则一起使用以允许或拒绝流量

添加到上述用例中,让我们了解如何将解密规则与安全规则一起使用以允许或拒绝流量。如测试案例开头所述,我们可以使用列表来允许或拒绝流量。

此处,我们已为 SSL 转发代理和入站 SSL 检查创建了解密规则。为了进行测试,我们为从 Hub Linux 计算机到 Internet 的出站连接创建了安全规则,以允许访问 *。oracle.com。

注:默认情况下,在 OCI 网络防火墙上拒绝所有流量访问。需要为应允许的流量创建规则。

URL 列表:

URL 列表

安全规则:

安全规则

现在,Linux 计算机尝试通过 OCI 网络防火墙在 Internet 上访问 *。oracle.com 时会发生什么情况。

问题:如何查看流量发生了哪些规则?

答案:可以在 OCI 网络防火墙日志中看到它。

对于 oracle.com

网络防火墙日志 1

对于任何其他 URL:

网络防火墙日志 2

确认

Authors - Luis Catalán Hernández(OCI 云网络专家和多云),Sachin Sharma(OCI 高级云专家)

更多学习资源

探索 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 频道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心