网络中可能会有三种Telnet业务访问关系
入方向流量:从管理终端Telnet防火墙的接口地址,是访问防火墙的流量。
出方向流量:从防火墙Telnet服务器的地址,属于从防火墙发出的流量。
穿墙流量:从管理终端Telnet服务器的地址,是经过防火墙的穿墙流量。
配置
security-policy Telnet_in
rule name //设置安全策略名称
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 Telnet_out
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 Telnet_transmit
source-zone trust
destination-zone untrust
source-address 10.1.1.10 24
destinatoin-address 10.1.2.10 24
service telnet
action permit
FTP是多通道协议,客户端首先向服务端的21号端口发起连接请求,建立控制通道,然后客户端和服务端通过协商来确定数据通道的端口。根据FTP工作模式的不同,其协商过程也不同。
主动模式:客户端随机选择一个端口,发起PORT命令,通知服务端自己使用该端口来接收数据。服务端从20号端口向该端口发起新的连接。
被动模式:客户端发起PASV命令,服务端随机选择一个端口,通知客户端向该端口发起数据请求。
不管是哪种工作模式,数据通道使用的端口都是随机的。你无法为数据通道配置精确的安全策略。这个时候,你需要在安全域间启用ASPF功能来解决这个问题。
firewall interzone trust untrust
detect ftp
quit
ASPF只是解决数据通道的问题,你仍然需要为控制通道配置安全策略。
以FTP服务器(10.1.2.10)工作于主动模式为例,客户端(10.1.1.10)和服务器之间会建立两个会话。ftp表示控制通道会话,客户端主动访问服务器;ftp-data表示数据通道会话,服务器主动访问客户端。
TFTP是简单文件传输协议,其与FTP的主要不同之处在于:
TFTP基于UDP传输,使用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。
SSH是Secure Shell(安全外壳)的简称,是一种在不安全的网络环境中,通过加密机制和认证机制,实现安全的远程访问以及文件传输等业务的网络安全协议。STelnet是华为对SSH远程登录功能的叫法,以突出其相对Telnet的安全性。SCP即Secure Copy,SFTP即Secure FTP,都是基于SSH协议的文件传输协议。
Ping和Tracert是基于ICMP协议的常用网络诊断工具。ICMP即互联网控制消息协议(Internet Control Message Protocol),用于在IP网络中传递控制消息,如报告错误、交换状态信息等。这些消息为管理员诊断网络故障提供帮助。
为了正常的网络诊断需要,你可能需要允许防火墙主动Ping上下游设备,也可能需要允许上下游设备的Ping穿越防火墙。
但是,ICMP协议也经常被攻击者用来窥测网络或建立隐蔽通道。因此,如果你对安全性有更高的要求,可以自定义服务,仅开放特定类型的ICMP报文。
Ping需要使用两种类型的ICMP报文:Echo Request(Type 8)和Echo Reply(Type 0)。源端连续发送几个Echo Request报文,目的端收到之后,回送应答报文Echo Reply。如果在超时时间之内,应答报文到达源端,说明目的端可达。防火墙收到源端发出的Echo Request报文后,创建会话并转发报文,目的端返回的Echo Reply命中会话表转发。
一般来说,要允许内部特定主机Ping出站,以排除外部网络的故障。在某些情况下,也可能会允许受信任的合作伙伴Ping内部网络中的设备。
Tracert主要用来显示数据包到达目的主机所经过的路径。Tracert使用三种ICMP报文:Echo Reply(Type 0)、Echo Request(Type 8)和Time Exceeded(Type 11)
需要说明的是,以上工作过程仅适用于Windows系统下的Tracert。UNIX-like操作系统中对应的工具是Traceroute。Traceroute默认使用UDP报文探测目的地址,并且故意选择33434~33534之间的目的端口(通常首次探测使用33434,第二次使用33435,以此类推)。很多网络设备的处理方式与UNIX-like操作系统类似,例如华为防火墙、交换机产品,即以UDP报文发起探测。
网络工程师在定位故障时,既可能使用基于ICMP探测的Tracert,也可能使用基于UDP探测的Traceroute。因此,你还需要放行探测发起方的UDP 33434-33534报文。完整的安全策略如表所示。