现在,网络安全已成为每个联网企业的首要关注问题,而且防火墙也已作为一种主要的安全机制被人们采用。虽然一些企业已经开始致力于“防火墙应用”,(我并不是说这是一种最好的解决办法),但这些应用对于中小型企业来说相当昂贵。比如,一台Cisco PIX Firewall要花费几千美元。
  
   不过,现在出现了一种价廉物美的防火墙解决方案,可能这种解决方案一直被大家所忽视。目前,许多公司都使用标准的路由器联入互联网,如果您使用的是Cisco路由器,那么您应该知道Cisco IOS集成了一系列构建防火墙和入侵检测系统的功能。利用这些功能,您就可以不再需要单独的防火墙设备(firewall box),使用已有的Cisco路由器您完全可以构建自己的防火墙。我喜欢把这种方案称之为“穷人的防火墙”。
  
   相关安全资源
  
   美国国家安全局(National Security Agency)站点下的executive summary for Cisco router security有一些关于如何利用Cisco路由器构建防火墙的非常好的建议。这是我所见到的介绍这方面知识的最好站点。
  
   获取合适的的IOS
  
   首先,您应该获取适合自己Cisco路由器的IOS。如果您只对最基本的防火墙感兴趣(对IP地址和端口进行过滤),那么您可以通过Cisco路由器中已有的扩展访问控制列表来实现这种过滤。但如果您想要防火墙更强大的功能,那么您还需要加入防火墙/入侵检测系统(FW/IDS)。
  
   访问 Cisco IOS Upgrade Planner ,您可以获取带有FW/IDS的IOS,不过,只有Cisco站点的注册用户才能访问此链接。利用IOS Upgrade Planner,您可以选择合适的路由器模块,您需要的IOS版本(最好是最新的版本),以及您寻找的软件功能。请一定确保您选择的IOS带有FW/IDS。(为使用FW/IDS,您可能需要支付少量注册许可费用)。接着,您可以下载选好的IOS,升级路由器到新版本,并重启路由器。
  
   配置NAT
  
   下一步,您需要正确配置防火墙和IDS。就象我前文提到的那样,可以通过扩展IP访问控制列表配置最基本的防火墙。同样,这也是配置更高级防火墙的基准点。
  
   因为许多公司使用了网络地址转换(NAT)和企业内部私有TCP/IP地址,所以我们首先应该配置这部分的访问控制列表。通常,NAT在如下环境中实现:路由器通过串口与英特网联接,通过以太口联结局域网。这种情况下,NAT通过在企业内部网中使用私有TCP/IP地址,加强了内部网络的秘密性和安全性。而且,企业更换Internet服务提供商(ISP)后,也不必改动内部网络的地址。
  
   可以按照如下的步骤配置Cisco路由器: interface Serial1/0
   description Internet connection – external
   ip address 1.1.1.254 255.255.255.0 !real Internet network
   no ip proxy-arp
   ip nat outside
   interface Ethernet1/1
   description Local Network Ethernet Connection - internal
   ip address 10.253.2.2 255.255.0.0 !local private network
   no ip proxy-arp
   ip nat inside
   ip nat inside source static 10.253.1.1 1.1.1.1 ! Web server
   ip nat inside source static 10.253.1.2 1.1.1.2 ! Email server
   ip route 0.0.0.0 0.0.0.0 1.1.1.0
  
  
  
   注意,本地Web服务器的IP地址现在是10.253.1.1,本地邮件服务器的IP地址是10.253.1.2。在实现防火墙之前,这两个拥有公共IP地址的系统,1.1.1.1 (Web服务器)和 1.1.1.2 (邮件服务器),在英特网上没有受到保护。而现在,这两台服务器拥有了内部IP地址,它们的外部公共IP地址在防火墙处被转换成为内部IP地址。
  
   同样,其他的内部和外部地址都相应被转换,目的地址不是本地10.x.x.x网络的包会通过串口发送出去。
  
   配置访问列表
  
   现在可以针对某类网络的安全来配置访问列表了。如果您的安全策略是在Web服务器上只允许HTTP协议,在邮件服务器上只允许SMTP协议,那么您应该配置如下的控制列表: access-list 100 remark Begin -- IP .1 10.253.1.1 Web Server
   access-list 100 permit tcp any eq www host 1.1.1.1
   access-list 100 remark End ---------------------------------
   !
   access-list 100 remark Begin -- IP .2 10.253.1.2 Email Server
   access-list 100 permit tcp any eq smtp host 1.1.1.2 gt 1023
   access-list 100 permit tcp any host 1.1.1.2 eq smtp
   access-list 100 remark End ----------------------------------
  
  
  
   然后,使用下面的命令将控制列表应用到串口(英特网接口)上: interface Serial1/0
   ip access-group 100 in
  
  
   对网络安全来说,将防火墙阻断的各类数据记录到日志中是相当重要的一点。尽管每个访问控制列表都清楚地列出了应该拒绝的数据包,但防火墙却不能将这些报文记录到日志中。我建议在网络中安装一台日志服务器,让路由器登录到该日志服务器上,记录所有被防火墙拒绝的数据包。在本例中,网络中的Web服务器也是日志服务器,您可以通过下面的命令对路由器进行相应配置:
  
   access-list 100 deny ip any any log logging 10.253.1.1
  
  
   配置NBAR
  
   说了这么多,我们仍然还没有真正接触到Cisco FW/IDS。下面我们将配置基于网络应用的识别(NBAR),这是防火墙的一个特征。基本上,NBAR能识别应用层命令,如HTTP,MIME,PCAnywhere,Microsoft SQL server,以及其他一些应用的命令,并可以采取下一步措施——例如丢弃这个连结。
  
   举一个简单的例子,我们看看如何利用NBAR阻止红色代码攻击。首先,定义一个此类攻击的class-map,指明您想阻断对哪种应用、那个文件的访问:
  
   class-map match-any http-hacks match protocol http url "*cmd.exe*" match protocol http url "*root.exe*"
  
  
   接着,利用一个策略映射(policy map)标记具有这些特征的数据包:
  
   policy-map mark-inbound-http-hacks
  
   class http-hacks
  
   set ip dscp 1
  
   然后,在以太口(英特网接口)上应用该策略映射:
  
   interface Serial1/0
  
   service-policy input mark-inbound-http-hacks
  
   NBAR可以有效阻止各种散布在英特网中的蠕虫入侵,这些蠕虫有的是通过电子邮件传播,有的是从Web网页上下载下来的。NBAR仅是Cisco FW/IDS的一个特色;其他的功能我们可参考Cisco配置指南。
  
   应用IDS特色和其他选项
  
   入侵检测系统(IDS)是网络安全的另一重要领域。Cisco IDS能识别“攻击特征”,我称之为“攻击模式”。以垃圾邮件为例,Cisco IDS能识别这些垃圾邮件的发源地并采取指定的处理措施。(或丢弃保文,或通知管理员,等等。)
  
   以后我可能会写一篇如何配置Cisco IDS的文章。由于IDS只是防火墙的一个可选部分,我还是有机会再介绍吧。不过,我建议您在配置Cisco IDS之前,仔细阅读一下配置Cisco IOS入侵检测系统。
  
   Cisco FW/IDS的另外两个重要特色是基于上下文的访问控制(CBAC)和TCP报文截取(TCP Intercept)。CBAC能识别数据报文的“上下文”环境,能根据上下文创建动态访问控制列表。
  
   以FTP通信为例,如果您只允许向外的FTP访问,那么您应该使用CBAC,而不是在访问控制列表中完全开放相应端口。一般情况下,防火墙应该拒绝FTP数据回应报文访问内部网,但CBAC能识别该FTP连结是从内部网络中发起的,并自动打开相应端口,以便让数据回应报文返回给内部网用户。当这种通信没有发生时,您的网络就没有“突破口”(开放的端口),黑客就不能进行攻击,因此,这将使您的网络更安全。
  
   TCP报文截取能防止您的网络遭受拒绝服务攻击(DoS)。在数据包到达目的主机(网络中的服务器)之前,TCP报文截取能检验某个TCP包的源地址是否真实存在。如果源地址不存在,那么路由器能在该TCP包到达服务器之前丢弃它,并消耗其有效处理时间,这可以停止DoS攻击的攻击过程。
  
   总结
  
   我们可以看到,Cisco IOS FW/IDS提供了强大的功能。它可以在一台设备上实现路由器和防火墙,对我的公司来说这是一种省钱的解决方案,对您的公司来说这可能也是一种省钱的方案。尽管本文只是介绍了构建Cisco IOS 防火墙的一些肤浅知识,但我想这对于您来说有可能是一个好的开始。下面是构建Cisco IOS 防火墙的部分相关网址。有参考价值的Cisco IOS防火墙链接:
  
   Cisco IOS Upgrade Planner
   Cisco IOS Software
   Cisco IOS Security Configuration Guide, Release 12.2, Traffic Filtering and Firewalls Section
   Cisco IOS Firewall Overview
   Configuring Cisco IOS Firewall Intrusion Detection System
   Configuring TCP Intercept (Preventing Denial-of-Service Attacks)
   Configuring Context-Based Access Control
   Access Control Lists: Overview and Guidelines
   Cisco IOS Security Command Reference, Release 12.2, Traffic Filtering and Firewalls Section
   TCP Intercept Commands
   Context-Based Access Control Commands
   Cisco IOS Firewall Intrusion Detection System Commands
   Cisco - Security Technical Tips
   Cisco - Configuring Network Based Application Recognition (NBAR)
   Cisco - Using Network-Based Application Recognition and Access Control Lists for Blocking the Code Red Worm
   National Security Agency (NSA): Cisco Router Security Configuration Guide
   National Security Agency (NSA): Cisco Router Security Configuration Guide EXECUTIVE SUMMARY
   TechRepublic: “Cisco's hidden gem: The IOS firewall”
   TechRepublic: “Get secure with Cisco extended IP access control lists”
   CertCities: The NBAR Defense