防火墙技术

马秋贤

目录

  • 1 基础知识
    • 1.1 什么是防火墙
    • 1.2 防火墙的发展历史
    • 1.3 华为防火墙产品一览
    • 1.4 安全区域
    • 1.5 状态检测和会话机制
    • 1.6 状态检测和会话机制补遗
  • 2 安全策略
    • 2.1 安全策略初体验
    • 2.2 安全策略发展历程
    • 2.3 Local区域的安全策略
    • 2.4 ASPF
  • 3 攻击防范
    • 3.1 DoS攻击简介
    • 3.2 单包攻击机防御
    • 3.3 流量型攻击之SYN Flood攻击及防御
  • 4 NAT
    • 4.1 源NAT
    • 4.2 NAT Serve
    • 4.3 双向NAT
  • 5 GRE&L2TP VPN
    • 5.1 VPN简介
    • 5.2 GRE
    • 5.3 L2TP VPN的诞生及演进
  • 6 IPSec VPN
    • 6.1 IPSec简介
    • 6.2 手工方式IPS ec VPN
    • 6.3 IKE和ISAKMP
    • 6.4 IKEvl
  • 7 DSVPN
    • 7.1 DSVPN简介
    • 7.2 Normal方式的DSVPN
  • 8 SSL VPN
    • 8.1 SSLVPN原理
    • 8.2 文件共享
    • 8.3 WEB代理
  • 9 双机热备
    • 9.1 双机热备概述
    • 9.2 VRRP与VGMP的故事
    • 9.3 VGMP招式详解
    • 9.4 HRP协议详解
  • 10 出口选路
    • 10.1 出口选路总述
    • 10.2 就近选路
    • 10.3 策略路由选路
  • 11 防火墙在校园网中的应用
    • 11.1 组网需求
    • 11.2 组网规划
    • 11.3 配置步骤
ASPF


我们先来使用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可以生成动态维护临时协商的数据连接的表项,既简化了安全策略的配置又确保了安全性。最后以一张图作为结束。