摘要:本文首先介绍了FTP的工作模式以及在不同模式下连接是怎样建立的,然后分析了访问控制列表在对FTP服务器进行防护时的局限性,最后介绍Cisco IOS安全技术CBAC并用它来使FTP服务器正常安全的运行。本文以一个简单的网络拓扑为例,说明了如何使用CBAC来保护FTP服务器。
关键词:FTP服务器;访问控制列表;CBAC]
1、引言
FTP服务器是在互联网中提供存储空间的计算机,它能实现信息资源的共享。对FTP服务器的安全防护非常重要,在使用访问控制列表对FTP服务器进行防护时,由于FTP协议的特殊性,我们会看到访问控制列表的局限性。为了在使用访问控制列表进行防护的同时不影响FTP服务器的正常运行,需要使用Cisco安全技术CBAC来对FTP服务器进行防护。
2、FTP工作模式
FTP(File Transfer Protocol)是一种专门用来传输文件的协议,它对网络中信息的共享有着很重要的作用。它属于应用层协议,FTP客户机可以给服务器发出命令来下载文件,上传文件,创建或改变服务器上的目录。FPT是现代网络中常用的一种协议。
FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而21端口用于传输控制流。FTP有两种工作模式:主动模式和被动模式。具体建立连接的过程如图1:
在主动模式下,客户端首先用一个随机端口2008和服务器的21端口建立连接,告知服务器客户端要使用2010端口进行数据的传输,服务器对此信息进行确认后,服务器就使用 20端口主动和客户端的2010端口进行数据传输。在被动模式下,客户端首先和服务器的21端口发起连接,询问服务器要使用哪个端口进行数据的传输,服务器对这次连接确认并告知客户端要使用1490端口传输数据,最后客户端使用一个随机端口2010和服务器的1490端口进行数据的传输。在主动模式下,可以看出服务器传输数据流的20端口和传输控制流的21端口是确定的,但是客户端的传输控制流的2008端口和传输数据流的2010端口都不确定,可以是其他的端口。在被动模式下,只有服务器传输控制流的21端口是确定的,服务器传输数据流的端口及客户端传输控制流和数据流的端口都是不确定的,是可变的。
3、ACL对FTP服务器防护的局限性
访问控制列表通过允许和拒绝数据包来对网络的流量进行控制,能有效的阻止不希望通过的数据包,允许正常访问的数据包,从而保证网络的安全性。但是访问控制列表对于FTP服务器的保护有一定的局限性。
由于FTP服务器有主动模式和被动模式,两种模式下建立连接的方式不同,所以需要分别讨论,图2为模拟的网络环境,要求用户只能访问192.168.0.1的FTP服务。
在主动模式下,在路由器上配置访问控制列表,允许任何主机到192.168.0.1的20和21端口的访问,然后应用到F0/1接口上,就可以实现用户只能访问192.168.0.1的FTP服务,不能访问其他服务。
在被动模式下,使用访问控制列表时,则遇到了问题。由于被动模式下,FTP服务器传输数据流的端口不再是20端口,而是一个不确定的数字,没有办法允许数据流的通过,客户端只能和服务器进行控制信息的交互,而不能和服务器进行数据的上传和下载操作。这样,访问控制列表就不能使FTP服务器正常的工作。
4 、CBAC简介
CBAC是基于上下文的访问控制协议,它通过检查通过的流量来发现TCP和UDP的会话状态信息,然后使用这些状态信息来创建临时通道。CBAC只对指定的协议进行检查,对于这些协议,只要数据包经过已经配置的接口,那么无论它们从哪个方向通过,都将被检查,进入的数据包只会在其第一次通过接口的入站ACL时才会被检查,如果数据包被ACL拒绝,数据包会被简单的丢掉并且不会被CBAC检查。
在Cisco路由器上创建ACL是管理员常用的数据过滤和网络安全防护措施,但是ACL的局限性是非常明显的,因为它只能检测到网络层和传输层的数据信息,而对于封装在IP包中的信息它是无能为力的。因此,ACL并不可靠,需要CBAC的配合,这样网络安全性将会极大提升。
4.1、CBAC的主要功能
一、流量过滤。扩展ACL只能过滤3层和4层的流量,RACL能够过滤5层的流量,而CBAC支持应用层的检测,即查看某些数据包的内容,如FTP,它能够分别查看控制连接和数据连接。CBAC甚至能够检测HTTP连接中使用的java程序,并过滤它们。
二、流量检测。CBAC不仅能像RACL那样检查返回到网络的流量,同时还能够防止TCP SYN洪水攻击,CBAC能够检测客户端到服务器连接的频率,如果到达一个限度,就会关闭这些连接,也可用来防止DOS攻击。
三、入侵检测。CBAC是一个基于状态的防火墙机制,它也能够检测某些DOS攻击。提供对于某些SMTPe-mail攻击的保护,限制某些SMTP命令发送到你内部网络的e-mail服务器,所有这些攻击都使CBAC产生日志信息,并且会选择性的重置TCP连接或者丢弃这些欺骗数据包。
四、一般的告警和审计。CBAC对于检测到的问题或攻击能够产生实时的告警,对于连接请求提供详细的审计信息。例如,记录所有的网络连接请求,包括源和目的的IP地址,连接使用的端口,发送的数据大小,连接开始和结束的时间。
4.2、CBAC的原理
CBAC会追踪它监视的连接,创建包括每个连接信息的状态表。这个表和PIX使用的状态表很相似。CBAC监视TCP,UDP和ICMP的连接并记录到状态表,并为返回的流量创建动态ACL条目,这点和RACL很相似,CBAC使用状态表和动态ACL条目来检测和防止攻击。
4.3、CBAC的处理步骤
一、用户发起一个到外部的连接,如telnet,如果配置了进站ACL,则在CBAC检测之前先处理进站ACL,接着根据CBAC的检测规则,CiscoIOS来检测或忽略这些连接,如果没有要检测的连接,则允许数据包的通过。
二、如果有要检测的连接,Cisco IOS就会比较当前连接和状态表中的条目:如果条目不存在,则添加一条到状态表中,否则,重置这个连接的空闲计时器。
三、如果这是一个新条目,则Cisco IOS添加一个动态ACL条目到外部接口的进站方向,允许返回到内部网络的流量。这个动态ACL不会保存到NVRAM中。在Cisco IOS 12.3(4)T后,出现了一个新的特性叫做:Firewall ACL Bypass(FAB),使用这个特性后,CiscoIOS不会为允许返回的流量创建动态ACL条目,而是直接查看状态表,看哪些流量允许返回内部网络,这是通过快速交换进程,如CEF来实现的,从而加快了处理返回的流量的速度。如果在状态表中没有发现符合的条目,则继续进行进站ACL的检查过程。
4.4、CBAC的配置
步骤一:决定路由器上的哪个接口作为内部接口,哪个接口作为外部接口。
步骤二:创建普通的IPACL列表过滤进入和离开内部网络的流量,并保证那些要监视的出站流量允许被通过。
步骤三:改变全局的连接超时时间。
步骤四:配置应用程序端口映射PAM。
步骤五:定义CBAC监视规则,定义哪些条目要加入到状态表,哪些流量被允许返回,如果出站流量不符合监视规则,路由器不会监视这些流量,只把它们当作普通流量处理。
步骤六:在接口上激活监视规则,这样路由器才会使用CBAC来监视这些流量。
步骤七:发送流量经过CBAC路由器来测试你的配置。
5、CBAC如何对FTP服务器进行防护
在一些网络环境中,FTP服务器适合使用被动模式,为了在使用访问控制列表对服务器进行保护的同时又不影响服务的正常运行,就要用思科的IOS安全技术CBAC和访问控制列表配合起来对服务器共同进行防护。
在这里,仍然以上面图2的拓扑图为例来说明CBAC的使用。在路由器上首先配置访问控制列表:access-list 101 permit tcp any host 192.168.0.1eq21,然后应用到接口F0/1上:ip access-group101in。定义CBAC监视规则:ip inspect name test ftp,定义了一个名为test的规则来对ftp流量进行检测。在接口F0/1上激活检测规则:ip inspect test in。此时,当PC1访问FTP服务器时,流量首先到达路由器,被访问控制列表允许后,PC1和FTP服务器就可以进行控制信息的交互,同时,CBAC会对这一流量进行检测,发现他们的控制信息中有FTP服务器将用来传输数据的端口号,路由器又允许了到这个端口的数据的访问,于是,PC1就能和FTP服务器顺利的建立连接并进行数据的传输。
6、结束语
在实际的网络环境中,网络结构会比上面的例子更复杂,这里只是用了一个最简单的拓扑情况来说明CBAC怎样来使用,为了保证服务器的安全,还可以改变全局的连接时间,比如完成TCP连接的时间,TCP连接关闭的时间,TCP连接的空闲时间,UDP连接的空闲时间。通过这些时间的配置,也能够避免服务器被攻击。
关键词:FTP服务器;访问控制列表;CBAC]
1、引言
FTP服务器是在互联网中提供存储空间的计算机,它能实现信息资源的共享。对FTP服务器的安全防护非常重要,在使用访问控制列表对FTP服务器进行防护时,由于FTP协议的特殊性,我们会看到访问控制列表的局限性。为了在使用访问控制列表进行防护的同时不影响FTP服务器的正常运行,需要使用Cisco安全技术CBAC来对FTP服务器进行防护。
2、FTP工作模式
FTP(File Transfer Protocol)是一种专门用来传输文件的协议,它对网络中信息的共享有着很重要的作用。它属于应用层协议,FTP客户机可以给服务器发出命令来下载文件,上传文件,创建或改变服务器上的目录。FPT是现代网络中常用的一种协议。
FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而21端口用于传输控制流。FTP有两种工作模式:主动模式和被动模式。具体建立连接的过程如图1:
在主动模式下,客户端首先用一个随机端口2008和服务器的21端口建立连接,告知服务器客户端要使用2010端口进行数据的传输,服务器对此信息进行确认后,服务器就使用 20端口主动和客户端的2010端口进行数据传输。在被动模式下,客户端首先和服务器的21端口发起连接,询问服务器要使用哪个端口进行数据的传输,服务器对这次连接确认并告知客户端要使用1490端口传输数据,最后客户端使用一个随机端口2010和服务器的1490端口进行数据的传输。在主动模式下,可以看出服务器传输数据流的20端口和传输控制流的21端口是确定的,但是客户端的传输控制流的2008端口和传输数据流的2010端口都不确定,可以是其他的端口。在被动模式下,只有服务器传输控制流的21端口是确定的,服务器传输数据流的端口及客户端传输控制流和数据流的端口都是不确定的,是可变的。
3、ACL对FTP服务器防护的局限性
访问控制列表通过允许和拒绝数据包来对网络的流量进行控制,能有效的阻止不希望通过的数据包,允许正常访问的数据包,从而保证网络的安全性。但是访问控制列表对于FTP服务器的保护有一定的局限性。
由于FTP服务器有主动模式和被动模式,两种模式下建立连接的方式不同,所以需要分别讨论,图2为模拟的网络环境,要求用户只能访问192.168.0.1的FTP服务。
在主动模式下,在路由器上配置访问控制列表,允许任何主机到192.168.0.1的20和21端口的访问,然后应用到F0/1接口上,就可以实现用户只能访问192.168.0.1的FTP服务,不能访问其他服务。
在被动模式下,使用访问控制列表时,则遇到了问题。由于被动模式下,FTP服务器传输数据流的端口不再是20端口,而是一个不确定的数字,没有办法允许数据流的通过,客户端只能和服务器进行控制信息的交互,而不能和服务器进行数据的上传和下载操作。这样,访问控制列表就不能使FTP服务器正常的工作。
4 、CBAC简介
CBAC是基于上下文的访问控制协议,它通过检查通过的流量来发现TCP和UDP的会话状态信息,然后使用这些状态信息来创建临时通道。CBAC只对指定的协议进行检查,对于这些协议,只要数据包经过已经配置的接口,那么无论它们从哪个方向通过,都将被检查,进入的数据包只会在其第一次通过接口的入站ACL时才会被检查,如果数据包被ACL拒绝,数据包会被简单的丢掉并且不会被CBAC检查。
在Cisco路由器上创建ACL是管理员常用的数据过滤和网络安全防护措施,但是ACL的局限性是非常明显的,因为它只能检测到网络层和传输层的数据信息,而对于封装在IP包中的信息它是无能为力的。因此,ACL并不可靠,需要CBAC的配合,这样网络安全性将会极大提升。
4.1、CBAC的主要功能
一、流量过滤。扩展ACL只能过滤3层和4层的流量,RACL能够过滤5层的流量,而CBAC支持应用层的检测,即查看某些数据包的内容,如FTP,它能够分别查看控制连接和数据连接。CBAC甚至能够检测HTTP连接中使用的java程序,并过滤它们。
二、流量检测。CBAC不仅能像RACL那样检查返回到网络的流量,同时还能够防止TCP SYN洪水攻击,CBAC能够检测客户端到服务器连接的频率,如果到达一个限度,就会关闭这些连接,也可用来防止DOS攻击。
三、入侵检测。CBAC是一个基于状态的防火墙机制,它也能够检测某些DOS攻击。提供对于某些SMTPe-mail攻击的保护,限制某些SMTP命令发送到你内部网络的e-mail服务器,所有这些攻击都使CBAC产生日志信息,并且会选择性的重置TCP连接或者丢弃这些欺骗数据包。
四、一般的告警和审计。CBAC对于检测到的问题或攻击能够产生实时的告警,对于连接请求提供详细的审计信息。例如,记录所有的网络连接请求,包括源和目的的IP地址,连接使用的端口,发送的数据大小,连接开始和结束的时间。
4.2、CBAC的原理
CBAC会追踪它监视的连接,创建包括每个连接信息的状态表。这个表和PIX使用的状态表很相似。CBAC监视TCP,UDP和ICMP的连接并记录到状态表,并为返回的流量创建动态ACL条目,这点和RACL很相似,CBAC使用状态表和动态ACL条目来检测和防止攻击。
4.3、CBAC的处理步骤
一、用户发起一个到外部的连接,如telnet,如果配置了进站ACL,则在CBAC检测之前先处理进站ACL,接着根据CBAC的检测规则,CiscoIOS来检测或忽略这些连接,如果没有要检测的连接,则允许数据包的通过。
二、如果有要检测的连接,Cisco IOS就会比较当前连接和状态表中的条目:如果条目不存在,则添加一条到状态表中,否则,重置这个连接的空闲计时器。
三、如果这是一个新条目,则Cisco IOS添加一个动态ACL条目到外部接口的进站方向,允许返回到内部网络的流量。这个动态ACL不会保存到NVRAM中。在Cisco IOS 12.3(4)T后,出现了一个新的特性叫做:Firewall ACL Bypass(FAB),使用这个特性后,CiscoIOS不会为允许返回的流量创建动态ACL条目,而是直接查看状态表,看哪些流量允许返回内部网络,这是通过快速交换进程,如CEF来实现的,从而加快了处理返回的流量的速度。如果在状态表中没有发现符合的条目,则继续进行进站ACL的检查过程。
4.4、CBAC的配置
步骤一:决定路由器上的哪个接口作为内部接口,哪个接口作为外部接口。
步骤二:创建普通的IPACL列表过滤进入和离开内部网络的流量,并保证那些要监视的出站流量允许被通过。
步骤三:改变全局的连接超时时间。
步骤四:配置应用程序端口映射PAM。
步骤五:定义CBAC监视规则,定义哪些条目要加入到状态表,哪些流量被允许返回,如果出站流量不符合监视规则,路由器不会监视这些流量,只把它们当作普通流量处理。
步骤六:在接口上激活监视规则,这样路由器才会使用CBAC来监视这些流量。
步骤七:发送流量经过CBAC路由器来测试你的配置。
5、CBAC如何对FTP服务器进行防护
在一些网络环境中,FTP服务器适合使用被动模式,为了在使用访问控制列表对服务器进行保护的同时又不影响服务的正常运行,就要用思科的IOS安全技术CBAC和访问控制列表配合起来对服务器共同进行防护。
在这里,仍然以上面图2的拓扑图为例来说明CBAC的使用。在路由器上首先配置访问控制列表:access-list 101 permit tcp any host 192.168.0.1eq21,然后应用到接口F0/1上:ip access-group101in。定义CBAC监视规则:ip inspect name test ftp,定义了一个名为test的规则来对ftp流量进行检测。在接口F0/1上激活检测规则:ip inspect test in。此时,当PC1访问FTP服务器时,流量首先到达路由器,被访问控制列表允许后,PC1和FTP服务器就可以进行控制信息的交互,同时,CBAC会对这一流量进行检测,发现他们的控制信息中有FTP服务器将用来传输数据的端口号,路由器又允许了到这个端口的数据的访问,于是,PC1就能和FTP服务器顺利的建立连接并进行数据的传输。
6、结束语
在实际的网络环境中,网络结构会比上面的例子更复杂,这里只是用了一个最简单的拓扑情况来说明CBAC怎样来使用,为了保证服务器的安全,还可以改变全局的连接时间,比如完成TCP连接的时间,TCP连接关闭的时间,TCP连接的空闲时间,UDP连接的空闲时间。通过这些时间的配置,也能够避免服务器被攻击。