我在Cisco 2514系列访问路由器上安装了版本为12.2的IOS防火墙。在那个时候,这个路由器还在使用扩展ACL来过滤从互联网接口中进入的流量。在断开外部接口的电缆后,我整理并删除了现存的ACL,然后实现如下的IOS防火墙性能。
Router (config)# Aclearcase/" target="_blank" >ccess-list 101 deny tcp any any 在以前的陈述中,当在外部接口上应用进入检查时是阻拦所有TCP和UDP。这对检查所有通过的TCP和UDP流量提供了一个过滤方法。 通过在外部的101端口应用访问列表,可以确保互联网的通信一到达互联网路由器就被截获。我也可疑通过指定特定的应用层协议来实现更具体细微的控制,就象这个例子一样: 这一说明可以将所有SMTP通信阻挡在内部网络之外。在访问列表中,这应该放在先前的TCP过滤说明之前,否则没有什么作用。
定义超时
这个过程的下一步骤就是在使用CBAC跟踪连接时定义超时和最大值。你可以定义几个不同的值来加强CBAC防御网络进攻的能力。在启动环境中,大多数超时和最大值设置都有一个缺省值,可疑满足一般的需求。许多超时和最大值控制着路由器对DoS攻击如何应答。(我将在其他时候就时钟/最大值做更深入的讨论。)
请记住CBAC并不检查ICMP,只检查TCP和UDP。因此,你需要增加相应的ACL入口来适当限制ICMP。考虑在你的ACL上增加这些ICMP入口。这样可以让你的内部网络ping到在互联网中的主机,允许你的路由器对正确的ICMP流量做出回答。
直到目前,我们已经看到怎样配置扩展访问列表的入口并在外部接口上应用了进入流量规则的配置。ACL在入口阻拦所有的流量,而用CBAC可以进行检查。我使用缺省的超时和最大值设置,没有做修改。我建议开始时使用缺省值,然后根据你的需要进行调整。如果你不知道更改这些设置会对防火墙的运转产生什么样的影响,那贸然的更改设置不是一个好主意。接下来,我定义了实际的检查规则来管理哪个应用层协议应该被检查。让我们看一下检查规则的命令结构。
这是通用的配置命令模式。需要你在很短的时间内指定名称,协议,警报设置,审核,和超时值。现在,我们来创建一个自己的。
我已经命名了check-tcp规则,指定协议检测TCP,同时激活警报和审核选项。需要主意的是警报和审核跟踪选项。这需要一个Syslog系统来发送信息。尽管那个配置超出了本文讨论的范围,我还是要建议在记录所有防火墙活动时使用审核。在这里,我在外部接口应用了Serial1规则,如下:
Router (config)# Interface serial1 请注意我已经在外部接口上应用了对外流量的检测规则。这将跟踪检测由内部发起的连接和所有外部接口发往互联网或其他一些外部网络的通信的标题。
如果你在配置CBAC过程中遇到什么困难的话,你可以使用下列的通用命令模式停止配置并恢复所有相关的设置。这并不会删除你配置在外部接口上的扩展访问列表。如果你关闭检测功能,请记住由于访问列表过滤了大多数,如果不是全部的话,从外部接口进入的流量,这很有可能把你的私人网络的所有通信入口都关闭。关闭检查是很简单的:
Router (config)# no ip inspect
这个命令将删除配置中的所有检测信息,包括过滤器规则和应用在接口上的命令行。
现在不再需要基本配置的详细资料了,让我们看一下用ACLs和CBAC检查功能配置一个互联网防火墙路由器。
由于在外部接口上访问列表被用来接收信息,这个基本的CBAC配置只允许有限的ICMP信息通过防火墙路由器。检测规则相当于filter1,它允许内部的用户通过HTTP端口和外界的WWW进行连接并跟踪这些连接,打开返回的状态信息,扩展访问列表。这对FTP和SMTP同样适用。在未来,如果我允许用户使用RealAudio或NetMeeting通道,我可以只是简单的使用add ip inspect 名称命令,其中filter1是名称。
如果想改变检查规则,你可以添加或删除某个行条目。如果想添加说明,通过使用和用户定义的规则相同的名称,用ip inspect 名称命令。如果需要删除某一行,使用no形式的ip inspect名称命令,看下面的例子:
Router (config)# ip inspect filter1 tcp 如果你想检查配置中的某一项,可以使用show ip inspect命令,得到CBAC安装详细资料。就象下面的:
Router# show ip inspect all
所有的参数将显示诸如当前检查的配置,当前通过防火墙的连接这样的信息。
在配置ACLs和CBAC的一个共同点就是需要在外部接口的入口安装一个互联网路由器,这样可以避免私人网络受到互联网中有害流量的攻击。这个配置对那些只允许由内部发起连接的返回流量通过的防火墙是相当简单的。为了实现这以目的,我在进入的接口增加了一个扩展访问列表,这样可以阻拦所有我想检查的流量:
Router (config)# Access-list 101 deny udp any any
Router (config)# interface serial0
Router (config-if)# Ip access-group 101 in
Router (config)# Access-list 101 deny tcp any any eq smtp
Router (config-if)# ip inspect check-tcp out
Router (config)# no ip inspect filter1 tcp