16-ASPF配置
本章节下载: 16-ASPF配置 (241.39 KB)
目 录
为了解决包过滤防火墙存在的问题,提出了状态防火墙——ASPF(Advanced Stateful Packet Filter,高级状态包过滤)的概念。
ASPF能够实现的主要功能有:
· 应用层协议检测:检查应用层协议信息,如报文的协议类型和端口号等信息,并且监控每一个连接的应用层协议状态。对于所有连接,每一个连接状态信息都将被ASPF维护,并用于动态地决定数据包是否被允许通过防火墙进入内部网络,以阻止恶意的入侵。
· 传输层协议检测:检测传输层协议信息,包括TCP协议、UDP协议、UDP-Lite协议、SCTP协议、Raw IP协议、ICMP协议、ICMPv6协议和DCCP协议。例如TCP/UDP检测,能够根据源、目的地址及端口号决定TCP或UDP报文是否可以通过防火墙进入内部网络。
· ICMP差错报文检测:正常ICMP差错报文中均携带有本报文对应连接的相关信息,根据这些信息可以匹配到相应的连接。如果匹配失败,则根据当前配置决定是否丢弃该ICMP报文。
· TCP连接首包检测:对TCP连接的首报文进行检测,查看是否为SYN报文,如果不是SYN报文则根据当前配置决定是否丢弃该报文。缺省情况下,不丢弃非SYN首包,适用于不需要严格TCP协议状态检查的组网场景。例如当防火墙设备首次加入网络时,网络中原有TCP连接的非首包在经过新加入的设备时如果被丢弃,会中断已有的连接,造成不好的用户体验,因此建议暂且不丢弃非SYN首包,等待网络拓扑稳定后,再开启非SYN首包丢弃功能。
在网络边界,ASPF和包过滤防火墙协同工作,包过滤防火墙负责按照ACL规则进行报文过滤(阻断或放行),ASPF负责对已放行报文进行信息记录,使已放行的报文的回应报文可以正常通过配置了包过滤防火墙的接口。因此,ASPF能够为企业内部网络提供更全面的、更符合实际需求的安全策略。
ASPF将应用层协议划分为:
· 单通道协议:完成一次应用的全过程中,只有一个连接参与数据交互。
· 多通道协议:完成一次应用的全过程中,需要多个连接配合,即控制信息的交互和数据的传送需要通过不同的连接完成的,如FTP。
如果设备连接了内部网络和外部网络,并且要通过部署ASPF来保护内部网络中的主机和服务器,则设备上与内部网络连接的接口就称为内部接口,与外部网络相连的接口就称为外部接口。
若需要保护内部网络,则可以将ASPF应用于设备外部接口的出方向或者应用于设备内部接口的入方向。
如图1-1所示,为了保护内部网络,可以在边界设备上配置访问控制列表,以允许内部网络的主机访问外部网络,同时拒绝外部网络的主机访问内部网络。但是访问控制列表会将用户发起连接后返回的报文过滤掉,导致连接无法正常建立。利用ASPF的应用层协议检测可以解决此问题。
当在设备上配置了应用层协议检测后,ASPF可以检测每一个应用层的连接,具体检测原理如下:
· 对于单通道协议,ASPF在检测到第一个向外发送的报文时创建一个会话表项。该会话表项中记录了对应的正向报文信息和反向报文信息,用于维护会话状态并检测会话状态的转换是否正确。匹配某条会话表项的所有报文都将免于接受静态包过滤策略的检查。
· 对于多通道协议,ASPF除了创建会话表项之外,还会根据协议的协商情况,创建一个或多个关联表项,用于关联属于同一个应用业务的不同会话。关联表项在多通道协议协商的过程中创建,在多通道协议协商完成后删除。关联表项主要用于匹配会话首报文,使已通过协商的会话报文可免于接受静态包过滤策略的检查。
单通道应用层协议的检测过程比较简单,当发起连接时建立会话表项,连接删除时随之删除会话表项即可。下面以FTP检测为例说明多通道应用层协议检测的过程。
图1-2 FTP检测过程示意图
如图1-2所示,FTP连接的建立过程如下:假设FTP client以1333端口向FTP server的21端口发起FTP控制通道的连接,通过协商决定在FTP server的20端口与FTP Client的1600端口之间建立数据通道,并由FTP server发起数据连接,数据传输超时或结束后数据通道删除。
FTP检测在FTP连接建立到拆除过程中的处理如下:
(1) 检查FTP client向FTP server发送的IP报文,确认为基于TCP的FTP报文。检查端口号,确认该连接为FTP client与FTP server之间的控制连接,建立会话表项。
(2) 检查FTP控制连接报文,根据会话表项进行TCP状态检测。解析FTP指令,如果包含数据通道建立指令,则创建关联表项描述对应数据连接的特征。
(3) 对于返回的FTP控制连接报文,根据会话表项进行TCP状态检测,检测结果决定是否允许报文通过。
(4) FTP数据连接报文通过设备时,将会触发建立数据连接的会话表项,并删除所匹配的关联表项。
(5) 对于返回的FTP数据连接报文,则通过匹配数据连接的会话表项进行TCP状态检测,检查结果决定是否允许报文通过。
(6) 数据连接结束时,数据连接的会话表项将被删除。FTP连接删除时,控制连接的会话表项也会被删除。
传输层协议检测通过建立会话表项记录报文的传输层信息,如源地址、目的地址及端口号等,达到动态放行报文的目的。
传输层协议检测要求返回到ASPF外部接口的报文要与之前从ASPF外部接口发出去的报文完全匹配,即源地址、目的地址及端口号完全对应,否则返回的报文将被丢弃。因此对于FTP这样的多通道应用层协议,在不配置应用层检测而直接配置TCP检测的情况下会导致数据连接无法建立。
若配置了detect命令,则对报文的应用层协议进行ASPF检查;若没有配置detect命令,则对报文的传输层协议和应用层协议FTP进行ASPF检查。
在多通道应用层协议的应用需求中,必须配置此命令,否则会导致数据连接无法建立。detect命令支持的应用层协议中除TFTP之外的所有应用层协议均为多通道应用层协议。
ASPF策略默认已经开启对传输层协议的检测,无需进行配置,也不能修改。
可以根据需要在ASPF策略中配置应用层协议检测。目前,设备对于部分应用层协议,还支持进行协议状态合法性检查功能,对不符合协议状态的报文进行丢弃。对于其它应用层协议,仅进行连接状态信息的维护,不做协议状态合法性检查。
ASPF配置任务如下:
(1) 配置ASPF策略
(2) 在接口上应用ASPF策略
(3) (可选)开启日志的实时发送功能
(1) 进入系统视图。
system-view
(2) 创建ASPF策略,并进入ASPF策略视图。
aspf policy aspf-policy-number
创建ASPF策略后,系统默认开启对传输层协议的检测,无需进行配置,也不能修改。
(3) (可选)配置对应用层协议的ASPF检测。
detect { ftp | h323 | sccp | sip | gtp | ils | mgcp | nbt | pptp | rsh | rtsp | sqlnet | tftp | xdmcp }
缺省情况下,配置了应用层协议FTP的ASPF检测。
(4) (可选)开启ICMP差错报文丢弃功能。
icmp-error drop
缺省情况下,不丢弃ICMP差错报文。
(5) (可选)开启非SYN的TCP首报文丢弃功能。
tcp syn-check
缺省情况下,不丢弃非SYN的TCP首报文。
只有将定义好的ASPF策略应用到接口的出或入方向上,才能对通过接口的特定方向的流量进行检测。在处理入接口报文时需要查找对应接口入方向的策略;在处理出接口报文时需要查找对应接口出方向的策略。如果接口应用了ASPF策略,所有进入或离开该接口的报文都需要与会话表项进行匹配,查找不到与之匹配的会话表项时会触发创建会话表。
如果ASPF与包过滤防火墙协同工作,可以在外部接口或内部接口的入方向或出方向上配置特定的ASPF和包过滤策略,根据特定配置,可以拒绝外部网络上的用户对内部网络的主动访问,但内部网络的用户访问外部网络时,返回的报文可以按照外部接口出方向或内部接口入方向上的ASPF配置进行ASPF检测。
由于ASPF对于应用层协议状态的保存和维护都是基于接口的,因此在实际应用中,必须保证报文入口的一致性,即必须保证连接发起方发送的报文和响应端返回的报文经过同一接口。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 在接口上应用ASPF策略。
aspf apply policy aspf-policy-number { inbound | outbound }
缺省情况下,接口上没有应用ASPF策略。
日志实时发送功能仅对安全策略、对象策略和包过滤模块的日志发送有效。
日志的发送方式支持如下两种:
· 缓存发送方式:同一数据流的首报文匹配相关策略生成并发送日志后,设备缓存此日志,同时启动发送日志的时间间隔定时器,只有时间间隔到达后,才会判断是否继续发送此日志。在此时间间隔内若有流量匹配此日志,则发送日志,若没有则删除缓存的此日志。日志缓存数目达到上限后,新增数据流匹配相关策略时不能生成日志。日志发送时间间隔缺省为5分钟,且不能修改。
· 实时发送方式:同一数据流的首报文匹配相关策略生成并发送日志后,设备不缓存此日志,因此这种方式无日志数目的限制。对于一条不间断的流量,若匹配的相关策略允许报文通过,则设备仅发送一次日志,若匹配的策略拒绝报文通过,则设备将对此条数据流的每个报文均发送一次日志。
有关安全策略、对象策略和包过滤开启记录日志功能的详细介绍,请参见各自模块的相关配置介绍。
(1) 进入系统视图。
system-view
(2) 开启日志的实时发送功能。
aspf log sending-realtime enable
缺省情况下,日志的实时发送功能处于关闭状态,使用缓存方式发送。
在完成上述配置后,在任意视图下执行display命令可以显示配置后ASPF的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除ASPF的统计信息。
表1-1 ASPF显示和维护
操作 |
命令 |
查看ASPF策略配置信息及应用ASPF策略的信息 |
display aspf all |
查看接口上的ASPF策略信息 |
display aspf interface |
查看ASPF策略的配置信息 |
display aspf policy { aspf-policy-number | default } |
查看ASPF的会话表信息 |
display aspf session [ ipv4 | ipv6 ] [ verbose ] |
删除ASPF的会话表 |
reset aspf session [ ipv4 | ipv6 ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!