09-代理策略配置
本章节下载: 09-代理策略配置 (311.77 KB)
目 录
代理策略是一种安全防护策略,通过对客户端和服务器之间的连接进行代理,实现由设备对通过的流量进行检测和控制,避免由于直接访问而出现安全问题。
目前支持TCP代理和SSL代理功能。
如下图所示,设备作为TCP代理,分别与客户端和服务器之间建立TCP连接,为客户端和服务器之间提供TCP层隔离,有效地拦截恶意连接和攻击。
图1-1 TCP代理功能示意图
由于SSL流量是加密传输的,设备无法对加密的数据进行深度安全检测。配置SSL代理功能后,可解决以上问题。
图1-2 SSL代理功能示意图
如上图所示,设备根据代理策略判断需要对HTTPS客户端的报文进行SSL代理,并会分别与客户端和服务器建立SSL连接,然后对传输的报文先进行解密,再进行深度安全检测(即进行DPI业务处理)。完成深度安全检测后,对放行的报文重新进行加密,并发送到服务器。
有关DPI业务的详细介绍,请参见“DPI深度安全配置指导”。
· SSL代理服务器证书
设备作为SSL代理服务器时,需要向客户端发送证书表明自身的身份。设备将根据接收到的服务器证书的内容修改相关信息,重新签发一本代理服务器证书发送给客户端进行验证。
设备将替客户端验证服务器是否可信,验证结果不同,设备使用不同标识的代理服务器证书,代理服务器证书支持如下标识:
¡ 可信:当服务器可信时,设备将标识为“可信”的代理服务器证书发送给客户端,客户端接收到标识为可信的证书后,会通过服务器身份校验,与设备成功建立SSL连接。
¡ 不可信:当服务器不可信时,设备将标识为“不可信”的代理服务器证书发送给客户端,由客户端决定是否继续访问不可信的服务器。
· SSL解密证书
SSL解密证书是用于签发SSL代理服务器证书的CA证书。目前,SSL解密证书仅支持从外部导入。
SSL解密证书具有如下标识:
¡ 可信:用于签发可信的SSL代理服务器证书。
¡ 不可信:用于签发不可信的SSL代理服务器证书。
· SSL代理白名单
SSL代理白名单是指不需要进行SSL代理的网站域名或IP地址。配置SSL代理白名单功能后,设备将对网站服务器证书匹配SSL代理白名单的SSL连接不进行代理。
SSL代理白名单支持的类型如下:
¡ 预定义:设备已经预置的SSL代理白名单,支持域名白名单和IP地址白名单。
¡ 自定义:用户手工配置SSL代理白名单,仅支持域名白名单。
SSL代理功能是基于TCP代理功能实现的,当设备根据代理策略判断需要进行SSL代理时,先进行TCP代理,建立TCP连接,再进行如下的SSL代理(以客户端访问服务器为例):
图1-3 SSL代理原理图
(1) 设备接收到客户端发起的建立SSL连接请求。
(2) 设备作为代理客户端向服务器发起建立SSL连接请求。
(3) 服务器响应请求并发送服务器证书。
(4) 设备验证服务器证书的合法性,验证通过后与服务器协商加密算法等信息,完成SSL握手,成功建立SSL连接。
(5) 设备作为代理服务器,响应客户端请求,并根据服务器证书的内容,使用SSL解密证书自己签发SSL代理服务器证书,供客户端验证。
(6) 客户端完成对代理服务器证书的校验后,与设备完成SSL握手,建立SSL连接。
(7) 客户端、服务器和设备之间传输加密的SSL报文。
(8) 设备解密SSL流量,并进行DPI深度安全业务处理。
(9) 完成DPI业务处理后,设备将再次加密后的报文发往服务器。
代理策略对报文的控制是通过代理策略规则实现的,代理策略根据配置的代理策略规则对流量进行划分,对不同的流量进行不同代理方式的处理。规则中可以设置匹配报文的过滤条件以及处理报文的动作。
代理策略中的每条规则都由唯一的名称和编号标识。名称必须在创建规则时由用户手工指定;而编号既可以手工指定,也可以由系统自动分配。
每条规则中均可以配置多种过滤条件,具体包括:源安全域、目的安全域、源IP地址、目的IP地址、用户、用户组和服务。每种过滤条件中均可以配置多个匹配项,比如源安全域过滤条件中可以指定多个源安全域,任何一个匹配项被匹配成功则认为该过滤条件匹配成功。
设备缺省按照规则的创建顺序对报文进行匹配,先创建的先匹配,也可以通过手工的方式调整规则顺序。
建议将规划的所有规则按照“深度优先”的原则(即控制范围小的、条件细化的在前,范围大的在后)进行排序,再按照此顺序配置每一条规则。
设备将根据代理策略规则中配置的动作,对命中策略的流量进行如下处理:
· 动作配置为TCP代理时,设备将对命中策略的流量进行TCP代理。
· 动作配置为SSL解密时,设备将对命中策略的流量进行SSL代理,并基于此对SSL流量进行解密,并对解密后的流量进行DPI深度安全检测。
· 动作配置为不代理时,设备将对命中策略的流量进行透传。
代理策略对规则的匹配过程如图1-4所示:
代理策略对报文的处理过程如下:
(1) 将报文的属性信息与过滤条件中的匹配项进行匹配。每种过滤条件的多个匹配项之间是或的关系,即报文与某一个过滤条件中的任意一项匹配成功,则报文与此过滤条件匹配成功;若报文与某一个过滤条件中的所有项都匹配失败,则报文与此过滤条件匹配失败。
(2) 若报文与某条规则中的所有过滤条件都匹配成功(用户与用户组匹配一项即可),则报文与此条规则匹配成功。若有一个过滤条件不匹配,则报文与此条规则匹配失败,报文继续匹配下一条规则。以此类推,直到最后一条规则,若报文还未与规则匹配成功,则设备对此报文执行策略配置的缺省动作。
(3) 若报文与某条规则匹配成功,则结束此匹配过程,并对此报文执行规则中配置的动作。
· TCP代理与SSL代理对设备的转发性能会产生一定的影响。配置代理策略时,请尽量细化策略的过滤条件,避免配置过滤条件宽泛的代理策略,影响设备的正常转发。
· 如果同时需要配置SSL代理和TCP代理功能,配置代理策略规则时,请先配置动作为SSL解密的规则,避免因为先匹配到动作为TCP代理的规则导致SSL解密的规则匹配失败。
· 配置SSL代理功能时,需要在安全策略中允许源安全域和Local域互通。有关安全策略的详细介绍,请参见“安全配置指导”中的“安全策略”。
· 开启SSL代理后,IPS业务的捕获动作将失效。有关捕获动作的详细介绍,请参见“DPI深度安全配置指导”中的“IPS”。
代理策略的基本配置思路如图1-5所示,在配置代理策略之前需要完成的配置包括:创建安全域、配置接口并加入安全域、配置对象、配置安全策略、配置DPI业务。
代理策略配置任务如下:
(1) 配置代理策略规则
a. 配置代理策略缺省动作
b. 创建代理策略规则
c. 配置代理策略规则过滤条件
d. 配置代理策略规则动作
(2) (可选)管理代理策略规则
a. 移动代理策略规则
b. 禁用代理策略规则
(3) 配置SSL解密证书
仅当设备需要配置SSL代理功能时,才需要进行本配置。
a. 导入SSL解密证书
b. (可选)修改SSL解密证书可信度
c. (可选)删除SSL解密证书
(4) (可选)配置SSL代理域名白名单
a. 添加自定义域名白名单
b. 禁用预定义域名白名单
在配置代理策略之前,需完成以下任务:
· 配置IP地址对象组和服务对象组(请参见“安全配置指导”中的“对象组”)。
· 配置用户和用户组(请参见“安全配置指导”中的“用户身份识别与管理”)。
· 配置安全域(请参见“基础配置指导”中的“安全域”)。
· 配置安全策略(请参见“安全配置指导”中的“安全策略”)。
· 配置DPI业务(请参见“DPI深度安全配置指导”中的各模块)。
当不存在代理策略规则或报文未匹配到任何代理策略规则的情况下,设备将对所有经过的报文执行代理策略缺省动作。
(1) 进入系统视图。
system-view
(2) 进入代理策略视图。
app-proxy-policy
(3) 配置代理策略默认动作。
default action { no-proxy | ssl-decrypt | tcp-proxy }
缺省情况下,代理策略缺省动作为不代理。
(1) 进入系统视图。
system-view
(2) 进入代理策略视图。
app-proxy-policy
(3) 创建代理策略规则,并进入代理策略规则视图。
rule { rule-id | [ rule-id ] name rule-name }
缺省情况下,未配置代理策略规则。
当代理策略规则中未配置任何过滤条件时,则该规则将匹配所有报文。
当代理策略规则中引用的对象组不存在,或对象组中内容为空时,则该规则将不能匹配任何报文。
(1) 进入系统视图。
system-view
(2) 进入代理策略视图。
app-proxy-policy
(3) 进入代理策略规则视图。
rule { rule-id | [ rule-id ] name rule-name }
(4) 配置作为代理策略规则过滤条件的源安全域。
source-zone source-zone-name
缺省情况下,未配置源安全域过滤条件。
(5) 配置作为代理策略规则过滤条件的目的安全域。
destination-zone destination-zone-name
缺省情况下,未配置目的安全域过滤条件。
(6) 配置作为代理策略规则过滤条件的源IP地址。
source-ip object-group object-group-name
缺省情况下,未配置源IP地址过滤条件。
(7) 配置作为代理策略规则过滤条件的目的IP地址。
destination-ip object-group object-group-name
缺省情况下,未配置目的IP地址过滤条件。
(8) 配置作为代理策略规则过滤条件的服务。
service { object-group-name | any }
缺省情况下,未配置服务过滤条件。
(9) 配置作为代理策略规则过滤条件的用户。
user username [ domain domain-name ]
缺省情况下,未配置用户过滤条件。
(10) 配置作为代理策略规则过滤条件的用户组。
user-group user-group-name [ domain domain-name ]
缺省情况下,未配置用户组过滤条件。
(1) 进入系统视图。
system-view
(2) 进入代理策略视图。
app-proxy-policy
(3) 进入代理策略规则视图。
rule { rule-id | [ rule-id ] name rule-name }
(4) 配置代理策略规则动作。
action { no-proxy | ssl-decrypt | tcp-proxy }
缺省情况下,代理策略规则动作为不代理。
代理策略规则缺省按照其被创建的先后顺序进行匹配,为了使用户能够灵活调整规则的匹配顺序,可通过本功能来移动规则的位置,从而改变规则的匹配顺序。
(1) 进入系统视图。
system-view
(2) 进入代理策略视图。
app-proxy-policy
(3) 移动代理策略规则。
move rule rule-id before insert-rule-id
(1) 进入系统视图。
system-view
(2) 进入代理策略视图。
app-proxy-policy
(3) 进入代理策略规则视图。
rule { rule-id | [ rule-id ] name rule-name }
(4) 禁用代理策略规则。
disable
缺省情况下,代理策略规则处于启用状态。
设备上只能存在一份可信证书和一份不可信证书,后续导入的可信或者不可信证书会覆盖原有的证书。
需要在客户端浏览器上安装并信任标识为可信的SSL解密证书。
导入成功后,设备将修改证书文件类型为CER格式。
(1) 进入系统视图。
system-view
(2) 导入SSL解密证书。
app-proxy ssl-decrypt-certificate import { trusted | untrusted } { pem | p12 } filename filename
缺省情况下,未配置SSL解密证书。
设备中只能存在一份可信SSL解密证书和一份不可信SSL解密证书,若改变证书的可信度,则会覆盖原有的证书。
当SSL解密证书成功导入设备后,文件类型会被改为CER格式,修改证书时需要将指定的证书后缀名改为.cer。
(1) 进入系统视图。
system-view
(2) 修改SSL解密证书的可信度。
app-proxy ssl-decrypt-certificate modify { trusted | untrusted } filename filename
删除SSL解密证书后,设备将不能签发SSL代理服务器证书,从而导致客户端因无法验证服务器身份造成SSL代理连接失败,设备将直接透传报文。
当证书成功导入设备后,文件类型会被改为CER格式,删除证书时需要将指定的证书后缀名改为.cer。
(1) 进入系统视图。
system-view
(2) 删除SSL解密证书。
app-proxy ssl-decrypt-certificate delete filename filename
对于不需要或不能够以代理方式访问的服务器,可以将这些服务器的域名加入自定义域名白名单。设备对匹配白名单的所有SSL连接不进行代理。
在如下场景中,设备无法通过客户端或服务器的校验,不能进行SSL代理,需要配置SSL代理白名单,使设备直接透传报文:
· 服务器要求对客户端身份进行验证。
· 客户端要求对服务器证书做深度校验。
(1) 进入系统视图。
system-view
(2) 添加自定义域名白名单。
app-proxy ssl whitelist user-defined-hostname host-name host-name
缺省情况下,未配置自定义SSL代理域名白名单。
(1) 进入系统视图。
system-view
(2) 禁用预定义域名白名单。
undo app-proxy ssl whitelist predefined-hostname { chrome-hsts [ hostname ] | hostname } enable
缺省情况下,预定义SSL代理域名白名单处于启用状态。
需要激活SSL代理域名白名单配置的场景如下:
· 对自定义SSL代理域名白名单进行添加、修改和删除操作。
· 对预定义SSL代理域名白名单进行启用或禁用操作。
(1) 进入系统视图。
system-view
(2) 激活SSL代理域名白名单配置。
app-proxy ssl whitelist activate
在完成上述配置后,在任意视图下执行display命令可以显示代理策略的配置信息、配置白名单和相关证书,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除代理策略使用的IP地址白名单和相关证书。
表1-1 代理策略显示和维护
操作 |
命令 |
显示代理策略的配置信息 |
display app-proxy-policy |
显示SSL解密证书 |
display app-proxy ssl-decrypt-certificate |
显示服务器证书 |
display app-proxy server-certificate [ slot slot-number ] |
显示SSL代理域名白名单 |
display app-proxy ssl whitelist hostname { user-defined | predefined } |
显示SSL代理IP地址白名单 |
display app-proxy ssl whitelist ip { all [ slot slot-number ] | ip-address } |
清除服务器证书 |
reset app-proxy server certificate |
清除SSL代理IP地址白名单 |
reset app-proxy ssl whitelist ip |
某公司内网用户通过Device连接外网,所有内网主机均安装名为trust.pem的可信SSL解密证书。为了更好的防护内网用户安全,现有如下需求:
· 对所有HTTPS协议访问Web服务器的连接进行SSL解密。
· 对所有HTTP协议访问Web服务器的连接进行TCP代理。
图1-6 代理策略基本配置举例组网图
(1) 配置接口IP地址、路由保证网络可达,具体配置步骤略
(2) 配置安全域
# 创建名为trust的安全域,并将接口GigabitEthernet1/0/1加入该安全域中。
[Device] security-zone name trust
[Device-security-zone-trust] import interface gigabitethernet 1/0/1
[Device-security-zone-trust] quit
# 创建名为untrust的安全域,并将接口GigabitEthernet1/0/2加入该安全域中。
[Device] security-zone name untrust
[Device-security-zone-untrust] import interface gigabitethernet 1/0/2
[Device-security-zone-untrust] quit
(3) 配置对象
# 创建名为untrust的IP地址对象组,并配置其子网地址为192.168.1.0/24。
[Device] object-group ip address untrust
[Device-obj-grp-ip-untrust] network subnet 192.168.1.0 24
[Device-obj-grp-ip-untrust] quit
# 创建名为https的服务对象组,并配置其支持的服务为HTTPS。
[Device] object-group service https
[Device-obj-grp-service-web] service 6 destination eq 443
[Device-obj-grp-service-web] quit
# 创建名为http的服务对象组,并配置其支持的服务为HTTP。
[Device] object-group service http
[Device-obj-grp-service-web] service 6 destination eq 80
[Device-obj-grp-service-web] quit
(4) 配置SSL解密证书
# 导入名为trust.pem的可信SSL解密证书和名为untrust.pem的不可信SSL解密证书。
[Device] app-proxy ssl-decrypt-certificate import trust pem filename trust.pem
[Device] app-proxy ssl-decrypt-certificate import untrust pem filename untrust.pem
(5) 配置代理策略及规则
# 进入代理策略视图。
[Device] app-proxy-policy
# 创建名为https的代理策略规则,对所有通过HTTPS协议访问Web服务器的连接进行SSL解密。
[Device-app-proxy-policy] rule 1 name https
[Device-app-proxy-policy-rule-1-https] source-zone trust
[Device-app-proxy-policy-rule-1-https] destination-zone untrust
[Device-app-proxy-policy-rule-1-https] source-ip object-group trust
[Device-app-proxy-policy-rule-1-https] service object-group https
[Device-app-proxy-policy-rule-1-https] action ssl-decrypt
[Device-app-proxy-policy-rule-1-https] quit
# 创建名为http的代理策略规则,对所有通过HTTP协议访问Web服务器的连接进行TCP代理。
[Device-app-proxy-policy]rule 2 name http
[Device-app-proxy-policy-rule-2-http] source-zone trust
[Device-app-proxy-policy-rule-2-http] destination-zone untrust
[Device-app-proxy-policy-rule-2-http] source-ip object-group trust
[Device-app-proxy-policy-rule-2-http] service object-group http
[Device-app-proxy-policy-rule-2-http] action tcp-proxy
[Device-app-proxy-policy-rule-2-http] quit
(6) 配置安全策略并引用DPI业务(其中,源安全域均需要配置Local安全域,具体配置步骤略)
配置完成后,设备将对所有通过HTTPS协议访问Web服务器的连接进行SSL代理;对所有通过HTTP协议访问Web服务器的连接进行TCP代理。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!