在众多的企业级主流防火墙中,Cisco PIX防火墙是所有同类产品性能最好的一种。Cisco PIX系列防火墙目前有5种型号PIX506,515,520,525,535。其中PIX535是PIX 500系列中最新,功能也是最强大的一款。它可以提供运营商级别的处理能力,适用于大型的ISP等服务提供商。但是PIX特有的OS操作系统,使得大多数管理是通过命令行来实现的,不象其他同类的防火墙通过Web管理界面来进行网络管理,这样会给初学者带来不便。本文将通过实例介绍如何配置Cisco PIX防火墙。
     
     在配置PIX防火墙之前,先来介绍一下防火墙的物理特性。防火墙通常具有至少3个接口,但许多早期的防火墙只具有2个接口;当使用具有3个接口的防火墙时,就至少产生了3个网络,描述如下:
     Ø 内部区域(内网)。 内部区域通常就是指企业内部网络或者是企业内部网络的一部分。它是互连网络的信任区域,即受到了防火墙的保护。
     Ø 外部区域(外网)。 外部区域通常指Internet或者非企业内部网络。它是互连网络中不被信任的区域,当外部区域想要访问内部区域的主机和服务,通过防火墙,就可以实现有限制的访问。
     Ø 停火区(DMZ)。 停火区是一个隔离的网络,或几个网络。位于停火区中的主机或服务器被称为堡垒主机。一般在停火区内可以放置Web服务器,Mail服务器等。停火区对于外部用户通常是可以访问的,这种方式让外部用户可以访问企业的公开信息,但却不允许他们访问企业内部网络。注意:2个接口的防火墙是没有停火区的。
     
     由于PIX535在企业级别不具有普遍性,因此下面主要说明PIX525在企业网络中的应用。
     
     PIX防火墙提供4种管理访问模式:
     ² 非特权模式。 PIX防火墙开机自检后,就是处于这种模式。系统显示为pixfirewall>
     ² 特权模式。 输入enable进入特权模式,可以改变当前配置。显示为pixfirewall#
     ² 配置模式。 输入configure terminal进入此模式,绝大部分的系统配置都在这里进行。显示为pixfirewall(config)#
     ² 监视模式。 PIX防火墙在开机或重启过程中,按住Escape键或发送一个“Break”字符,进入监视模式。这里可以更新操作系统映象和口令恢复。显示为monitor>
     
     配置PIX防火墙有6个基本命令:nameif,interface,ip address,nat,global,route.
     这些命令在配置PIX是必须的。以下是配置的基本步骤:
     1. 配置防火墙接口的名字,并指定安全级别(nameif)。
     Pix525(config)#nameif ethernet0 outside security0
     Pix525(config)#nameif ethernet1 inside security100
     Pix525(config)#nameif dmz security50
     提示:在缺省配置中,以太网0被命名为外部接口(outside),安全级别是0;以太网1被命名为内部接口(inside),安全级别是100.安全级别取值范围为1~99,数字越大安全级别越高。若添加新的接口,语句可以这样写:
     Pix525(config)#nameif pix/intf3 security40 (安全级别任取)
     
     2. 配置以太口参数(interface)
     Pix525(config)#interface ethernet0 auto(auto选项表明系统自适应网卡类型 )
     Pix525(config)#interface ethernet1 100full(100full选项表示100Mbit/s以太网全双工通信 )
     Pix525(config)#interface ethernet1 100full shutdown (shutdown选项表示关闭这个接口,若启用接口去掉shutdown )
     
     3. 配置内外网卡的IP地址(ip address)
     Pix525(config)#ip address outside 61.144.51.42 255.255.255.248
     Pix525(config)#ip address inside 192.168.0.1 255.255.255.0
     很明显,Pix525防火墙在外网的ip地址是61.144.51.42,内网ip地址是192.168.0.1
     
     4. 指定要进行转换的内部地址(nat)
     网络地址翻译(nat)作用是将内网的私有ip转换为外网的公有ip.Nat命令总是与global命令一起使用,这是因为nat命令可以指定一台主机或一段范围的主机访问外网,访问外网时需要利用global所指定的地址池进行对外访问。nat命令配置语法:nat (if_name) nat_id local_ip [netmark]
     其中(if_name)表示内网接口名字,例如inside. Nat_id用来标识全局地址池,使它与其相应的global命令相匹配,local_ip表示内网被分配的ip地址。例如0.0.0.0表示内网所有主机可以对外访问。[netmark]表示内网ip地址的子网掩码。
     例1.Pix525(config)#nat (inside) 1 0 0
     表示启用nat,内网的所有主机都可以访问外网,用0可以代表0.0.0.0
     例2.Pix525(config)#nat (inside) 1 172.16.5.0 255.255.0.0
     表示只有172.16.5.0这个网段内的主机可以访问外网。
     
     5. 指定外部地址范围(global)
     global命令把内网的ip地址翻译成外网的ip地址或一段地址范围。Global命令的配置语法:global (if_name) nat_id ip_address-ip_address [netmark global_mask]
     其中(if_name)表示外网接口名字,例如outside.。Nat_id用来标识全局地址池,使它与其相应的nat命令相匹配,ip_address-ip_address表示翻译后的单个ip地址或一段ip地址范围。[netmark global_mask]表示全局ip地址的网络掩码。
     例1. Pix525(config)#global (outside) 1 61.144.51.42-61.144.51.48
     表示内网的主机通过pix防火墙要访问外网时,pix防火墙将使用61.144.51.42-61.144.51.48这段ip地址池为要访问外网的主机分配一个全局ip地址。
     例2. Pix525(config)#global (outside) 1 61.144.51.42
     表示内网要访问外网时,pix防火墙将为访问外网的所有主机统一使用61.144.51.42这个单一ip地址。
     例3. Pix525(config)#no global (outside) 1 61.144.51.42
     表示删除这个全局表项。
     
     6. 设置指向内网和外网的静态路由(route)
     定义一条静态路由。route命令配置语法:route (if_name) 0 0 gateway_ip [metric]
     其中(if_name)表示接口名字,例如inside,outside。Gateway_ip表示网关路由器的ip地址。[metric]表示到gateway_ip的跳数。通常缺省是1。
     例1. Pix525(config)#route outside 0 0 61.144.51.168 1
     表示一条指向边界路由器(ip地址61.144.51.168)的缺省路由。
     例2. Pix525(config)#route inside 10.1.1.0 255.255.255.0 172.16.0.1 1
     Pix525(config)#route inside 10.2.0.0 255.255.0.0 172.16.0.1 1
     如果内部网络只有一个网段,按照例1那样设置一条缺省路由即可;如果内部存在多个网络,需要配置一条以上的静态路由。上面那条命令表示创建了一条到网络10.1.1.0的静态路由,静态路由的下一条路由器ip地址是172.16.0.1
     
     OK,这6个基本命令若理解了,就可以进入到pix防火墙的一些高级配置了。
     
     A. 配置静态IP地址翻译(static)
     如果从外网发起一个会话,会话的目的地址是一个内网的ip地址,static就把内部地址翻译成一个指定的全局地址,允许这个会话建立。static命令配置语法:static (internal_if_name,external_if_name) outside_ip_address inside_ ip_address 其中internal_if_name表示内部网络接口,安全级别较高。如inside.
     external_if_name为外部网络接口,安全级别较低。如outside等。outside_ip_address为正在访问的较低安全级别的接口上的ip地址。inside_ ip_address为内部网络的本地ip地址。
     例1. Pix525(config)#static (inside, outside) 61.144.51.62 192.168.0.8
     表示ip地址为192.168.0.8的主机,对于通过pix防火墙建立的每个会话,都被翻译成61.144.51.62这个全局地址,也可以理解成static命令创建了内部ip地址192.168.0.8和外部ip地址61.144.51.62之间的静态映射。
     例2. Pix525(config)#static (inside, outside) 192.168.0.2 10.0.1.3
     例3. Pix525(config)#static (dmz, outside) 211.48.16.2 172.16.10.8
     注释同例1。通过以上几个例子说明使用static命令可以让我们为一个特定的内部ip地址设置一个永久的全局ip地址。这样就能够为具有较低安全级别的指定接口创建一个入口,使它们可以进入到具有较高安全级别的指定接口。
     
     
     
     B. 管道命令(conduit)
     前面讲过使用static命令可以在一个本地ip地址和一个全局ip地址之间创建了一个静态映射,但从外部到内部接口的连接仍然会被pix防火墙的自适应安全算法(ASA)阻挡,conduit命令用来允许数据流从具有较低安全级别的接口流向具有较高安全级别的接口,例如允许从外部到DMZ或内部接口的入方向的会话。对于向内部接口的连接,static和conduit命令将一起使用,来指定会话的建立。
     conduit命令配置语法:
     conduit permit | deny global_ip port[-port] protocol foreign_ip [netmask]
     permit | deny 允许 | 拒绝访问
     global_ip 指的是先前由global或static命令定义的全局ip地址,如果global_ip为0,就用any代替0;如果global_ip是一台主机,就用host命令参数。
     port 指的是服务所作用的端口,例如www使用80,smtp使用25等等,我们可以通过服务名称或端口数字来指定端口。
     protocol 指的是连接协议,比如:TCP、UDP、ICMP等。
     foreign_ip 表示可访问global_ip的外部ip