使用 SSL 代理和 TLS 加密流量
SSL 代理充当中介,在客户端和服务器之间执行 SSL 加密和解密。启用 SSL 转发代理后,可以更好地了解应用程序使用情况。
SSL 代理概述
SSL 代理仅在 SRX 系列防火墙上受支持。
安全套接字层 (SSL) 是一种应用程序级协议,为互联网提供加密技术。SSL,也称为传输层安全性 (TLS),通过隐私、身份验证、机密性和数据完整性的组合,确保客户端和服务器之间的数据安全传输。SSL 依靠证书和私钥-公钥交换对来实现此级别的安全性。
SSL 代理是在客户端和服务器之间执行 SSL 加密和解密的透明代理。
SSL 代理如何工作?
SSL 代理通过以下组合在客户端和服务器之间提供安全的数据传输:
身份验证服务器身份验证通过使 Web 浏览器能够验证 Web 服务器的身份来防止欺诈性传输。
机密性 - SSL通过加密数据来强制执行机密性,以防止未经授权的用户窃听电子通信;从而确保通信的隐私。
完整性 - 消息完整性确保通信的内容不被篡改。
充当 SSL 代理的 SRX 系列防火墙可管理客户端一端与服务器另一端之间的 SSL 连接,并执行以下操作:
客户端与 SRX 系列之间的 SSL 会话 - 当从客户端到服务器的 SSL 会话启动时,终止来自客户端的 SSL 连接。SRX 系列防火墙解密流量,检查流量是否有攻击(双向),并代表客户端启动与服务器的连接。
服务器与 SRX 系列之间的 SSL 会话 - 当从外部服务器启动到本地服务器的 SSL 会话时,终止来自服务器的 SSL 连接。SRX 系列防火墙从客户端接收明文,并对数据进行加密并以密文形式传输到 SSL 服务器。另一方面,SRX 系列解密来自 SSL 服务器的流量,检查其是否存在攻击,并以明文形式将数据发送到客户端。
允许检查加密流量。
SSL代理服务器通过加密技术确保数据的安全传输。SSL 依靠证书和私钥-公钥交换对来提供安全通信。有关更多信息,请参阅 SSL 证书。
要在 SRX 系列防火墙与其客户端/服务器之间建立和维护 SSL 会话,SRX 系列防火墙对其接收的流量应用安全策略。当流量与安全策略条件匹配时,SSL 代理将作为安全策略中的应用程序服务启用。
具有应用程序安全服务的 SSL 代理
图 1 显示了 SSL 代理如何在加密的有效负载上工作。
配置应用程序防火墙 (AppFW)、入侵检测和防御 (IDP)、应用程序跟踪 (AppTrack)、内容安全和 ATP 云等高级安全服务后,SSL 代理将充当 SSL 服务器,方法是终止来自客户端的 SSL 会话并建立到服务器的新 SSL 会话。SRX 系列防火墙解密并重新加密所有 SSL 代理流量。
IDP、AppFW、AppTracking、基于策略的高级路由 (APBR)、内容安全、ATP 云和 ICAP 服务重定向可以使用来自 SSL 代理的解密内容。如果未配置这些服务,则即使将 SSL 代理配置文件附加到防火墙策略,也会绕过 SSL 代理服务。
SSL 代理的类型
SSL 代理是在客户端和服务器之间执行 SSL 加密和解密的透明代理。SRX 从客户端的角度充当服务器,从服务器的角度充当客户端。在 SRX 系列防火墙上,使用相同的回显系统 SSL-T-SSL [客户端的终结器] 和 SSL-I-SSL [服务器端的发起方],支持客户端保护(转发代理)和服务器保护(反向代理)。
SRX 系列防火墙支持以下类型的 SSL 代理:
客户端保护 SSL 代理也称为转发代理 — SRX 系列防火墙位于内部客户端和外部服务器之间。代理出站会话,即本地启动的到互联网的 SSL 会话。它解密和检查从内部用户到 Web 的流量。
服务器保护 SSL 代理也称为反向代理 — SRX 系列防火墙位于内部服务器和外部客户端之间。代理入站会话,即从互联网到本地服务器的外部启动的 SSL 会话。
有关 SSL 正向代理和反向代理的详细信息,请参阅 配置 SSL 代理。
支持的 SSL 协议
SRX 系列防火墙支持 SSL 初始化和终止服务,使用以下 SSL 协议:
TLS 版本 1.0 — 在通信应用程序之间提供身份验证和安全通信。
TLS 版本 1.1 — 此增强版 TLS 提供针对密码块链接 (CBC) 攻击的保护。
TLS 版本 1.2 — 此增强版 TLS 为加密算法协商提供了更高的灵活性。
-
TLS 版本 1.3 — 此增强版 TLS 提供更高的安全性和更好的性能。
从 Junos OS 版本 15.1X49-D30 和 Junos OS 版本 17.3R1 开始,SRX 系列防火墙支持 TLS 版本 1.1 和 TLS 版本 1.2 协议以及 TLS 版本 1.0。
从 Junos OS 15.1X49-D20 版和 Junos OS 17.3R1 版开始,不推荐使用 SSL 协议 3.0 (SSLv3) 支持。
从 Junos OS 版本 21.2R1 开始,在 SRX 系列防火墙上,SSL 代理支持 TLS 版本 1.3。
使用 TLS 1.3 时,SRX 系列防火墙支持 secp256r1 组进行密钥交换,以便与服务器建立连接。如果服务器仅支持 secp384r1,则连接将被终止。
SSL 代理的好处
解密 SSL 流量以获取精细的应用程序信息,使您能够应用高级安全服务保护和检测威胁。
强制客户端和服务器使用强协议和密码。
针对 SSL 加密流量中嵌入的威胁提供可见性和防护。
控制需要使用选择性 SSL 代理解密的内容。
逻辑系统支持
可以在使用逻辑系统配置的防火墙策略上启用 SSL 代理;但是,请注意以下限制:
逻辑系统配置当前不支持“服务”类别。由于 SSL 代理位于“服务”下,因此无法基于每个逻辑系统配置 SSL 代理配置文件。
由于在全局级别(在“服务 SSL 代理”中)配置的代理配置文件在逻辑系统配置中可见,因此可以在全局级别配置代理配置文件,然后将其附加到一个或多个逻辑系统的防火墙策略。
限制
在所有 SRX 系列防火墙上,当前的 SSL 代理实施具有以下连接限制:
不推荐使用 SSLv3.0 协议支持。
不支持 SSLv2 协议。使用 SSLv2 的 SSL 会话将被丢弃。
仅支持 X.509v3 证书。
不支持 SSL 握手的客户端身份验证。
必须进行客户端证书身份验证的 SSL 会话将被丢弃。
请求重新协商的 SSL 会话将被丢弃。
在 SRX 系列防火墙上,对于特定会话,仅当还启用了与 SSL 流量相关的相关功能时,才会启用 SSL 代理。与 SSL 流量相关的功能包括 IDP、应用程序标识、应用程序防火墙、应用程序跟踪、基于策略的高级路由、内容安全、ATP 云和 ICAP 重定向服务。如果会话上没有这些功能处于活动状态,SSL 代理将绕过会话,并且在这种情况下不会生成日志。
参见
配置 SSL 转发代理
- SSL 代理配置概述
- 配置根 CA 证书
- 使用 CLI 生成根 CA 证书
- 配置 CA 配置文件组
- 将根 CA 证书导入浏览器
- 将 SSL 代理配置文件应用于安全策略
- 配置 SSL 代理日志记录
- 配置证书颁发机构配置文件
- 将证书导出到指定位置
- 忽略服务器身份验证
SSL 代理配置概述
配置 SSL 转发代理将显示 有关如何配置 SSL 代理的概述。配置 SSL 代理包括:
-
配置根 CA 证书
-
加载 CA 配置文件组
-
配置 SSL 代理配置文件并关联根 CA 证书和 CA 配置文件组
-
通过定义输入流量匹配标准创建安全策略
-
将 SSL 代理配置文件应用于安全策略
-
可选步骤,例如创建允许列表和 SSL 代理日志记录
配置根 CA 证书
CA 可以以树结构的形式颁发多个证书。根证书是树的最顶层证书,其私钥用于 sign 其他证书。根证书正下方的所有证书都将继承根证书的签名或可信度。这有点像 notarizing 身份。
要配置根 CA 证书,请先获取根 CA 证书(通过生成自签名证书或导入自签名证书),然后将其应用于 SSL 代理配置文件。您可以使用 Junos OS CLI 获取根 CA 证书
使用 CLI 生成根 CA 证书
要在 CLI 中定义自签名证书,您必须提供以下详细信息:
证书标识符(在上一步中生成)
证书的完全限定域名 (FQDN)
拥有证书的实体的电子邮件地址
通用名称和所涉及的组织
使用 Junos OS CLI 生成根 CA 证书:
配置 CA 配置文件组
CA 配置文件定义用于身份验证的证书信息。它包括 SSL 代理在生成新证书时使用的公钥。Junos OS 允许您创建一组 CA 配置文件并在一次操作中加载多个证书,查看有关组中所有证书的信息,以及删除不需要的 CA 组。
您可以通过获取受信任的 CA 证书列表、定义 CA 组并将 CA 组附加到 SSL 代理配置文件来加载一组 CA 配置文件。
您可以轻松显示有关 CA 配置文件组中所有证书的信息:
user@host> show security pki ca-certificates ca-profile-group group-name
您可以删除 CA 配置文件组。请记住,删除 CA 配置文件组会删除属于该组的所有证书:
user@host> clear security pki ca-certificates ca-profile-group group-name
将根 CA 证书导入浏览器
为了使您的浏览器或系统自动信任由 SSL 代理配置文件中配置的根 CA 签名的所有证书,您必须指示您的平台或浏览器信任 CA 根证书。
要导入根 CA 证书,请执行以下操作:
将 SSL 代理配置文件应用于安全策略
SSL 代理作为安全策略中的应用程序服务启用。在安全策略中,指定要启用 SSL 代理的流量作为匹配标准,然后指定要应用于流量的 SSL 代理 CA 配置文件。 图 2 显示了 SSL 代理配置文件和安全策略配置的图形视图。
要在安全策略中启用 SSL 代理,请执行以下操作:
此示例假定您已经创建了安全区域信任和不信任,并为从信任区域到不信任区域的流量创建了安全策略。
配置 SSL 代理日志记录
配置 SSL 代理时,可以选择设置接收部分或全部日志的选项。SSL 代理日志包含逻辑系统名称、SSL 代理允许列表、策略信息、SSL 代理信息以及在出现错误时帮助您进行故障排除的其他信息。
您可以配置特定事件的日志记录 all 或特定事件,例如错误、警告和信息事件。您还可以配置在发生错误后列入允许列表、丢弃、忽略或允许的会话日志记录。
[edit] user@host# set services ssl proxy profile profile-name actions log all user@host# set services ssl proxy profile profile-name actions log sessions-whitelisted user@host# set services ssl proxy profile profile-name actions log sessions-allowed user@host# set services ssl proxy profile profile-name actions log errors
可以使用 enable-flow-tracing 选项启用调试跟踪。
配置证书颁发机构配置文件
证书颁发机构 (CA) 配置文件配置包含特定于 CA 的信息。您可以在 SRX 系列防火墙上拥有多个 CA 配置文件。例如,您可能有一个用于组织 A 的配置文件和一个用于组织 B 的配置文件。每个配置文件都与一个 CA 证书相关联。如果要加载新的 CA 证书而不删除旧证书,请创建新的 CA 配置文件(例如 Microsoft-2008)。对于给定拓扑,您可以将多个 CA 配置文件分组到一个受信任的 CA 组中。
在此示例中,您将创建名为 ca-profile-security 的 CA 配置文件,CA 标识为 microsoft-2008。然后,创建到 CA 配置文件的代理配置文件。
将证书导出到指定位置
使用 PKI 命令生成自签名证书时,新生成的证书存储在预定义的位置 (var/db/certs/common/local)。
使用以下命令将证书导出到特定位置(设备内)。您可以指定证书 ID、文件名和文件格式类型 (DER/PEM):
user@host> request security pki local-certificate export certificate-id certificate-id filename filename type der
忽略服务器身份验证
Junos OS 允许您配置一个选项以完全忽略服务器身份验证。如果将系统配置为忽略身份验证,则会忽略在 SSL 握手时进行服务器证书验证期间遇到的任何错误。通常忽略的错误包括无法验证 CA 签名、证书到期日期不正确等。如果未设置此选项,则在遇到错误时,服务器发送自签名证书的所有会话都将被删除。
我们不建议使用此选项进行身份验证,因为配置此选项会导致网站根本不进行身份验证。但是,您可以使用此选项有效地确定 SSL 会话丢弃的根本原因。
在配置模式下,指定忽略服务器身份验证:
[edit] user@host# set services ssl proxy profile profile-name actions ignore-server-auth-failure
为 SSL 代理启用调试和跟踪
通过设置以下配置,可以为 SSL 代理启用路由引擎和数据包转发引擎上的调试跟踪:
user@host# set services ssl traceoptions file file-name
SRX340、SRX345、SRX380、SRX550M、SRX1500、SRX4100、SRX4200、SRX5400、SRX5600、SRX5800 设备和 vSRX 虚拟防火墙实例支持 SSL 代理。 表 1 显示了跟踪选项支持的级别。
原因类型 |
描述 |
---|---|
简短 |
仅路由引擎和数据包转发引擎上的错误跟踪。 |
详细 |
数据包转发引擎 – 仅应跟踪握手之前的事件详细信息。 路由引擎 – 与提交相关的跟踪。路由引擎上没有可用的定期跟踪 |
广泛 |
数据包转发引擎 – 提供数据传输摘要。 路由引擎 – 与提交相关的跟踪(更广泛)。路由引擎上没有可用的定期跟踪。 |
详细 |
所有跟踪都可用。 |
表 2 显示了支持的标志。
原因类型 |
描述 |
---|---|
CLI 配置 |
仅与配置相关的跟踪。 |
启动 |
在 SSL-I 插件上启用追踪。 |
代理 |
在 SSL 代理策略插件上启用跟踪。 |
终止 |
在 SSL-T 插件上启用追踪。 |
选定的配置文件 |
仅对已 enable-flow-tracing 设置的配置文件启用跟踪。 |
您可以在 SSL 代理配置文件中启用日志,以了解丢弃的根本原因。以下错误是最常见的一些错误:
服务器认证验证错误。检查受信任的 CA 配置以验证您的配置。
系统故障,例如内存分配故障。
密码不匹配。
SSL 版本不匹配。
不支持 SSL 选项。
根 CA 已过期。您需要加载新的根 CA。
您可以在 SSL 代理配置文件中启用该 ignore-server-auth-failure 选项,以确保忽略证书验证、根 CA 到期日期和其他此类问题。如果在启用该选项后 ignore-server-auth-failure 检查会话,则会定位问题。
参见
传输层安全性 (TLS) 概述
传输层安全性 (TLS) 是为互联网提供加密技术的应用程序级协议。TLS 依靠证书和私钥-公钥交换对来实现此级别的安全性。它是要求通过网络安全交换数据的应用程序使用最广泛的安全协议,例如文件传输、VPN 连接、即时消息和 IP 语音 (VoIP)。
TLS 协议用于证书交换、相互身份验证和协商密码,以保护流免受潜在的篡改和窃听。TLS 有时称为安全套接字层 (SSL)。TLS 和 SSL 不可互操作,尽管 TLS 目前提供了一些向后兼容性。
SRX 系列防火墙提供 TLS 检查,该检查使用 TLS 协议套件,该套件由不同的 TLS 版本、密码和密钥交换方法组成。TLS 检查功能使 SRX 系列防火墙能够检查任何端口上以 TLS 加密的 HTTP 流量。
TLS 的优势
TLS 通过隐私、身份验证、机密性和数据完整性的组合,确保客户端和服务器之间的数据安全传输。
TLS 版本
以下是 TLS 的版本:
TLS 版本 1.0 — 通过在通信应用程序之间提供隐私和数据完整性,提供网络上的安全通信
TLS 版本 1.1 — 此增强版 TLS 提供针对密码块链接 (CBC) 攻击的保护。
TLS 版本 1.2 — 此增强版 TLS 为加密算法协商提供了更高的灵活性。
从 Junos OS 12.3X48-D30 版开始,SRX 系列防火墙支持 TLS 版本 1.2。运行早期版本 12.3X48-D30 的 SRX 系列防火墙支持 TLS 版本 1.0。
TLS 的三项基本服务
TLS 协议旨在为在其上运行的应用程序提供三项基本服务:加密、身份验证和数据完整性。
加密 - 为了建立加密安全的数据通道,服务器和客户端必须就使用哪些密码套件以及用于加密数据的密钥达成一致。TLS 协议指定定义明确的握手序列来执行此交换。TLS 使用公钥加密,它允许客户端和服务器协商共享密钥,而无需建立彼此的任何先验知识,并通过未加密的通道执行此操作。
身份验证 — 作为 TLS 握手的一部分,该协议允许服务器和客户端对其身份进行身份验证。客户端和服务器之间的隐式信任(因为客户端接受服务器生成的证书)是 TLS 的一个重要方面。服务器身份验证不受损害非常重要;但是,实际上,自签名证书和具有异常的证书比比皆是。异常可能包括过期的证书、公用名与域名不匹配的实例等。
完整性 — 通过加密和身份验证,TLS 协议会执行消息成帧机制,并使用消息身份验证代码 (MAC) 对每条消息进行签名。MAC 算法执行有效的校验和,密钥在客户端和服务器之间协商。
TLS 握手
每个 TLS 会话都以握手开始,在此期间,客户端和服务器就用于该会话的特定安全密钥和加密算法达成一致。此时,客户端还会对服务器进行身份验证。(可选)服务器可以对客户端进行身份验证。握手完成后,可以开始传输加密数据。
使用 TLS 加密系统日志流量
TLS 协议可确保通过网络安全地发送和接收系统日志消息。TLS 使用证书对通信进行身份验证和加密。客户端通过请求其证书和公钥来对服务器进行身份验证。或者,服务器也可以从客户端请求证书,因此也可以进行相互身份验证。
客户端必须提供服务器上标识服务器的证书和服务器颁发的证书颁发机构 (CA) 证书,TLS 才能加密系统日志流量。
对于客户端和服务器的相互身份验证,服务器上必须提供与客户端标识客户端的证书和客户端颁发的 CA 证书。相互认证可确保系统日志服务器仅接受来自授权客户端的日志消息。
参见
在 SRX 系列防火墙上配置 TLS 系统日志协议
此示例说明如何在 SRX 系列防火墙上配置传输层安全性 (TLS) 系统日志协议,以便从支持 TLS 系统日志事件转发的网络设备接收加密的系统日志事件。
要求
在开始之前,请启用服务器证书验证和加密或解密功能。
概述
TLS 系统日志协议使日志源能够从支持 TLS 系统日志事件转发的网络设备接收加密的系统日志事件。日志源为传入的 TLS 系统日志事件创建侦听端口,并为网络设备生成证书文件。
在此示例中,您将配置与一个 SSL-I 配置文件关联的系统日志收集器。每个 SSL-I 配置文件将使用户能够指定首选密码套件和受信任的 CA 证书等内容。可以配置多个 SSL-I 配置文件并将其关联到不同的收集器服务器。
配置
程序
CLI 快速配置
要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改任何必要的详细信息以匹配您的网络配置,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit
。
set security log mode stream set security log format sd-syslog set security log source-interface ge-0/0/1.0 set security log transport protocol tls set security log transport tls-profile ssl-i-tls set security log stream server1 format sd-syslog set security log stream server1 category all set security log stream server1 host 192.0.2.100 set services ssl initiation profile ssl-i-tls protocol-version all set services ssl initiation profile ssl-i-tls trusted-ca all set services ssl initiation profile ssl-i-tls actions ignore-server-auth-failure
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置 TLS 系统日志协议,请执行以下操作:
将日志模式设置为流。
[edit security] user@host# set log mode stream
将远程安全消息日志记录的格式设置为 sd-syslog(结构化系统日志)。
[edit security] user@host# set log format sd-syslog
设置主机源接口号。
[edit security] user@host# set log source-interface ge-0/0/1.0
设置用于记录数据的安全日志传输协议 tls。
[edit security] user@host# set log transport protocol tls
指定 TLS 配置文件名称。
[edit security] user@host# set log transport tls-profile ssl-i-tls
将日志流设置为使用结构化系统日志格式将日志发送到服务器 1。
[edit security] user@host# set log stream server1 format sd-syslog
将服务器 1 日志记录的类别设置为 all 。
[edit security] user@host# set log stream server1 category all
通过输入服务器名称或 IP 地址来设置服务器主机参数。
[edit security] user@host# set log stream server1 host 192.0.2.100
为 SSL 初始访问配置文件定义协议版本全部。
[edit services] user@host# set ssl initiation profile ssl-i-tls protocol-version all
将所有 CA 配置文件组附加到 SSL 初始配置文件,以便在从对等方请求证书时使用。
[edit services] user@host# set ssl initiation profile ssl-i-tls trusted-ca all
定义 SSL 初始访问配置文件以忽略服务器身份验证失败。
[edit services] user@host# set ssl initiation profile ssl-i-tls actions ignore-server-auth-failure
结果
在配置模式下,输入 show security log
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show security log mode stream; format sd-syslog; source-interface ge-0/0/1.0; transport { protocol tls; tls-profile ssl-i-tls; } stream server1 { format sd-syslog; category all; host { 192.0.2.100; } } }
[edit] user@host# run show configuration services ssl initiation profile ssl-i-tls { protocol-version all; trusted-ca all; actions { ignore-server-auth-failure; } }
如果完成设备配置,请从配置模式输入 commit
。
验证
要验证配置是否正常工作,请在系统日志服务器上输入 show log
命令。