1.2 配置安全策略
深刻理解和掌握业务内部的协议交互流程,对配置安全策略至关重要。开放安全策略的前提是足够了解业务,包括业务本身的基本原理(协议、端口、报文交互过程)、业务在网络中的访问关系(源/目的IP地址、源/目的安全区域)。本节提供了常见业务的配置指导,以此展示分析业务和配置安全策略的思路与方法。更多业务的安全策略配置,需要用户结合业务的实际情况自行分析。本书在介绍其他特性时,也会同步提供安全策略的配置方法。
1.2.1 为管理协议开放安全策略
管理协议指的是用于管理网络设备的协议,根据业务目的的不同,可以用于管理防火墙,也可以通过防火墙管理其他网络设备。对于管理防火墙的流量,大部分常用的管理协议都可以通过开启接口访问控制来放行。但是,接口访问控制不能控制流量来源,而管理协议直接关系到网络设备本身的安全。因此,强烈建议关闭接口访问控制功能,设置精确的安全策略,仅向特定发起方开放访问。
1. Telnet
常见的管理协议,如Telnet、SSH、FTP,具有相似的业务模型。图1-7以Telnet为例,展示了网络中可能存在的3种业务访问关系。

图1-7 3种业务访问关系——以Telnet为例
入方向(Inbound)流量: 从管理终端Telnet防火墙的接口地址,是访问防火墙的流量。
出方向(Outbound)流量: 从防火墙Telnet服务器的地址,属于从防火墙发出的流量。
穿墙(Transmit)流量: 从管理终端Telnet服务器的地址,是经过防火墙的穿墙流量。
3种流量对应的安全策略如下。请注意源/目的安全区域、源/目的地址所体现出来的访问关系差异。
security-policy rule name “Allow inbound traffic” //设置安全策略名称,带空格时需要使用引号 source-zone trust destination-zone local source-address 10.1.1.10 24 destinatoin-address 10.1.1.1 24 service telnet //指定开放的服务 action permit rule name “Allow outbound traffic” source-zone local destination-zone untrust source-address 10.1.2.1 24 destinatoin-address 10.1.2.10 24 service telnet action permit rule name “Allow transmit traffic” source-zone trust destination-zone untrust source-address 10.1.1.10 24 destinatoin-address 10.1.2.10 24 service telnet action permit
上述安全策略可以用表1-6的形式表示。为了节省篇幅,后续安全策略示例均采用表格形式介绍。
表1-6 安全策略示例——Telnet

2. FTP
FTP是多通道协议,客户端首先向服务器的端口21发起连接请求,建立控制通道。开放FTP控制通道的安全策略如表1-7所示。
表1-7 安全策略示例——FTP

建立控制通道以后,客户端和服务器通过协商来确定数据通道的端口。根据FTP工作模式的不同,其协商过程也不同。
主动模式: 客户端随机选择一个端口,发起PORT命令,通知服务器自己使用该端口来接收数据。服务器从端口20向该端口发起新的连接。
被动模式: 客户端发起PASV命令,服务器随机选择一个端口,通知客户端向该端口发起数据请求。
不管是哪种工作模式,数据通道使用的端口都是随机的,用户无法为数据通道配置精确的安全策略。这个时候,用户需要在安全区域之间启用ASPF功能来解决这个问题。
firewall interzone trust untrust detect ftp quit
以FTP服务器(10.1.2.10)工作于主动模式为例,客户端(10.1.1.10)和服务器之间会建立两个会话。如下所示,ftp表示控制通道会话,客户端主动访问服务器;ftp-data表示数据通道会话,服务器主动访问客户端。
<sysname> display firewall session-table Current Total Sessions : 2 ftp VPN :public-->public 10.1.1.10:64752+->10.1.2.10:21 //ftp表示此会话为ftp控制通道,+->表示该会话进入ASPF流程 ftp-data VPN:public-->public 10.1.2.10:20-->10.1.1.10:31050 //ftp-data表示此会话为FTP数据通道 <sysname> display firewall server-map Type: ASPF, 10.1.2.10 --> 10.1.1.10:31050, Zone: --- Protoco l:tcp(Appro:ftp-data),Left-Time:00:00:15 //ftp-data表示防火墙通过ASPF流程识别此数据流为FTP数据流 VPN: public --> public
3. TFTP
TFTP(Trivial File Transfer Protocol,简单文件传送协议)与FTP的主要不同之处在于:TFTP基于UDP(User Datagram Protocol,用户数据报协议)传输;使用端口69建立控制通道,因此,需要在安全策略中指定服务为tftp(UDP:69);TFTP跟FTP一样动态协商数据通道端口,但不是ASPF默认支持的协议,需要自定义配置。
acl 3000 rule permit udp destination-port eq 69 quit firewall interzone trust untrust detect user-defined 3000 outbound quit
其中, detect user-defined 3000 outbound 命令中,outbound表示客户端从高优先级的安全区域访问位于低优先级的安全区域的服务器,反之则为inbound。
4. SSH
Telnet、FTP、TFTP存在安全风险,建议使用SSH协议执行远程登录和文件传送。SSH是一种在不安全的网络环境中,通过加密机制和认证机制,实现安全的远程访问以及文件传送等业务的网络安全协议。STelnet是华为对SSH远程登录功能的叫法,以突出其相对于Telnet的安全性。SCP(SecureCopy,安全复制)协议和SFTP(Secure File Transfer Protocol,安全文件传送协议)都是基于SSH协议的文件传送协议。
SSH默认使用TCP端口22建立连接,也支持自定义端口,表1-8的安全策略以默认端口为例。
表1-8 安全策略示例——SSH

5. SNMP
SNMP是使用最广泛的网络管理协议。网管软件作为SNMP管理者,向被管设备中的SNMP代理发出管理操作的请求。被管设备在检测到异常时,也会通过SNMP代理主动向SNMP管理者发送Trap信息。也就是说,网管软件和被管设备都会主动发起连接,如图1-8所示。

图1-8 SNMP典型组网和业务访问关系
因此,用户需要开放两条安全策略,让网管软件可以主动管理设备,设备可以主动向网管软件发送Trap信息,设备上需要配置的安全策略如表1-9所示。
表1-9 安全策略示例——SNMP

6. NETCONF
NETCONF是一种基于XML(eXtensible Markup Language,可扩展标记语言)的网络管理协议,它提供了一种对网络设备进行配置和管理的可编程方法。
图1-9是NETCONF的典型组网。网管软件作为NETCONF客户端,向作为NETCONF服务器的设备发起连接请求,建立SSH连接,NETCONF会话就承载在SSH连接之上。RFC 6242规定,NETCONF服务器(被管设备)默认使用TCP 830端口接收NETCONF客户端的SSH连接请求。多数网络设备都提供了修改NETCONF over SSH的端口的方法,用户需要根据网络设备的配置,确定开放哪些端口。

图1-9 NETCONF典型组网图
另外,在某些场景中,被管设备需要主动向网管软件注册,即call-home。此时,被管设备主动向网管软件发起连接,需要开放相应方向的安全策略。NETCONF的安全策略示例如表1-10所示。
表1-10 安全策略示例——NETCONF

NETCONF使用不同传输协议时,采用不同的通信端口。当网络中有异构设备组网时,请务必确认其与网管软件(NETCONF客户端)通信的端口。
1.2.2 为路由协议开放安全策略
不同于路由器和交换机产品,默认情况下,防火墙的路由协议(包括OSPF和BGP)的单播报文受安全策略控制,用户需要为它们的单播报文配置安全策略。如果想要快速接入网络,用户也可以使用 undo firewall packet-filter basic-protocol enable 命令取消这个控制。不同型号、不同版本的防火墙产品,其基础协议控制开关的默认情况不同,控制的协议种类也不同。具体情况请参考产品文档。
1. OSPF
OSPF邻接关系的建立过程如图1-10所示。

图1-10 OSPF邻接关系建立过程
OSPF根据链路层协议类型,将网络分为4种类型。在不同类型网络中,建立邻接关系的过程中发送OSPF报文的方式也不同,如表1-11所示。对某一种网络类型来说,只要建立邻接关系的任何一个环节使用了单播报文,就需要开放安全策略。因此,当网络类型是Broadcast、NBMA(Non-Broadcast Multiple Access,非广播多路访问)和P2MP(Point-to-Multipoint,点到多点)时,都需要开放安全策略。
表1-11 OSPF报文发送方式

考虑到OSPF邻接关系建立的过程中,邻接双方都需要主动发出OSPF报文,因此,用户需要开放双向安全策略,如表1-12所示。在防火墙参与路由计算的场景下,安全策略的源/目的安全区域是local区域(设备自身)和接口所连接的区域。OSPFv3跟OSPF类似,两者的协议号都是89。
表1-12 安全策略示例——OSPF

如果未配置安全策略,或者安全策略配置错误,则不能成功交换DD报文、不能建立OSPF邻接关系,邻接状态将停留在ExStart状态。
2. BGP
BGP的运行是通过消息驱动的,共有Open、Update、Notification、Keepalive和Route-refresh等5种消息类型。邻接设备之间首先建立TCP连接,然后通过Open消息建立BGP对等体之间的连接关系,并通过Keepalive消息确认和保持连接的有效性。对等体之间通过Update、Notification和Route refresh消息交换路由信息、错误信息和路由刷新能力信息。
BGP所有消息交互都使用单播报文,需要开放双向安全策略,如表1-13所示。BGP使用TCP端口179。
表1-13 安全策略示例——BGP

1.2.3 为DHCP开放安全策略
同路由协议一样,DHCP默认情况下也受安全策略控制。如果想要快速接入网络,用户也可以使用 undo firewall packet-filter basic-protocol enable 命令取消这个控制。
DHCP组网中有3种角色:DHCP客户端、DHCP服务器和DHCP中继。当DHCP客户端和DHCP服务器位于不同网段时,需要部署DHCP中继。在不同的组网场景中,DHCP报文交互的流程略有不同,下面分别来看。
1. 同网段无DHCP中继场景
在同网段无DHCP中继场景中,DHCP报文交互过程如图1-11所示。

图1-11 DHCP报文交互流程——无DHCP中继场景
DHCP报文采用UDP封装。以DHCP客户端首次接入网络为例,其IP地址分配流程如下。
(1)DHCP Discover
DHCP客户端以广播方式发送DHCP Discover报文,源/目的地址分别为0.0.0.0和255.255.255.255,源/目的端口分别为68和67。DHCP客户端首次接入网络时,还没有获得过IP地址,也不知道DHCP服务器的地址,因此只能采用广播方式。在DHCP Discover报文中有一个Flag标志位,决定服务器以单播或广播方式发送响应报文,一般是单播方式(Broadcast Flag=0)。
(2)DHCP Offer
DHCP服务器收到DHCP Discover报文后,选择一个可用地址,通过DHCP Offer单播报文发送给DHCP客户端。此时报文中封装的目的IP地址是DHCP服务器提议分配给DHCP客户端的IP地址。
(3)DHCP Request
DHCP客户端仍然以广播方式发送DHCP Request报文,向选中的DHCP服务器请求使用的IP地址。报文中带有其选择的DHCP服务器标识符。当网络中有多个DHCP服务器时,广播DHCP Request可以通知所有DHCP服务器,未被选中的DHCP服务器也就可以更新提议的IP地址状态了。
(4)DHCP Ack
DHCP服务器通过DHCP Ack单播报文通知DHCP客户端,确认地址分配。
如果DHCP客户端非首次接入网络,可以申请曾经使用过的IP地址,则地址分配过程只有DHCP Request和DHCP Ack两个阶段。DHCP Request报文的源地址为当前IP地址。
当租期更新定时器到期时(租期的一半,即1800秒),DHCP客户端向DHCP服务器发送单播报文,申请更新租期。如果DHCP客户端不再使用当前地址,则发送DHCP Release单播报文,释放该IP地址。
在这个场景中,DHCP服务器和DHCP客户端都可能会主动发送单播报文。防火墙作为DHCP服务器时,安全策略配置示例如表1-14所示。
表1-14 安全策略示例——防火墙作为DHCP服务器

2. 不同网段带DHCP中继场景
DHCP客户端的广播报文不能穿越不同网段。当网络中有多个网段时,通常使用DHCP中继来解决这个问题,其报文交互过程如图1-12所示。

图1-12 DHCP报文交互流程——带DHCP中继场景
在地址分配阶段,DHCP客户端广播DHCP Discover和DHCP Request请求。DHCP中继接收到报文以后,修改报文的源/目的地址为出接口地址和DHCP服务器的地址,并填充IP中继地址,然后单播转发给DHCP服务器。DHCP服务器向DHCP中继单播发送DHCP Offer和DHCP Ack报文。DHCP中继与DHCP服务器通信时,源/目的端口都使用UDP端口67。
DHCP客户端在地址分配阶段已经获得DHCP服务器的地址。在后续的租期更新和地址释放过程中,DHCP客户端以单播报文直接向DHCP服务器发起连接,不需要DHCP中继代理。防火墙作为DHCP中继时,安全策略配置如表1-15所示。
表1-15 安全策略示例——防火墙作为DHCP中继
