【防火墙技术连载8】强叔侃墙 安全策略篇 ASPF:隐形通道

[复制链接]
发表于 : 2014-4-4 16:24:35 最新回复:2018-11-24 16:47:03
33983 45
强叔侃墙
强叔侃墙 官方号

大家好,强叔又来了!经过前两期的介绍大家对安全策略应该比较了解了,本期强叔要给大家带来一个神秘人物。

在请出神秘人物之前,我们先来使用eNSP实战一把安全策略的配置。通过eNSP搭建如下环境,FTP客户端经过防火墙访问FTP服务器,安全策略怎么配置呢?

这还不容易,在TrustUntrust配置安全策略,指定源/目的IP、指定协议为FTP不就好了。

然后我们看看FTP客户端能否成功访问?

咦?怎么看不到服务器文件,看日志信息发现用户认证已经通过了,但是数据连接建立失败。

再检查一下配置吧:

TrustUntrust的域间缺省包过滤关闭,在Outbound方向配置了允许PC访问FTP服务器的一条安全策略。

查看会话表也成功建立了会话:

看起来应该没问题啊,不是说在首包的方向上应用安全策略,后续包直接匹配会话转发吗?

那我们分析一下FTP协议是否有什么特殊之处呢?

FTP协议是一个典型的多通道协议,在其工作过程中,FTP ClientFTP Server之间将会建立两条连接:控制连接和数据连接。控制连接用来传输FTP指令和参数,其中就包括建立数据连接所需要的信息;数据连接用来获取目录及传输数据。数据连接使用的端口号是在控制连接中临时协商的。

根据数据连接的发起方式FTP协议分为两种工作模式:主动模式(PORT模式)和被动模式(PASV模式)。主动模式中,FTP Server主动向FTP Client发起数据连接;被动模式中,FTP Server被动接收FTP Client发起的数据连接。

模式在一般的FTP客户端中都是可以设置的,这里我们以主动模式为例进行讲解,主动模式的协议交互流程如下:

首先FTP客户端向FTP服务器的21端口发起连接建立控制通道,然后通过PORT命令协商客户端使用的数据传输端口号。协商成功后,服务器主动向客户端的这个端口号发起数据连接。 而且每次数据传输都会协商不同的端口号。

而我们配置的安全策略仅开放了FTP协议,也就是21端口。当FTP客户端向服务器发起控制连接时建立了如下会话。

而服务器向客户端发起数据连接的源/目的端口号分别是20和临时协商的端口号yyyy,显然不是这条连接的后续报文,无法命中此会话转发。因此会出现可以验证用户密码,但是无法获取目录列表的现象。

有同学可能想到了,在服务器到客户端的方向也配置安全策略就行了吧?对,这是一种方法,但是这样必须开放客户端的所有端口有安全隐患。要是有一种方法可以自动记录数据连接就好了!

别急,万能的防火墙都能实现。这就是本期要出场的神秘人物ASPFApplication Specific Packet Filter)。ASPF是针对应用层的包过滤,其原理是检测通过设备的报文的应用层协议信息,记录临时协商的数据连接,使得某些在安全策略中没有明确定义要放行的报文也能够得到正常转发。

记录临时协商的数据连接的表项称为Server-map1,这相当于在防火墙上开通了“隐形通道”,使得像FTP这样的特殊应用的报文可以正常转发。当然这个通道不是随意开的,是防火墙分析了报文的应用层信息之后,提前预测到后面报文的行为方式,所以才打开了这样的一个通道。

1Server-map表在防火墙转发中非常重要,不只是ASPF会生成,NAT ServerSLB等特性也会生成Server-map表,后续在其他帖子中强叔还会提及。

说了这么多ASPF怎么配置呢,很简单,在域间配置一条命令即可detect protocol

FTP访问成功:

此时查看Server-map,可以看到已经自动生成了维护FTP数据连接的表项:

Server-map表中记录了FTP服务器向FTP客户端的2071端口号发起的数据连接,服务器向客户端发起数据连接时将匹配这个Server-map表转发,而无需再配置反向安全策略。

 

数据连接的第一个报文匹配Server-map表转发后,防火墙将生成这条数据连接的会话,该数据连接的后续报文匹配会话表转发,不再需要重新匹配Server-map表项。

Server-map表项由于一直没有报文匹配,经过一定老化时间后就会被删除。这种机制保证了Server-map表项这种较为宽松的通道能够及时被删除,保证了网络的安全性。当后续发起新的数据连接时会重新触发建立Server-map表项。

 

本期以FTP协议的主动模式为例做了讲解,FTP的被动模式、其他多通道协议类似,不再一一讲解。总之就是配置了ASPF可以生成动态维护临时协商的数据连接的表项,既简化了安全策略的配置又确保了安全性。最后以一张图作为结束。

 

强叔提问

FTP如果工作在被动模式(PASV)下,生成的Server-map表是啥样的呢?

已知:被动模式时动态协商的是服务器的端口号zzzz,协商后客户端向服务器的这个端口号发起数据连接。

请在两个括号中填写内容:
ASPF: () -> () , Zone: ---

   Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:05, Addr-Pool: ---

 

 

上一篇 安全策略篇 安全策略发展历程详解

下一篇 攻击防范篇 单包攻击及防御

汇总贴

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
HUAWEI_Rjzr
HUAWEI_Rjzr   发表于 2014-5-2 15:26:02 已赞(0) 赞(0)

持续关注!
  • x
  • 常规:

点评 回复

Sophoni
Sophoni  版主 发表于 2014-4-4 17:02:17 已赞(0) 赞(0)

谢谢强叔分享!

  • x
  • 常规:

点评 回复

安宁庄前街东口
安宁庄前街东口   发表于 2014-4-4 18:35:15 已赞(0) 赞(0)

不错,ASPF简化了配置,而且不失安全,顶!

强叔的问题,括号中的信息是(1.1.1.1) -> (2.2.2.2:yyyy)?

  • x
  • 常规:

点评 回复

fcm
fcm  精英 发表于 2014-4-4 19:03:45 已赞(0) 赞(0)

通俗容易理解
  • x
  • 常规:

点评 回复

liushuo
liushuo  导师VIP 发表于 2014-4-6 23:46:25 已赞(0) 赞(0)

强叔,能不能教教我,你那些流程图都是怎么画出来的。

我也想学这样子制作教学资料。

  • x
  • 常规:

点评 回复

她的猫
她的猫   发表于 2014-5-5 13:31:44 已赞(0) 赞(0)

ASPF: (1.1.1.1) -> (2.2.2.2:zzzz) , Zone: ---

   Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:05, Addr-Pool: ---

  • x
  • 常规:

点评 回复

棕色小瓶
棕色小瓶   发表于 2014-4-8 11:13:16 已赞(0) 赞(0)

ASPF, 1.1.1.1 -> 2.2.2.2:zzzz[any], Zone: ---
   Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:30, Addr-Pool: ---
   VPN: public -> public

  • x
  • 常规:

点评 回复

脑袋不好使
脑袋不好使   发表于 2014-4-8 13:50:49 已赞(0) 赞(0)

不错不错,这样就不用懂得里边的原理,记得多通道就开启ASPF就好了~
  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-4-8 13:55:18 已赞(0) 赞(0)

引用 3 楼

不错,ASPF简化了配置,而且不失安全,顶!

强叔的问题,括号中的信息是(1.1.1.1) -> (2.2.2.2:yyyy)?

安宁庄前街东口 发表于 2014-04-04 18:35

是zzzz端口哦,servermap中记录的是pasv命令中的端口
  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录