防火墙和VPN技术与实践
上QQ阅读APP看书,第一时间看更新

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客户端)通信的端口。