ASPF(Application Specific Packet Filter)

ASPF

ASPF(Application Specific Packet Filter)是针对应用层的包过滤,其原理是检测通过设备的报文的应用层协议信息,记录临时协商的数据连接,使得某些在安全策略中没有明确定义要放行的报文也能够得到正常转发。

通过以下实验说明,ASFP:

FTP客户端经过防火墙访问FTP服务器

配置完成后,尝试登陆FTP服务器,可以正常登陆,但是不能够正常进行数据连接。

查看会话状态:

已经成功建立session会话。

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

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

FTP主动模式:

1.     FTP客户端向FTP服务器的21端口发起连接建立控制通道

2.     客户端通过PORT命令协商客户端使用的数据传输端口号。

3.     协商成功后,服务器主动向客户端的这个端口号发起数据连接。 而且每次数据传输都会协商不同的端口号。

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

可以新增策略,放行服务器到客户端方向的安全策略,但是这样必须开放客户端的所有端口有安全隐患。

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

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

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

只需要在域间配置增加detect ftp即可

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

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

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

正常访问,防火墙session状态:

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

配置了ASPF可以生成动态维护临时协商的数据连接的表项,既简化了安全策略的配置又确保了安全性

被动模式下的流程:

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

配置实例

USG6000V1:

#

ip vpn-instance default

ipv4-family

#

#内网Trust Zone接口

#

interface GigabitEthernet0/0/0

undo shutdown

ip binding vpn-instance default

ip address 192.168.1.1 255.255.255.0

#外网Untrust  Zone接口

#

interface GigabitEthernet1/0/1

undo shutdown

ip binding vpn-instance default

ip address 10.1.1.1 255.255.255.0

#

#安全级别,与接口配置

#

firewall zone local

set priority 100

#

firewall zone trust

set priority 85

add interface GigabitEthernet0/0/0

#

firewall zone untrust

set priority 5

add interface GigabitEthernet1/0/1

#

#Nat地址指向Null0避免环路

#

ip route-static vpn-instance default 10.1.1.10 255.255.255.255 NULL0

ip route-static vpn-instance default 10.1.1.11 255.255.255.255 NULL0

ip route-static vpn-instance default 10.1.1.12 255.255.255.255 NULL0

ip route-static vpn-instance default 10.1.1.13 255.255.255.255 NULL0

ip route-static vpn-instance default 10.1.1.14 255.255.255.255 NULL0

ip route-static vpn-instance default 10.1.1.15 255.255.255.255 NULL0

#

#Nat地址池

#

nat address-group nat-pool1 0

mode pat

section 10 10.1.1.10 10.1.1.15

#

#需要映射的源地址set。通过address-set 或者service-set方式,修改时直接修改set信息即可。

#

ip address-set saddr_192.168.1.0/24 type object

address 192.168.1.0 0.0.0.255

#

#ASPF 监控ftp

#

firewall interzone trust untrust

detect ftp

#

#安全策略

#

#放开client访问ftp的21端口(需要detect ftp,不然ftp不能正常通信)

security-policy

rule name ftp

source-zone trust

destination-zone untrust

source-address 192.168.1.0 24

service ftp

action permit

#放开防火墙自身ping所有zone的权限,用于连通性测试

rule name icmp

source-zone local

source-zone trust

service icmp

action permit

#

#Nat策略,

#

nat-policy

rule name policy_nat1

source-zone trust

destination-zone untrust

source-address address-set saddr_192.168.1.0/24

action nat address-group nat-pool1

#

时间: 2025-01-02 14:43:53

ASPF(Application Specific Packet Filter)的相关文章

Introduction of Servlet Filter(了解Servlet之Filter)

API文档中介绍了public Interface Filter(公共接口过滤器) Servlet API文档中是这样介绍的: ‘A filter is an object that performs filtering tasks on either the request to a resource (a servlet or static content), or on the response from a resource, or both. Filters perform filte

CSS技巧收集——毛玻璃效果(深入理解滤镜filter)

原文链接:http://www.cnblogs.com/ghost-xyx/p/5677168.html 先上 demo和 源码 其实毛玻璃的模糊效果技术上比较简单,只是用到了 css 滤镜(filter)中的 blur 属性.但是要做一个好的毛玻璃效果,需要注意很多细节. 比如我们需要将上图中页面中间的文字区域变成毛玻璃效果,首先想到的是给其设置一个透明度,并添加模糊滤镜: .content { background-color: rgba(0,0,0,0.3); -webkit-filter

web项目之BBS流程解析(无servlet、filter)

最近课程穿插了微信开发,bbs的项目也是断断续续地,难得地趁着自习时间写点博客记录.这个bbs版本比较简单,主要是显示版块.版块下的话题,发表话题.针对话题发表回复等等.主要的就是理解整个的流程. 我们按照最初进入bbs的顺序来讲解. 1.进入reg.jsp. 一个简单的注册页面,表单提交用户名和密码,页面加入验证码,这个是借鉴网上的js验证码,有纯数字.中文.混合的验证码,具体不介绍. 将用户名和密码传给doReg.jsp,调用封装好的 RequestUtil工具包,将request 的参数转

伯克利包过滤(Berkeley Packet Filter,BPF)语言

libpcap支持一种功能非常强大的过滤语言——“伯克利包过滤”语法.使用BPF过滤规则,你可以确定该获取和检查哪些流量,忽略哪些流量.BPF让你能够通过比较第2.3.4层协议中各个数据字段值的方法对流量进行过滤.BPF中内置了一些“基元”来指代一些常用的协议字段.可以用“host”."prot"之类的基元写出非常简洁的BPF过滤规则,也可以检测位于指定偏移量上的字段(甚至可以是一个位)的值.BPF过滤器也可以由详尽的条件链和嵌套的逻辑“与”.“或”操作组成. BPF基元 现在,构造一

过滤器(Filter)与拦截器(Interceptor )区别

目录 过滤器(Filter) 拦截器(Interceptor) 拦截器(Interceptor)和过滤器(Filter)的区别 拦截器(Interceptor)和过滤器(Filter)的执行顺序 拦截器(Interceptor)使用 过滤器(Filter)使用 拦截器(Interceptor)和过滤器(Filter)的一些用途 demo 总结 参考资料 正文 回到顶部 过滤器(Filter) Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,

《java小应用程序(Applet)和java应用程序(Application)分别编写的简单计算器》

Application和Java Applet的区别.Java语言是一种半编译半解释的语言.Java的用户程序分为两类:Java Application和Java Applet.这两类程序在组成结构和执行机制上都有一定的差异,主要体现在以下几方面:(1)运行方式不同.Java Application是完整的程序,可以独立运行:Java Applet程序不能单独运行, 它必须嵌入到用HTML语言编写的Web页面中,通过与Java兼容的浏览器来控制执行.(2)运行工具不同.Java Applicat

卡尔曼滤波(Kalman Filter) 的进一步讨论

我们在上一篇文章中通过一个简单的例子算是入门卡尔曼滤波了,本文将以此为基础讨论一些技术细节. 卡尔曼滤波(Kalman Filter) http://blog.csdn.net/baimafujinji/article/details/50646814 在上一篇文章中,我们已经对HMM和卡尔曼滤波的关联性进行了初步的讨论.参考文献[3]中将二者之间的关系归结为下表. 上表是什么意思呢?我们其实可以下面的式子来表示,其中,w 和 v 分别表示状态转移 和 测量 过程中的不确定性,也即是噪声,既然是

在Ubuntu上为Android系统内置Java应用程序测试Application Frameworks层的硬件服务(老罗学习笔记)

一:Eclipse下 1.创建工程: ---- 2.创建后目录 3.添加java函数 4.在src下创建package,在package下创建file 5.res---layout下创建xml文件,命名main 6.project下清楚错误 7.位解决错误 ① ② 8.总体目录 9.当删除工程后,可以import再重新导入工程. 二:源码下 ① 将Hello目录拷贝至packages/experimental目录,新增Android.mk文件:    [email protected]:~/An

CSS3滤镜(filter)--CSS3技术

filter 属性定义了元素(通常是<img>)的可视效果,例如图片的模糊.饱和度.灰度等……个人感觉功能很强大 1.filter的语法 filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url(); 2.各大浏览器当前时间的支持情况(来自Can I use:h