应用程序防火墙
应用程序防火墙 (AppFW) 基于应用程序签名对流量提供基于策略的实施和控制。通过使用 AppFW,您可以阻止企业未批准的任何应用程序流量。有关详细信息,请参阅以下主题:
应用程序防火墙概述
本主题包括以下章节:
状态防火墙的局限性
传统上,有状态防火墙用于控制 HTTP、SMTP 和 DNS 等应用程序,因为这些应用程序仅使用众所周知的标准端口。但是,只要客户端和服务器使用相同的协议和端口,现在可以在任何端口上运行这些应用程序。因此,标准状态防火墙无法检测逃避运行的应用程序。此外,随着 Web 应用程序的日渐普及以及传统基于客户端的应用程序向 Web 的转变,越来越多的流量正在通过 HTTP 进行传输。
有状态防火墙的这种限制,其中防火墙基于第 3 层或第 4 层检测流量,左开放以允许应用程序层漏洞。
应用程序防火墙
瞻博网络防火墙 (AppFW) 利用应用程序识别结果做出明智决策,允许、拒绝、拒绝或基于应用程序重定向流量。AppFW 允许您对 7 层流量实施策略控制。
安全工程网站 提供了预定义瞻博网络数据库。此数据库包括一个应用程序签名库。有关详细信息 ,请参阅 应用程序签名 。这些签名页面将为您提供对应用程序类别、组、风险级别、端口等的可见性。
AppFW 允许您根据应用程序签名阻止应用程序,同时仍然允许其他 HTTP 流量通过防火墙。例如,应用程序防火墙规则可能会阻止 Facebook 的 HTTP 流量,但允许 Web 访问 MS Outlook 中的 HTTP 流量。
应用程序防火墙的好处
基于用户定义策略为高风险应用程序提供细粒度安全控制。
根据需求提供对应用程序访问的策略控制,增加了灵活性。
使用统一策略的应用程序防火墙
从Junos OS版本18.2R1,您可以使用统一策略利用 AppFW 配置的相同功能。统一策略利用来自应用程序识别 (AppID) 服务的应用程序身份信息来允许、拒绝、拒绝或重定向流量。统一策略配置处理所有应用程序防火墙功能并简化防火墙策略配置任务。
阅读以下用于配置 AppFW 的主题之一:
如果您使用 18.2 Junos OS版本,则必须配置统一策略才能获得与传统 AppFW 相同的优势。请参阅 使用统一策略支持应用程序防火墙。
如果您使用 18.2 Junos OS 18.2 之前的版本,Junos OS配置传统 AppFW。请参阅 应用程序防火墙概述。
应用程序防火墙支持及统一策略
从 Junos OS 版18.2R1开始,SRX 系列设备和 vSRX 实例支持统一策略,从而允许在传统安全策略中精细控制并实施 7 层动态应用程序。
统一策略是一种安全策略,使您能够将动态应用程序用作匹配条件,作为现有 5 元或 6 元组(使用用户防火墙为 5 元组)匹配条件的一部分,以检测应用程序随着时间的推移而发生的变化。
如果您计划升级到 Junos OS 及18.2R1版本,请注意关于使用 APPFW 功能的以下几点:
所有现有 AppFW 相关CLI语句和命令都弃用。也就是说,
从 Junos OS 开始18.2R1版应用程序防火墙 (AppFW) 功能将弃用(而非立即移除),以提供向后兼容性,并有机会使配置符合新配置。作为此更改的一部分,将弃用层次结构以及此层次结构下
[edit security application-firewall]
的所有配置选项。如果继续以弃用层次结构配置,AppFW 功能将正常工作。只需手动输入,才能在 CLI中弃用层次结构中配置 AppFW。
不支持在同一安全策略中配置传统 AppFW 策略和统一策略。如果您尝试这样做,系统将显示以下错误消息:
Traditional AppFW and dynamic-application can't be applied to same policy
如果要从版本或 Junos OS降级18.2R1到应用程序的任何早期版本Junos OS:
您必须删除所有统一策略,以避免降级后提交检查失败。
有关配置统一策略的示例,请参阅 配置统一安全策略。
另请参阅
示例:使用统一策略配置应用程序防火墙
此示例介绍如何配置统一策略以基于应用程序允许或阻止流量。
系统要求
系统要求
此示例具有以下硬件和软件组件:
运行新版 Junos OS 的 SRX 系列18.2R1。此配置示例已经过测试,Junos OS版本19.1R1。
开始之前
在 SRX 系列设备上安装有效的应用程序识别功能许可证。请参阅 管理 Junos OS 许可证。
下载并安装 Junos OS签名包。 下载和安装 Junos OS签名包。
概述
在此例中,您创建阻止某些应用程序和应用程序组(如 Yahoo-Mail 和 Facebook-Access)的常见情景。
拓扑
此示例使用拓扑,如 图 1 所示。
此示例使用以下区域和接口配置。
客户端系统连接到 IP 地址为 4.0.0.254/24 的 ge-0/0/0.0 接口。它是信任区域中的一部分。
服务器系统连接到 IP 地址为 5.0.0.254/24 的 ge-0/0/1.0 接口。它属于不信任区域。
创建安全策略配置以按照以下步骤阻止某些应用程序:
为来自区域信任的流量创建安全策略,不信任以阻止对 Yahoo-Mail 或 Facebook-Access 应用程序的访问。
为被拒绝或拒绝的信息流创建重定向消息,以通知用户其请求的状态。
创建默认策略以允许剩余流量。
配置
CLI快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit]
commit
set security dynamic-application profile profile1 redirect-message type custom-text content "THIS APPLICATION IS BLOCKED" set security policies from-zone trust to-zone untrust policy policy-1 match source-address any set security policies from-zone trust to-zone untrust policy policy-1 match destination-address any set security policies from-zone trust to-zone untrust policy policy-1 match application any set security policies from-zone trust to-zone untrust policy policy-1 match dynamic-application junos:YAHOO-MAIL set security policies from-zone trust to-zone untrust policy policy-1 match dynamic-application junos:FACEBOOK-ACCESS set security policies from-zone trust to-zone untrust policy policy-1 then reject profile profile1 set security policies default-policy permit-all set security zones security-zone trust host-inbound-traffic system-services all set security zones security-zone trust interfaces ge-0/0/0.0 set security zones security-zone untrust host-inbound-traffic system-services all set security zones security-zone untrust interfaces ge-0/0/1.0 set interfaces ge-0/0/0 unit 0 family inet address 4.0.0.254/24 set interfaces ge-0/0/1 unit 0 family inet address 5.0.0.254/24
程序
逐步过程
逐步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何操作的说明,请参阅 CLI 用户 指南 中的 在配置模式下CLI编辑器 。
要使用动态应用程序配置统一策略:
配置安全区域和接口。
[edit]
user@host#
set security zones security-zone trust host-inbound-traffic system-services alluser@host#
set security zones security-zone trust interfaces ge-0/0/0.0user@host#
set security zones security-zone untrust host-inbound-traffic system-services alluser@host#
set security zones security-zone untrust interfaces ge-0/0/1.0user@host#
set interfaces ge-0/0/0 unit 0 family inet address 4.0.0.254/24user@host#
set interfaces ge-0/0/1 unit 0 family inet address 5.0.0.254/24创建重定向配置文件。
[edit]
user@host#
set security dynamic-application profile profile1 redirect-message type custom-text content "THIS APPLICATION IS BLOCKED"创建安全策略,将动态应用程序作为匹配标准。
[edit]
user@host#
set security policies from-zone trust to-zone untrust policy policy-1 match source-address anyuser@host#
set security policies from-zone trust to-zone untrust policy policy-1 match destination-address anyuser@host#
set security policies from-zone trust to-zone untrust policy policy-1 match application anyuser@host#
set security policies from-zone trust to-zone untrust policy policy-1 match dynamic-application junos:YAHOO-MAILuser@host#
set security policies from-zone trust to-zone untrust policy policy-1 match dynamic-application junos:FACEBOOK-ACCESSuser@host#
set security policies from-zone trust to-zone untrust policy policy-1 then reject profile profile1创建默认策略以允许剩余流量。
[edit]
user@host#
set security policies default-policy permit-all
结果
在配置模式下,输入 命令以确认 show security policies
您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。
[edit]
user@host#
show security dynamic-application { profile profile1 { redirect-message { type { custom-text { content "THIS APPLICATION IS BLOCKED"; } } } } } policies { from-zone trust to-zone untrust { policy policy-1 { match { source-address any; destination-address any; application any; dynamic-application [junos:YAHOO-MAIL junos:FACEBOOK-ACCESS ]; } then { reject { profile profile1; } } } } default-policy { permit-all; } } zones { security-zone trust { host-inbound-traffic { system-services { ping; } } interfaces { ge-0/0/0.0; } } security-zone untrust { host-inbound-traffic { system-services { ping; } } interfaces { ge-0/0/1.0; } } }
[edit]
user@host#
show interfaces ge-0/0/0 { unit 0 { family inet { address 4.0.0.254/24; } } } ge-0/0/1 { unit 0 { family inet { address 5.0.0.254/24; } } } fxp0 { unit 0 { family inet { address 10.102.70.185/24; } } }
如果完成设备配置,请从配置 commit
模式输入 。
验证
使用以下过程验证策略配置是否。
验证策略操作
目的
验证统一策略是否阻止了配置的应用程序。
行动
从 Web 浏览器尝试访问应用程序。例如 Yahoo-Mail。系统显示重定向消息,如以下图像所示。
意义
只要安全策略根据动态应用程序拒绝流量,输出就会显示您配置在动态应用程序配置文件中的重定向消息。
验证统一策略配置
目的
验证统一策略配置正确。
行动
在操作模式下,输入 show security policies detail
命令以显示设备上所有安全策略的详细摘要。
user@host>
show security policies detail Default policy: permit-all Pre ID default policy: permit-allPolicy: policy-1, action-type: reject,
State: enabled, Index: 7, Scope Policy: 0 Policy Type: Configured Sequence number: 1 From zone: trust, To zone: untrust Source vrf group: any Destination vrf group: any Source addresses: any-ipv4(global): 0.0.0.0/0 any-ipv6(global): ::/0 Destination addresses: any-ipv4(global): 0.0.0.0/0 any-ipv6(global): ::/0 Application: any IP protocol: 0, ALG: 0, Inactivity timeout: 0 Source port range: [0-0] Destination ports: [0-0] Dynamic Application:junos:FACEBOOK-ACCESS: 244
junos:YAHOO-MAIL: 236
dynapp-redir-profile: profile1(1)
Per policy TCP Options: SYN check: No, SEQ check: No, Window scale: No
意义
输出显示有关安全策略的信息。验证以下信息:
配置的策略名称 policy-1 和策略操作拒绝。
配置动态应用程序 junos:FACEBOOK-ACCESS 和 junos:YAHOO-MAIL。
重定向配置文件配置文件1。
传统应用程序防火墙
本主题包括以下章节:
了解应用程序防火墙的工作原理
您可以利用现有安全策略对流量实施传统防火墙控制,因此您可以利用 AppFW 模块基于应用程序签名阻止某些应用程序流量,同时允许其他 HTTP 流量通过防火墙。
配置 AppFW 后,安全设备按以下顺序处理流量:
安全策略与策略中指定的区域对匹配。
安全策略匹配具有匹配条件的数据包(源和目标 IP 地址、源和目标端口以及应用程序类型)
安全策略将以下操作之一应用于匹配信息流。
拒绝 — 通知客户端、丢弃流量并记录事件。
拒绝 — 丢弃流量并记录事件。
允许 — 打开会话、记录事件并应用指定服务。
调用应用程序服务以检索流量的应用程序 ID。
应用指定的应用程序防火墙规则集。
注意:如果您使用 20.1 Junos OS版本并配置了基于 HTTP 的自定义应用程序签名,传统应用程序防火墙重定向操作可能对 HTTPS 流量不起作用。安全设备将拒绝或拒绝该流量,而非重定向 HTTPS 流量。
注意:转发之前,在安全设备上接收的所有 IP 分片数据包都必须重新组合。
应用程序防火墙规则集和规则
配置应用程序防火墙时,请考虑以下事项:
您可以将一个 AppFW 规则集应用于多个不同的安全策略。
您可以在逻辑系统内配置 AppFW。
您可以在一个规则中配置多个动态应用程序,在规则集内配置多个规则。但是,规则集和规则的整体数量有限制。
您可以将动态应用程序组配置为规则中的匹配标准。一个应用程序组包含多个相关应用程序。有关详细信息,请参阅 应用程序标识的预定义和自定义应用程序组。
默认规则定义与任何规则不匹配的任何信息流所需的操作。因此,AppFW 规则集必须包含一个默认规则。
ALG 应用防火墙
在安全设备上启用 ALG 时,应用程序标识包括 ALG 结果,用于识别控制会话中的应用程序。只要允许控制会话,AppFW 就会允许进行 ALG 数据会话。如果控制会话被拒,则没有数据会话。如果禁用 ALG,应用程序识别依靠签名在控制和数据会话中识别应用程序。如果未找到签名匹配,则应用程序被视为未知。AppFW 基于应用程序识别结果处理应用程序。
未知应用程序
应用程序识别使用 ID junos:UNKNOWN 对未知动态应用程序分类。以下情况下,AppID 使用保留的关键字 junos:UNKNOWN
流量与数据库中的应用程序签名不匹配。
系统在识别应用程序时遇到错误。
该会话会故障地故障地连接到另一台设备。
应用程序 ID 为 junos:UNKNOWN 的流量与 junos:UNKNOWN 的动态应用程序匹配规则。如果没有为 junos:UNKNOWN 定义规则,将应用默认规则。
应用程序防火墙的会话日志记录
您可以通过在安全策略下启用日志选项来记录流量。在将 AppFW 配置为表 1 中的给定配置时,检查日志消息时,请注意 以下事项:
安全策略操作 |
日志创建 |
更多详情 |
---|---|---|
许可证 |
创建会话并记录会话创建消息 |
即使应用 AppFW 规则之前,安全策略允许操作也创建会话,日志消息将包含以下更新之一:
|
拒绝/拒绝 |
日志拒绝或拒绝消息,但不创建会话。 |
当 AppFW 规则拒绝或拒绝信息流时,日志消息在原因字段中包含以下短语之一:
|
机箱群集中的应用程序防火墙支持
如果安全设备进入机箱群集模式,则故障转移之前和之后 AppFW 操作取决于应用程序识别状态,如 表 2 所示。
故障切换之前 |
故障切换后 |
||
---|---|---|---|
应用程序 ID 状态 | 应用程序防火墙操作 | 应用程序 ID 状态 | 应用程序防火墙操作 |
成功 |
否认 |
成功 |
否认 |
成功 |
许可证 |
成功 |
许可证 |
等待 |
— |
未知 |
基于为未知应用程序定义的规则的操作 如果没有为未知规则定义,则应用默认规则 |
将安全设备设置在机箱群集模式下时,请注意以下几点:
启用应用程序识别时,匹配前状态应用程序 ID 不会同步到其他节点。如果存在仍然处于分类之中的任何故障切换会话,则不会分配任何应用程序 ID。这可能会导致应用程序统计数据和计数器不匹配。
由于缺乏机箱群集基础架构支持,不支持不工作的软件升级(统一 ISSU)。 因此,故障切换事件通过应用程序防火墙策略控制,允许或拒绝未知动态应用程序。
另请参阅
在应用程序防火墙中创建重定向
当 AppFW 拒绝或拒绝信息流时,不会通知客户端采取此类操作。如果客户端不知道其请求被拒绝,可能会一直尝试访问该网页。为了减轻这种不便,Junos OS允许您解释操作,或将客户端重定向到内容丰富的网页。以下示例将向您展示如何创建重定向消息。
使用阻止消息重定向
将 block-message
选项用于 reject
deny
AppFW 规则中的 或 操作。
..... rule 1 { match { dynamic-application junos:FACEBOOK-CHAT } then { reject { block-message; } } } .....
当 AppFW 拒绝流量时,初始屏幕会向用户显示以下默认消息:
user-name, Application Firewall has blocked your request to application FACEBOOK-CHAT at dst-ip:dst-port accessed from src-ip:src-port.
自定义重定向消息
您可以自定义重定向操作,例如,在初始屏幕上显示有其他文本,或者指定您可以将用户重定向至的 URL。要自定义阻止消息,您必须在层级创建块消息配置文件,并定义类型和内容 [edit security application-firewall]
,如以下示例中所示。
... profile Redirect-Profile { block-message { type { custom-text { content "YOUR APPLICATION IS BLOCKED AS PER THE ORGANIZATION POLICY"; } } } } ...
接下来,在 AppFW 规则集内引用块消息配置文件,然后使用 选项应用到一个或多个 block-message
规则;
rule-sets Ruleset-1 { rule 1 { match { dynamic-application junos:FACEBOOK-CHAT; } then { reject { block-message; } } } profile Redirect-Profile; }
在这种情况下,AppFW 会显示配置的阻止消息,只要它基于配置的规则拒绝流量。
使用 URL 自定义重定向消息
当 AppFW 拒绝或重定向信息流时,您可以将客户端重定向到指定的网页,以执行进一步操作。URL 可托管在 SRX 系列设备上或外部服务器上。
您可以将阻止消息类型配置为自定义重定向 url(如下例所示)来设置到其他服务器的重定向:
profile Redirect-Profile { block-message { type { custom-redirect-url { content http://abc.company.com/information; } } } }
接下来,在 AppFW 规则集内引用块消息配置文件,然后使用以下示例中所示的选项应用于一 block-message
个或多个规则:
rule-sets Ruleset-1 { rule 1 { match { dynamic-application junos:FACEBOOK-CHAT; } then { reject { block-message; } } } profile Redirect-Profile; }
在这种情况下,AppFW 会根据配置的规则拒绝 http://abc.company.com/information 将使用重定向到 URL 或 URL。
示例:配置应用程序防火墙
此示例演示如何在安全策略内配置应用程序防火墙规则集。
开始之前
安装在 SRX 系列设备上的有效应用程序识别功能许可证。请参阅 管理 Junos OS 许可证。
下载并安装 Junos OS签名包。 下载和安装 Junos OS签名包。
系统要求
带 Junos OS 或 15.1X49-D60 的 SRX 系列设备。本配置示例针对版本Junos OS进行了15.1X49-D60。
概述
此示例将针对以下两种常见情景创建应用程序防火墙,如表 3 中所述。
目标 |
要遵循的步骤 |
结果 |
---|---|---|
阻止特定应用程序并允许其他应用程序 |
配置安全策略以允许 HTTP 流量。 |
安全策略根据匹配指定的第 3 层或第 4 层标准允许或丢弃信息流。 |
使用以下选项配置 AppFW 规则集:
|
AppFW 根据应用程序 ID 评估第 7 层允许的流量。 |
|
请参阅安全策略中设置的 AppFW 规则。 |
|
|
允许特定应用程序并阻止其他应用程序 |
配置安全策略以允许 HTTP 流量。 |
安全策略根据匹配指定的第 3 层或第 4 层标准允许或丢弃信息流。 |
使用以下选项配置 AppFW 规则集:
|
AppFW 根据应用程序 ID 评估第 7 层允许的流量。 |
|
请参阅安全策略中设置的 AppFW 规则。 |
|
在所有 SRX 系列设备上,有关服务AppSecure页面只是初步内容。建议使用 CLI 配置 AppSecure 功能。
配置
应用程序防火墙规则,以显式拒绝某些应用程序并允许所有其它项
此示例将阻止动态应用程序 junos:FACEBOOK-CHAT junos:FACEBOOK-FARMVILLE 并允许剩余流量。
CLI快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit]
commit
set security policies from-zone untrust to-zone trust policy policy1 match source-address any set security policies from-zone untrust to-zone trust policy policy1 match destination-address any set security policies from-zone untrust to-zone trust policy policy1 match application junos-http set security policies from-zone untrust to-zone trust policy policy1 then permit application-services application-firewall rule-set rs1 set security application-firewall rule-sets rs1 rule r1 match dynamic-application [junos:FACEBOOK-CHAT,junos:FACEBOOK-FARMVILLE ] set security application-firewall rule-sets rs1 rule r1 then deny set security application-firewall rule-sets rs1 default-rule permit
逐步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何操作的说明,请参阅 CLI 指南。
要配置两个安全策略以及允许或拒绝不同动态应用程序的流量的应用程序防火墙规则集:
定义应用程序防火墙规则集以拒绝来自所选动态应用程序的流量。
[edit security application-firewall rule-sets rs1] user@host# set rule r1 match dynamic-application [junos:FACEBOOK-CHAT,junos:FACEBOOK-FARMVILLE] user@host# set rule r1 then deny user@host# set default-rule permit
配置安全策略以允许 HTTP 流量并调用应用程序防火墙规则集 rs1。
[edit security policies from-zone untrust to-zone trust policy policy1] user@host# set match source-address any user@host# set match destination-address any user@host# set match application junos-http user@host# set then permit application-services application-firewall rule-set rs1
结果
在配置模式下,输入 和 命令以确认 show security policies
您的 show security application-firewall
配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。
[edit] user@host# show security policies from-zone untrust to-zone trust { policy 1 { match { source-address any; destination-address any; application junos-http; } then { permit { application-services { application-firewall { rule-set rs1; } } } } } } user@host# show security application-firewall rule-sets rs1 { rule r1 { match { dynamic-application [junos:FACEBOOK-CHAT,junos:FACEBOOK-FARMVILLE]; } then { deny; } } default-rule { permit; } }
如果完成设备配置,请从配置 commit
模式输入 。
应用程序防火墙规则,明确允许特定应用程序并拒绝所有其它项
此示例将允许动态应用程序 junos:FACEBOOK-ACCESS 并阻止剩余流量。
CLI快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit]
commit
set security policies from-zone untrust to-zone trust policy policy2 match source-address any set security policies from-zone untrust to-zone trust policy policy2 match destination-address any set security policies from-zone untrust to-zone trust policy policy2 match application any set security policies from-zone untrust to-zone trust policy policy2 then permit application-services application-firewall rule-set rs2 set security application-firewall rule-sets rs2 rule r1 match dynamic-application [junos:FACEBOOK-ACCESS junos:UNKNOWN] set security application-firewall rule-sets rs2 rule r1 then permit set security application-firewall rule-sets rs2 default-rule deny
逐步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何操作的说明,请参阅 CLI 指南。
要配置两个安全策略以及允许或拒绝不同动态应用程序的流量的应用程序防火墙规则集:
配置安全策略以处理未通过应用程序防火墙规则集 rs2 进入 HTTP 静态端口的任何流量。
[edit security policies from-zone untrust to-zone trust policy policy2] user@host# set match source-address any user@host# set match destination-address any user@host# set match application junos:http user@host# set then permit application-services application-firewall rule-set rs2
定义应用程序防火墙规则集,以允许来自选定动态应用程序的流量。
[edit security application-firewall rule-sets rs2] user@host# set rule r1 match dynamic-application [junos:FACEBOOK-ACCESS, junos:UNKNOWN] user@host# set rule r1 then permit user@host# set default-rule deny
结果
在配置模式下,输入 和 命令以确认 show security policies
您的 show security application-firewall
配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。
[edit] user@host# show security policies from-zone untrust to-zone trust { policy 2 { match { source-address any; destination-address any; application junos:http; } then { permit { application-services { application-firewall { rule-set rs2; } } } } } } user@host# show security application-firewall rule-sets rs2 { rule r1 { match { dynamic-application [junos:FACEBOOK-ACCESS, junos:UNKNOWN]; } then { permit; } } default-rule { deny; } }
如果完成设备配置,请从配置 commit
模式输入 。
示例:使用应用程序组配置应用程序防火墙
应用程序识别 (AppID) 模块管理预定义的应用程序组。应用程序组在单个名称下包括相关应用程序,从而在任何应用程序服务中使用时简化和一致的重用。一个应用程序组可以同时包含多个应用程序和应用组。可以将一个应用程序分配给多个组。
您可以将 AppFW 规则指定为匹配标准,以允许或拒绝信息流。
使用预定义应用程序组的优势是 - 随着应用程序签名数据库变更,预定义的应用程序组将自动修改以包含新签名。在这种情况下,如果已有预先定义应用程序组的 AppFW 规则,在应用程序组中添加新签名不会影响现有 AppFW 规则。
此示例演示如何在 AppFW 规则集内配置应用程序组。
开始之前
在 SRX 系列设备上安装有效的应用程序识别功能许可证。请参阅 管理 Junos OS 许可证。
下载并安装 Junos OS签名包。 下载和安装 Junos OS 应用程序签名包。
系统要求
带更新版本Junos OS或15.1X49-D60的 SRX 系列设备。本配置示例针对版本Junos OS进行了15.1X49-D60。
概述
此示例将配置安全策略以控制从信任区域到不信任区域出站流量。接下来,您创建一个 AppFW 规则以允许特定应用程序流量(junos:GOOGLETALK),但使用应用程序组拒绝所有其他已知的类似应用程序流量(社交网络流量)。
请注意 AppFW 规则的顺序非常重要,因为预定义的组 junos:社交网络包括 junos:GOOGLETALK 应用程序。要允许 junos:GOOGLETALK 流量并拒绝组的其余部分,必须先将允许 junos:GOOGLETALK 流量的规则放在拒绝来自组中其余应用程序的流量的规则之前。
配置
程序
CLI快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit]
commit
set security application-firewall rule-sets social-network rule google-rule match dynamic-application junos:GOOGLETALK set security application-firewall rule-sets social-network rule google-rule then permit set security application-firewall rule-sets social-network rule denied-sites match dynamic-application-groups junos:social-networking set security application-firewall rule-sets social-network rule denied-sites match dynamic-application junos:UNKNOWN set security application-firewall rule-sets social-network rule denied-sites then deny set security application-firewall rule-sets social-network default-rule permit set security policies from-zone trust to-zone untrust policy outbound-traffic match source-address any set security policies from-zone trust to-zone untrust policy outbound-traffic match destination-address any set security policies from-zone trust to-zone untrust policy outbound-traffic match application junos:HTTP set security policies from-zone trust to-zone untrust policy outbound-traffic then permit application-services application-firewall rule-set social-network
逐步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何操作的说明,请参阅 在配置CLI使用编辑器 。
要配置出站流量的应用程序防火墙规则集和安全策略:
创建规则集社交网络。
[edit] user@host# set security application-firewall rule-sets social-network
定义允许 Google-Talk 流量的规则。
[edit security application-firewall rule-sets social-network] user@host# set rule google-rule match dynamic-application junos:GOOGLETALK user@host# set rule google-rule then permit
定义拒绝来自未知应用程序的所有其他社交网络信息流和流量的第二条规则。
[edit security application-firewall rule-sets social-network] user@host# set rule denied-sites match dynamic-application-groups junos:social-networking user@host# set rule denied-sites match dynamic-application junos:UNKNOWN user@host# set rule denied-sites then deny
请注意,规则序列非常重要。在使用 junos:社交网络规则之前,您必须使用 junos:GOOGLETALK 来规定规则。否则,AppFW 规则会拒绝甚至沿 junos:社交网络的 GOOGLETALK 流量。
定义允许所有其他信息流的默认规则。
[edit security application-firewall rule-sets social-network] user@host# user@host# set default-rule permit
配置出站流量策略,以将社交网络规则集应用于所有出站流量。
[edit security policies from-zone trust to-zone untrust policy outbound-traffic] user@host# set match source-address any user@host# set match destination-address any user@host# set match application junos:HTTP user@host# set then permit application-services application-firewall rule-set social-network
结果
在配置模式下,输入 和 命令以确认 show security application-firewall
show security policies
您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以更正配置。
[edit] user@host# show security application-firewall ... rule-sets social-network { rule google-rule { match { dynamic-application junos:GOOGLETALK; } } then { permit ; } rule denied-sites { match { dynamic-application-groups junos:social-networking dynamic-application junos:UNKNOWN; } then { deny ; } } default-rule { permit; } } ...
[edit] user@host# show security policies from-zone untrust to-zone trust { ... policy outbound-traffic { match { source-address any; destination-address any; application junos-http; } then { permit { application-services { application-firewall { rule-set social-network } } } } } ... }
如果完成设备配置,请从配置 commit
模式输入 。
验证
验证应用程序防火墙配置
目的
根据应用程序防火墙策略验证有关应用程序分组支持的信息。
行动
要验证应用程序分组启用的应用程序防火墙策略配置,请在操作模式下输入
show security policies
和show security policies detail
命令。要验证设备上配置的所有应用程序防火墙规则集,请在操作模式下输入
show security application-firewall rule-set all
命令。要验证应用程序组内定义的应用程序列表,请在操作模式下输入
show services application-identification application-group application-group-name
命令。
示例:在启用 SSL 代理时配置应用程序防火墙
此示例介绍如何在启用 SSL 代理时配置 AppFW。
对于 application junos-https ,SSL 代理会基于为该会话识别的动态应用程序检测 SSL 会话。如果任何已知 Web 服务器运行非标准端口,您可以使用自定义 Junos OS 应用程序识别应用程序。但是,如果 Web 服务器未知,例如在互联网上,您可以使用 application any 。SSL 代理将忽略跨策略规则的非 SSL 会话。系统日志SSL_PROXY_SESSION_IGNORE这些会话发送。瞻博网络使用应用程序"任意"时小心,因为这可能会导致大量流量,从而导致初始 SSL 代理处理,从而影响性能。
如果未配置任何服务(AppFW、IDP 或 AppTrack),当 SSL 代理配置文件连接到安全规则时,安全设备将绕过 SSL 代理服务
要求
开始之前:
在 SRX 系列设备上安装有效的应用程序识别功能许可证。请参阅 管理 Junos OS 许可证。
下载并安装 Junos OS签名包。 下载和安装 Junos OS签名包。
创建一个应用(或应用程序集),表明策略适用于该类型的流量。请参阅 示例:配置安全策略应用程序和应用程序集。
创建通过策略方式启用 SSL 代理的 SSL 代理配置文件。请参阅 配置 SSL 转发代理。
系统要求
带 Junos OS 或15.1X49-D60的 SRX 系列设备。本配置示例针对版本Junos OS进行了15.1X49-D60。
概述
此示例使用 AppFW 规则集配置两个安全策略,以允许或拒绝纯文本或加密流量的流量:
允许 Oracle 的加密版本并拒绝其他任何加密的信息流。
允许所有 HTTP 流量,Hulu 除外。
配置
CLI快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit]
commit
set security policies from-zone Z_1 to-zone Z_2 policy policy1 match source-address any set security policies from-zone Z_1 to-zone Z_2 policy policy1 match destination-address any set security policies from-zone Z_1 to-zone Z_2 policy policy1 match application junos-https set security policies from-zone Z_1 to-zone Z_2 policy policy1 then permit application-services application-firewall rule-set appfw-rs-1 set security policies from-zone Z_1 to-zone Z_2 policy policy1 then permit application-services ssl-proxy profile-name ssl-profile-1 set security policies from-zone Z_1 to-zone Z_2 policy policy2 match source-address any set security policies from-zone Z_1 to-zone Z_2 policy policy2 match destination-address any set security policies from-zone Z_1 to-zone Z_2 policy policy2 match application junos-http set security policies from-zone Z_1 to-zone Z_2 policy policy2 then permit application-services application-firewall rule-set appfw-rs-2 set security application-firewall rule-sets appfw-rs-1 rule rule1 match dynamic-application [junos:ORACLE] set security application-firewall rule-sets appfw-rs-1 rule rule1 then permit set security application-firewall rule-sets appfw-rs-1 default-rule deny set security application-firewall rule-sets appfw-rs-2 rule rule1 match dynamic-application [junos:HULU] set security application-firewall rule-sets appfw-rs-2 rule rule1 then deny set security application-firewall rule-sets appfw-rs-2 default-rule permit
程序
逐步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何操作的说明,请参阅 CLI 指南。
配置安全策略,以使用 AppFW 规则集和 SSL 代理配置文件处理流量。
[edit security policies from-zone Z_1 to-zone Z_2 policy policy1 user@host# set match source-address any user@host# set match destination-address any user@host# set match application junos-https user@host# set then permit application-services application-firewall rule-set appfw-rs-1 user@host# set then permit application-services ssl-proxy profile-name ssl-profile-1
使用 AppFW 规则集配置另一个安全策略。
[edit security policies from-zone Z_1 to-zone Z_2 policy policy2 user@host# set match source-address any user@host# set match destination-address any user@host# set match application junos-http user@host# set then permit application-services application-firewall rule-set appfw-rs-2
定义 AppFW 规则集,以允许 Oracle 流量的加密版本并拒绝任何其他加密流量。
[edit security application-firewall rule-sets appfw-rs1] user@host# set rule rule1 match dynamic-application [junos:ORACLE] user@host# set rule rule1 then permit user@host# set default-rule deny
定义另一个 AppFW 规则集,以允许除了 Hulu 之外的所有纯文本流量。
[edit security application-firewall rule-sets appfw-rs2] user@host# set rule rule1 match dynamic-application [junos:HULU] user@host# set rule rule1 then deny user@host# set default-rule permit
结果
在配置模式下,输入 和 命令以确认 show security policies
show security application-firewall
您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。
如果完成设备配置,请从配置 commit
模式输入 。
验证启用 SSL 代理的策略中的应用程序防火墙
目的
在策略中启用 SSL 代理时,验证应用程序是否正确配置。
行动
在操作模式下,输入 show security policies
命令。
以下输出显示 命令 show security flow session
的选项。
user@host> show security flow session ?
Possible completions: <[Enter]> Execute this command application Application protocol name application-firewall Show application-firewall sessions application-firewall-rule-set Show application firewall sessions matching rule-set name brief Show brief output (default) destination-port Destination port (1..65535) destination-prefix Destination IP prefix or address dynamic-application Dynamic application name extensive Show detailed output + encrypted Show encrypted traffic family Show session by family idp Show idp sessions interface Name of incoming or outgoing interface nat Show sessions with network address translation protocol IP protocol number resource-manager Show sessions with resource manager session-identifier Show session with specified session identifier source-port Source port (1..65535) source-prefix Source IP prefix or address summary Show output summary tunnel Show tunnel sessions | Pipe through a command
要显示 SSL 加密的 UNKNOWN 会话,请使用 show security flow session application-firewall dynamic-application junos:SSL extensive
命令。
要显示所有 HTTPS 会话,请使用 show security flow session application-firewall dynamic-application junos:HTTP encrypted extensive
命令。