首页 > 编程语言 >FTP主动模式和被动模式(2)- 防火墙对FTP的影响 ASPF

FTP主动模式和被动模式(2)- 防火墙对FTP的影响 ASPF

时间:2024-05-09 10:22:07浏览次数:16  
标签:FTP ASPF 被动模式 报文 端口 Device 连接 客户端

防火墙对FTP的影响 ASPF

多通道协议

应用层程序有些使用的是单通道协议,有些使用的是多通道协议。

  • 单通道协议

    例如http协议,整个协议交互过程中,服务端和客户端只建立一个连接,并且服务端固定使用一个端口,例如80端口,这种一般为单通道协议;

    防火墙一般都需要配置精细的安全策略对数据进行防护,针对这种单通道协议,例如http,只需要放行客户端的随机端口到服务器端的80端口就可以了,比较简单。

  • 多通道协议

    例如FTP协议,整个协议交互过程中,客户端和服务器端使用了两个独立的连接,控制连接和数据连接,控制连接服务器端使用了固定的端口21,但是数据连接则使用了随机的端口;

    防火墙针对这种多通道协议的数据连接则较难写安全策略,例如FTP的被动模式,客户端和服务器端的端口都是随机的,那防火墙就很难写精细的安全策略放行此类数据。

    常见的多通道协议有FTP,SIP,H323,RSTP,DNS,MSN,QQ,WeChat等;

ASPF和Server-map

ASPF(Application Specific Packet Filter,应用层的包过滤)是一种针对应用层的包过滤技术,也称为基于状态的报文过滤。

防火墙的ASPF技术配合server-map表项就用于解决多通道协议的数据连接策略,以FTP为例,上面已经了解,FTP有控制连接和数据连接,在控制连接上服务器端使用固定的端口21,防火墙是可以定义策略的,允许客户端的任意端口访问服务器端的TCP21端口即可,后续控制连接的其他报文会被识别为此控制连接的后续报文,允许通过,这样FTP的控制连接就可以正常建立了;

对于数据连接的主动模式,如果服务器端使用固定端口20的情况下,需要放行服务器端20端口到客户端任意端口的报文,对于客户端在防火墙内部的情况,这种策略是比较危险的,因为一般是不允许外部主动向内部发起访问的,而且对于服务器使用随机数据端口的场景,防火墙的策略则需要放行服务器端的任意端口到客户端的任意端口,显示这对于防火墙策略就更宽松了,很难达到防护的效果;

对于数据连接的被动模式,因为客户端的随机端口访问服务器端的随机端口,如果客户端在防火墙内部,则还可以写一下,但是策略依旧是很宽松的,对于客户端在防火墙外侧的场景,要放行外部客户端的任意端口访问内部服务器的任意端口,防火墙策略一般是不允许的。

总之,通过上面的描述可知,防火墙基于会话的安全策略机制在FTP这种多通道协议的场景是非常不友好的,如果写的严格一些,就会出现FTP的控制连接可以建立,但是数据无法传输的情况。那要如果解决呢?这就需要通过防火墙的ASPF机制和server-map结合来解决上述问题了。

还是以FTP为例,FTP的数据连接使用端口虽然是随机的,但是通过FTP原理的描述,我们知道这个随机端口是在控制协议中确定出来的,例如FTP主动模式的PORT命令和被动模式的PASV命令,都是为了确定数据连接中客户端的端口和服务器端的端口,而ASPF会监控FTP控制连接的报文,获取到PORT命令或PASV命令中的地址和端口信息,自动将这个信息写入到防火墙的Server-map表中,形成一条Server-map表项,后续的数据报文就会匹配到该表项,就无需再去匹配防火墙的策略和会话表,直接放行后续数据,这样数据连接就可以正常建立,而防火墙的安全策略只需要写第一个控制连接的报文即可。

防火墙的Server-map表如下,实现的就是自动生成的主动模式下的数据连接会话:

image

FTP主动模式下防火墙的实现

以FTP协议的主动模式(服务器主动访问客户端)为例,FW检测PORT命令报文的应用层信息,将应用层携带的IP地址和端口记录在Server-map表中。

FTP主动模式下,客户端使用随机端口xxxx向服务器的21端口发起连接请求建立控制通道,然后使用PORT命令协商两者建立数据通道的端口号,协商出来的端口是yyyy。然后服务器主动向客户端的yyyy端口发起连接请求,建立数据通道。数据通道建立成功后再进行数据传输。

在配置安全策略时,如果只配置了允许客户端访问服务器的21端口的安全策略,即控制连接能成功建立。但是当服务器访问客户端yyyy端口的报文到达FW后,对于FW来说,这个报文不是前一条连接的后续报文,而是代表着一条新的连接。要想使这个报文顺利到达FTP客户端,FW上就必须配置了安全策略允许其通过,如果没有配置服务器到客户端这个方向上的安全策略,该报文无法通过FW,导致数据通道建立失败。结果是用户能访问服务器,但无法请求数据。

如果通过安全策略解决此问题,数据通道使用的端口是在控制通道中临时协商出来的,具有随机性,无法精确预知,所以只能开放客户端的所有端口,这样就会给客户端带来安全隐患。ASPF功能正是为了解决此问题。

下图显示了主动模式下ASPF和server-map表的实现过程,由于PORT命令的应用层信息中携带了客户端的IP地址和向服务器随机开放的端口,FW通过分析PORT命令的应用层信息,提前预测到后续报文的行为方式,根据应用层信息中的IP和端口创建Server-map表。服务器向客户端发起数据连接的报文到达FW后命中该Server-map表项,不再受安全策略的控制。

image

server-map表项类似这样:

ftp-data  VPN:public->public  2.2.2.2:20 --> 1.1.1.1:yyyy

FTP被动模式下防火墙的实现

FTP被动模式下,客户端使用随机端口xxxx向服务器的21端口发起连接请求建立控制通道,然后使用PASV命令协商两者建立数据通道的端口号,协商出来的端口是yyyy。然后客户端主动向服务器的yyyy端口发起连接请求,建立数据通道。数据通道建立成功后再进行数据传输。

在配置安全策略时,如果只配置了允许客户端访问服务器的21端口的安全策略,即控制连接能成功建立。但是当客户端访问服务器yyyy端口的报文到达FW后,对于FW来说,这个报文不是前一条连接的后续报文,而是代表着一条新的连接。要想使这个报文顺利到达服务器,FW上就必须配置了安全策略允许其通过,如果没有配置客户端到服务器的yyyy端口的安全策略,该报文无法通过FW,导致数据通道建立失败。结果是用户能访问FTP服务器,但无法请求数据。

下图显示了主动模式下ASPF和server-map表的实现过程,由于PASV命令的应用层信息中携带了数据连接中客户端使用的ip地址和端口号,防火墙通过分析PASV命令中的参数,提前预测到后续报文的行为方式,根据应用层信息中的IP和端口创建Server-map表。后续客户端向服务器端发起的数据连接就会命中该server-map表项,不用查询防火墙的策略表就可以放行后续报文。

image

server-map表项类似这样:

ftp-data  VPN:public->public  1.1.1.1:aaaa --> 2.2.2.2:yyyy

端口识别

上面的ASPF+Server-map实现防火墙透传FTP报文的需求是针对标准的FTP灯多通道协议进行识别的,一般只有控制连接的端口号为TCP21才会被识别为FTP报文,进而被ASPF进行分析,但是在生产中我们有时出现安全考虑会把FTP是端口使用非标准端口,这就会导致ASPF无法识别这是FTP协议,无法生产数据连接的Server-map表现。

此时我们需要额外配置端口识别功能,让ASPF知道这就是FTP报文,进行数据连接的端口分析,使用方式如下:

  • 华为/华三

    # 把匹配acl 2000的报文,建立端口号31到FTP协议的映射
    acl 2000
     rule permit source 10.1.2.0 0.0.0.255
     exit
    port-mapping FTP port 31 acl 2000 
    

迈普ASPF配置示例

  • 需求:Device为连接内部网络与外部网络的边界设备,内网中的本地用户PC访问公网上的ftp服务器。在Device上配置ASPF策略,将设备报文入接口Gi0/2/0加入安全级别高的安全域,出接口Gi0/2/1加入安全级别低的安全域,ASPF和安全域协同工作,安全域之间的报文由安全策略进行安全检查,实现ftp多通道协议检测功能。

  • 拓扑:

image

  • 配置步骤:

    • 配置ASPF策略开启ftp数据通道检测功能。

      Device#configure terminal 
      Device(config)#aspf policy 1
      Device(config-aspf-policy)#detect ftp
      Device(config-aspf-policy)#exit
      
    • 配置安全策略和安全域。

      #配置源安全域对象zone1,目的安全域对象zone2。
      Device(config)#security zone name zone1
      Device(config-security-zone)#import interface gigabitethernet 0/2/0 
      Device(config-security-zone)#priority 80
      Device(config-security-zone)#exit
      Device(config)#security zone name zone2
      Device(config-security-zone)#import interface gigabitethernet 0/2/1
      Device(config-security-zone)#priority 60
      Device(config-security-zone)#exit
      
      #配置安全策略匹配源安全域zone1和目的安全域zone2,动作action为inspect aspf policy。
      Device(config)#security policy 1
      Device(config-security-policy)#match source security-zone zone1
      Device(config-security-policy)#match destination security-zone zone2
      Device(config-security-policy)#action inspect aspf-policy 1
      Device(config-security-policy)#exit
      
    • 检验结果。

      #查看策略号为1的ASPF配置信息。
      Device#show aspf policy 1
      ASPF policy configuration:
      Policy Id: 1
      Policy description: 
      TCP SYN packet check: Disable
      ICMP error message check: Disable
      Inspected protocol:
      ftp
      
      #内部私网PC从安全级别高的安全域的接口向安全级别低的安全域的接口的服务器采用PORT方式进行ftp传送数据,上传、下载文件成功,数据通道预期连接建立正确。
      Device#show connection ipv4 table lpu 0
      Device0: LPU 0, IPV4 connection table
      Protocol  Source:port               Destination:port/other    State          Lifetime  Vrf
      --------  ---------------------     ---------------------     ----------     --------  --------
      TCP       [1.1.1.2]:4945            [203.18.10.2]:21          tcp-time-wait    1       global
      TCP       [203.18.10.2]:20          [1.1.1.2]:4946            tcp-time-wait    1       global
      
      #内部私网PC从安全级别高的安全域的接口向安全级别低的安全域的接口的服务器采用PASV方式进行ftp传送数据,上传、下载文件成功,数据通道预期连接建立正确。
      Device#show connection ipv4 table lpu 0
      Device0: LPU 0, IPV4 connection table
      Protocol  Source:port               Destination:port/other    State          Lifetime  Vrf
      --------  ---------------------     ---------------------     -----------    --------  --------
      TCP       [1.1.1.2]:49320           [203.18.10.2]:21          tcp-time-wait    1      global
      TCP       [1.1.1.2]:38805           [203.18.10.2]:11656       tcp-time-wait    1      global
      
      #从外部网络发起各种连接的报文无法进入内部网络。
      

标签:FTP,ASPF,被动模式,报文,端口,Device,连接,客户端
From: https://www.cnblogs.com/xuwymm/p/18181542

相关文章

  • 完美匹配企业需求的FTP替代软件,需要具备哪些功能和价值?
    FTP作为世界范围内第一个文件传输协议,已被广泛使用30多年,也是企业使用较多的一种方式。但在数字化转型的浪潮中,企业对文件传输的需求日益增长,FTP存在的弊端也逐渐成为企业发展的桎梏,比如安全性、稳定性、传输效率等方面,迫切需要寻找FTP替代软件。以下是迫使企业替换FTP的一些关键......
  • ssh&sftp端口分离
    ssh&sftp端口分离OS_6复制ssh相关文件为sftp的文件复制/etc/rc.d/init.d/sshd复制/etc/rc.d/init.d/sshd文件,到/etc/rc.d/init.d/sftpd[root@10_56_84_252~]#cp/etc/rc.d/init.d/sshd/etc/rc.d/init.d/sftpd复制/etc/pam.d/sshd复制/etc/pam.d/目录下的sshd文件,放......
  • 对于习惯使用ftp传输的企业,如何寻找最佳的替代方案?
    FTP协议广泛应用各行业的文件传输场景中,对于很多企业而言,由于FTP传输应用获取门槛低、使用普遍,因此,有较为稳定的FTP使用习惯,但即便如此,也不得不面对,FTP应用存在着严重缺陷:  传输效率问题:FTP协议作为最早的互联网文件传输协议,虽然解决了传输协议有无的问题,但却在传输性能上未......
  • 传统FTP为何不好用了?替代FTP传文件的方式有哪些?
    FTP(文件传输协议)是一种广泛使用的网络协议,用于在网络上的服务器和客户端之间传输文件。它具有一些明显的优点,比如易于使用、支持文件的上传和下载、以及能够处理多个文件和目录的传输。然而,随着时间的推移和技术的发展,FTP也暴露出一些局限性和缺点,这导致一些企业寻求替代FTP传文件......
  • 对于寻找替代FTP服务器的银行来说,该如何选择合适的方案?
    FTP服务器在银行内部可谓应用广泛,如银行内部跨部门、跨地区文件传输,银行与外部合作单位文件传输等,常见的大文件传输银行常用的方式多为FTP应用,但对于银行来说,FTP服务器的缺陷也非常明显,具体表现在:  1.传输速度首先,传输速度是影响文件传输效果的重要指标。FTP传输速度较......
  • 摒弃FTP、邮箱和网闸,怎么实现安全域之间数据传输?
    数据传输对企业的重要性不言而喻。它不仅是企业实现信息共享和协作的基础,还是企业做出更好决策、优化客户关系以及推动创新发展的关键所在。企业基于数据保护和网络安全的考虑,将内部网络划分为不同的安全域,此时,安全域之间数据传输就具有更特殊的重要性。 FTP:通过在内外网之间......
  • 【网络通信】一文读懂网络应用层常见协议的区别(HTTP 、HTTPS、MQTT、FTP、RTSP、RTMP)
        应用层协议是计算机网络中至关重要的组成部分,它们定义了应用程序如何与网络进行交互,实现数据的传输、接收和处理。本文将重点介绍几种常见的应用层协议:HTTP、HTTPS、MQTT、FTP、RTSP和RTMP,分析它们的特点、区别、工作原理以及应用场景。一、HTTP协议      ......
  • 有关FTP服务器搭建于FTP加密技术的学习笔记
    FTP文件传输协议本篇是学习笔记,只整理相关链接,诚挚感谢各文章的博主。本文章不定期拓展内容。一、有关FTP的基本概念(一)、什么是FTP什么是FTPFTP的优势(二)、FTP扩展安全协议《FTP,SFTP,FTPS,SSL,TSL简介,区别,联系,使用场景说明》二、服务器搭建与客户端使用(......
  • 是时候了解替代FTP传文件的最优传输方案了!
    目前越来越多的企业在寻找替代FTP传文件的方案,主要原因在于其固有的一些弊端,在现代企业数据传输需求中可能导致安全性、效率和可靠性方面的问题。以下是FTP的一些主要弊端:  1.数据传输不加密:FTP在传输过程中不加密数据,包括用户名和密码、命令和数据,这使得敏感信息容易被截获......
  • FTP原理与配置
    目录1.FTP服务(1)FTP传输模式:2.FTP配置1.FTP服务用来传输文件的协议FTP协议采用的是TCP作为传输协议,21号端口用来传输FTP控制命令的,20号端口用来传输文件数据的。(1)FTP传输模式:主动模式:FTP服务端接收下载控制命令后,会主动从tcp/20号端口发送数据传输给客户端被动模式:FTP服务......