防火墙在互联网中起着非常重要的作用,它通过检查和过滤进出网络的每一个数据包,保护企业内部网免受外来攻击。防火墙产品一般分为硬件和软件2种,硬件防火墙采用专用的硬件设备,然后集成生产厂商的专用防火墙软件; 软件防火墙一般基于某个操作系统平台开发,直接在计算机上进行软件的安装和配置。相对于软件防火墙而言,硬件防火墙往往能提供更优越的网络速度和性能,Cisco公司的PIX防火墙就是一种典型的企业级硬件防火墙产品。
一、Cisco PIX的特点
---- 作为一种硬件防火墙,Cisco PIX的优势有两点:第一,网络性能相当不错,Cisco PIX可以提供2~6个100Mbps快速以太网接口,能够满足大部分的应用需求。与软件防火墙相比,它的包处理速度和转发速度要快得多。第二,Cisco PIX中包含了丰富的基于IPsec的VPN服务软件,VPN能够提供站点到站点之间和远程客户端到站点之间的安全访问,不过需要另外的一台认证服务器。
---- Cisco PIX的不足之处是管理完全基于命令行方式,如果用户需要图形化的管理界面,就必须到Cisco网站上下载一个管理软件;另外,Cisco PIX的监视和日志功能有限,为了记录日志,还必须下载一个基于Windows NT的PIX Firewall Syslog Server才行。Cisco PIX无法根据用户名或工作组来进行安全策略管理,而只能通过IP地址进行管理,而且实施安全策略管理还需要购买另一个软件包CSPM(Cisco Security Policy Manager)。
二、Cisco PIX的管理和配置
---- 现在,我们通过一个相对简单的示例说明如何使用Cisco PIX对企业内部网络进行管理。网络拓扑图如附图所示。Cisco PIX安装2个网络接口,一个连接外部网段,另一个连接内部网段,在外部网段上运行的主要是DNS服务器,在内部网段上运行的有WWW服务器和电子邮件服务器,通过Cisco PIX,我们希望达到的效果是:对内部网络的所有机器进行保护,WWW服务器对外只开放80端口,电子邮件服务器对外只开放25端口。具体操作步骤如下。
1.连接一台控制终端
---- 通常使用PIX上的CONSOLE端口对防火墙进行管理和配置。当防火墙配置好以后,也可以通过telnet方式管理防火墙,但出于安全性的考虑,还是尽量不要开放telnet功能。使用CONSOLE端口的具体方法如下。
---- 使用串行电缆将PIX与PC机的串口进行连接,在Windows中打开“超级终端”,进入“新建连接”,并为新连接命名,比如“PIX”;选择“使用COM1”,且在COM1属性框中定义速度为9600bps,数据位为8,校验为None,停止位为1,Flow control为Hardware;然后单击“OK”,接着打开PIX防火墙电源,在终端窗口中应当看到启动信息。如果看不到启动信息,说明电缆连接有问题。
---- 2.获得最新PIX软件
---- 从Cisco公司的WWW或FTP站点上,我们可以获得PIX的最新软件,主要包括如下内容。
1. pix44n.exe――PIX防火墙的软件映像文件。
2. pfss44n.exe――PIX Firewall Syslog Server服务器软件,能够提供一个Windows NT服务,用来记录PIX的运行日志。
3. pfm432b.exe――图形化的PIX管理软件。
4. rawrite.exe――用于生成PIX的启动软盘。
---- 3.配置网络路由
---- 在使用防火墙的内部网段上,需要将每台计算机的缺省网关指向防火墙,比如防火墙内部IP地址为10.0.0.250,则内部网段上的每台计算机的缺省网关都要设置为10.0.0.250。具体设置在“控制面板”*“网络”*“TCP/IP协议”中进行。
---- 4.配置PIX
---- 在配置PIX之前,应该对网络进行详细的规划和设计,搜集需要的网络配置信息。要获得的信息如下。
---- (1)每个PIX网络接口的IP地址。
---- (2) 如果要进行NAT,则要提供一个IP地址池供NAT使用。NAT是网络地址转换技术,它可以将使用保留地址的内部网段上的机器映射到一个合法的IP地址上以便进行Internet访问。
---- (3) 外部网段的路由器地址。
---- 进入PIX配置界面的方法是:连接好超级终端,打开电源,在出现启动信息和出现提示符 pixfirewall>后输入“enable”,并输入密码,进入特权模式;当提示符变为 pixfirewall#>后,输入“configure terminal”,再进入配置界面。
---- 在配置过程中,我们可以使用write terminal命令查看当前配置,使用write memory保存配置信息到Flash Memory。
---- 5.配置网络接口
---- PIX使用nameif和ip address命令进行网络接口配置。
---- 首先使用下面的语句定义内部网段和外部网段的网络接口。
---- nameif ethernet0 outside security0
---- nameif ethernet1 inside security100
---- PIX防火墙使用Intel的10/100Mbps网卡,使用下面的命令定义接口配置为自适应。
---- interface ethernet0 auto
---- interface ethernet1 auto
---- 最后,我们定义接口的IP地址和掩码。
---- ip address inside 10.0.0.250 255.255.255.0
---- ip address outside 202.12.29.205 255.255.255.248
---- 6.允许内部用户访问外部网段
---- 在前面,我们定义了内部网段安全值为100,外部网段安全值为0。用户在安全值高的区域访问安全值低的区域,需要使用nat和global命令;相反地,如果允许安全值低的区域的用户访问安全值高的区域的用户,则需要使用static和conduit命令。
---- nat (inside) 1 0 0
---- global (outside) 1 202.12.29.206 netmask 255.255.255.248
---- 其中1为NAT ID,两个语句中的NAT ID应一样。前一句表示允许所有机器对外访问,第二句定义NAT使用的地址池,由于大部分情况下,合法的IP地址并不多,因此在此例中只设置了一个合法IP地址202.12.29.206用来做地址转换。
---- 7.定义外部路由
---- 对于外部网段,还需要定义外部路由,它是防火墙外部网段的缺省路由:route outside 0 0 202.12.29.202 1。其中0 0表示外部网段的缺省路由,1表示从防火墙到路由器只有一个hop。
---- 8.允许使用ping命令
---- conduit permit icmp any any 此命令允许在内部网段和外部网段使用ping命令进行网络测试。因为ping命令使用的是ICMP协议,在设置和调试期间,一般开放此功能,当防火墙工作正常后,也可以关闭此项功能。
---- 9.保存设置和重新启动
---- 使用write memory命令将配置信息写入flash memory。使用reload命令重新启动防火墙。
---- 10.增加telnet访问控制
---- 在PIX中,我们可以定义只允许某些机器通过telnet访问防火墙。需要注意的是,这里进行telnet访问的机器必须在内部网段上,以增强安全性。
---- telnet 10.0.0.204 255.255.255.255
---- 即允许10.0.0.204这台机器使用telnet访问防火墙。
---- telnet timeout 15
---- 即将空闲时间设置为15分钟,当访问防火墙的机器15分钟内没有任何操作时,将自动断开连接。
---- telnet访问的缺省口令是cisco,可以通过passwd命令来修改口令。
---- 测试telnet时,我们可以使用命令debug icmp trace来获得更多的信息。
---- 11.增加服务器访问控制
---- 缺省情况下,PIX拒绝所有来自外部网段的访问请求。当WWW服务器等设备放在防火墙的内部网段上时,为了使外部网络上的用户可以访问到,必须使用static和conduit命令来进行配置。
---- 下面,我们给出允许外部网络访问内部网络上的WWW服务器的命令。
---- static (inside,outside) 202.12.29.204 10.0.0.204 netmask 255.255.255.255
---- conduit permit tcp host 202.12.29.204 eq www any
---- 其中,第一个命令将在内部网段的WWW服务器10.0.0.204映射一个外部合法地址202.12.29.204;第二个命令允许所有外部主机通过tcp port 80访问202.12.29.204这台服务器。
---- 接着,我们再给出一个允许外部网络访问内部网络上的邮件服务器10.0.0.203的命令。
---- static (inside,outside) 202.12.29.203 10.0.0.203 netmask 255.255.255.255
---- conduit permit tcp host 202.12.29.203 eq smtp any
---- 12.控制内部网段对外的访问
---- 使用outbound和apply命令进行组合,可以控制内部网段的机器能否对外进行访问,举例说明如下。
---- outbound 10 deny 10.0.0.0 255.255.255.0 irc tcp
---- outbound 10 permit 10.0.0.204 255.255.255.255 irc tcp
---- apply (inside) 10 outgoing_src 如果不想让内部用户使用CHAT功能,可以采用第一条命令,禁止10.0.0.1~10.0.0.255的所有机器使用CHAT功能访问外部站点;第二条命令允许10.0.0.204这台机器通过irc协议访问外部站点;第三条命令将前面的命令应用在inside,也就是内部网段上。
---- outbound 20 deny 202.102.224.25 255.255.255.255 www tcp
---- apply (inside) 20 outgoing_dest
---- 通过对以上2条命令的组合使用,我们可以禁止内部网段上的所有机器访问外部网络的WWW服务器202.102.224.25。
---- 到此为止,我们已经介绍了在网络管理中通常会使用到的一些设置命令,其实还有一些其他相关的设置命令,大家可以查阅PIX的文档或者访问Cisco公司的网站以获取最新的资料。