Cisco Pix 525 防火墙配置手册 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

任何企业安全策略的一个主要部分都是实现和维护防火墙,因此防火墙在网络安全的实现当中扮演着重要的角色。防火墙通常位于企业网络的边缘,这使得内部网络与 Internet 之间或者与其他外部网络互相隔离,并限制网络互访从而保护企业内部网络。设置防火墙目的都是为了在内部网与外部网之间设立唯一的通道,简化网络的安全管理。
在众多的企业级主流防火墙中, 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
(安全级别任取)

以托日防火墙为列:

nameif ethernet0 outside security0

nameif ethernet1 inside security100

nameif ethernet2 intf2 security95

nameif ethernet3 intf3 security90

nameif ethernet4 intf4 security85

nameif ethernet5 intf5 security80

2. 配置以太口参数( interface
Pix525(config)#interface ethernet0 auto
auto 选项表明系统自适应网卡类型)
Pix525(config)#interface ethernet1 100full
100full 选项表示 100Mbit/s 以太网全双工通信)
Pix525(config)#interface ethernet1100fullshutdown
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

以托日防火墙为列:

 

System IP Addresses:

        ip address outside 172.18.255.250 255.255.0.0

        ip address inside 10.16.1.1 255.255.224.0

        ip address intf2 172.18.22.1 255.255.255.0

        ip address intf3 10.8.8.1 255.255.255.0

        ip address intf4 172.18.36.2 255.255.255.0

        ip address intf5 127.0.0.1 255.255.255.255

Current IP Addresses:

        ip address outside 172.18.255.250 255.255.0.0

        ip address inside 10.16.1.1 255.255.224.0

        ip address intf2 172.18.22.1 255.255.255.0

        ip address intf3 10.8.8.1 255.255.255.0

        ip address intf4 172.18.36.2 255.255.255.0

        ip address intf5 127.0.0.1 255.255.255.255

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 地址。例如<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /> 0.0.0 .0 表示内网所有主机可以对外访问。 [netmark] 表示内网 ip 地址的子网掩码。
1 Pix52

5(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
表示删除这个全局表项。

以托日防火墙为列:

global (outside) 1 172.18.4.210

global (outside) 2 172.18.4.211

global (outside) 3 172.18.4.212

global (outside) 4 172.18.4.213

global (outside) 13 172.18.4.228

global (outside) 14 172.18.4.229

global (outside) 11 172.18.4.230

global (outside) 15 172.18.4.101

global (outside) 222 172.18.4.214

global (outside) 16 172.18.4.209

global (outside) 17 172.18.4.208

global (outside) 10 172.18.3.144

global (intf2) 12 172.18.22.219 netmask 255.255.255.255

global (intf2) 4 172.18.22.241

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 地址。这样就能够为具有较低安全级别的指定接口创建一个入口,使它们可以进入到具有较高安全级别的指定接口。  

以托日防火墙为列:

outside 0.0.0.0 0.0.0.0 172.18.0.250 1 OTHER static

intf3 10.8.8.0 255.255.255.0 10.8.8.1 1 CONNECT static

inside 10.10.10.0 255.255.255.0 10.16.12.254 1 OTHER static

inside 10.12.12.0 255.255.255.0 10.16.12.254 1 OTHER static

inside 10.16.0.0 255.255.224.0 10.16.1.1 1 CONNECT static

inside 10.17.1.0 255.255.255.0 10.16.1.99 1 OTHER static

outside 172.18.0.0 255.255.0.0 172.18.255.250 1 CONNECT static

intf2 172.18.22.0 255.255.255.0 172.18.22.1 1 CONNECT static

outside 172.18.26.0 255.255.255.0 172.18.2.10 1 OTHER static

intf4 172.18.36.0 255.255.255.0 172.18.36.2 1 CONNECT static

outside 172.18.96.0 255.255.255.0 172.18.3.16 1 OTHER static

outside 172.18.194.0 255.255.255.0 172.18.3.16 1 OTHER static

inside 172.30.1.0 255.255.255.0 10.16.1.99 1 OTHER static

 

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 。对于任意主机,可以用 any 表示。如果 foreign_ip 是一台主机,就用 host 命令参数。  
1. Pix525(config)#conduit permit tcp host 192.168.0.8 eq www any 
这个例子表示允许任何外部主机对全局地址 192.168.0.8 的这台主机进行 http 访问。其中使用 eq 和一个端口来允许或拒绝对这个端口的访问。 Eq ftp  就是指允许或拒绝只对 ftp 的访问。  
2. Pix525(config)#conduit deny tcp any eq ftp host 61.144.51.89 
表示不允许外部主机 61.144.51.89 对任何全局地址进行 ftp 访问。  
3. Pix525(config)#conduit permit icmp any any 
表示允许 icmp 消息向内部和外部通过。  
4. Pix525(config)#static (inside, outside) 61.144.51.62 192.168.0.3 
Pix525(config)#conduit permit tcp host 61.144.51.62 eq www any 
这个例子说明 static conduit 的关系。 192.168.0.3 在内网是一台 web 服务器,现在希望外网的用户能够通过 pix 防火墙得到 web 服务。所以先做 static 静态映射: 192.168.0.3 >61.144.51.62 (全局),然后利用 conduit 命令允许任何外部主机对全局地址 61.144.51.62 进行 http 访问。  

以托日防火墙为列

conduit permit tcp host 172.18.4.215 eq www any (hitcnt=0)

conduit permit icmp any host 172.18.1.18 (hitcnt=0)

conduit permit icmp any host 172.18.1.20 (hitcnt=0)

conduit permit tcp host 172.18.1.11 eq sqlnet any (hitcnt=0)

conduit permit tcp host 172.18.1.11 eq telnet any (hitcnt=0)

conduit permit tcp host 172.18.1.11 eq ftp any (hitcnt=0)

conduit permit ip host 172.18.3.1 any (hitcnt=0)

conduit permit tcp host 172.18.3.30 eq 1433 any (hitcnt=0)

conduit permit tcp host 172.18.2.20 eq 1433 any (hitcnt=0)

conduit permit ip host 172.18.3.31 any (hitcnt=0)

conduit permit tcp host 172.18.4.216 eq www any (hitcnt=0)

conduit permit ip host 172.18.10.212 any (hitcnt=0)

conduit permit tcp host 172.18.4.215 eq ftp any (hitcnt=0)

conduit permit icmp any host 172.18.1.12 (hitcnt=0)

conduit permit tcp host 172.18.1.12 eq sqlnet any (hitcnt=0)

conduit permit ip host 172.18.4.207 any (hitcnt=0)

conduit permit ip host 172.18.3.222 any (hitcnt=0)

conduit permit icmp host 172.18.1.11 any (hitcnt=0)

conduit permit tcp host 172.18.4.218 any (hitcnt=0)

conduit permit udp host 172.18.4.218 any (hitcnt=0)

conduit permit tcp host 172.18.4.218 eq 24051 any (hitcnt=0)

conduit deny tcp any host 172.18.94.118 (hitcnt=0)

conduit permit icmp any any (hitcnt=0)

conduit permit udp any any (hitcnt=0)

conduit permit tcp any any (hitcnt=3)

C.  配置 fixup 协议  
fixup
命令作用是启用,禁止,改变一个服务或协议通过 pix 防火墙,由 fixup 命令指定的端口是 pix 防火墙要侦听的服务。见下面例子:  
1  Pix525(config)#fixup protocol ftp 21 
启用 ftp 协议,并指定 ftp 的端口号为 21 
2  Pix525(config)#fixup protocol http 80 
Pix525(config)#fixup protocol http 1080 
http 协议指定 80 1080 两个端口。  
3  Pix525(config)#no fixup protocol smtp 80 
禁用 smtp 协议。  

以托日防火墙为列

fixup protocol ftp 21

no fixup protocol h323 h225 1720

fixup protocol h323 h225 1340-65535

no fixup protocol h323 ras 1718-1719

fixup protocol http 80

fixup protocol ils 389

fixup protocol rsh 514

fixup protocol rtsp 554

fixup protocol sip 5060

fixup protocol sip udp 5060

fixup protocol skinny 2000

fixup protocol smtp 25

fixup protocol sqlnet 1521

 

D.  设置 telnet 
telnet
有一个版本的变化。在 pix OS 5.0 pix 操作系统的版本号)之前,只能从内部网络上的主机通过 telnet 访问 pix 。在 pix OS 5.0 及后续版本中,可以在所有的接口上启用 telnet pix 的访问。当从外部接口要 telnet pix 防火墙时, telnet 数据流需要用 ipsec 提供保护,也就是说用户必须配置 pix 来建立一条到另外一台 pix ,路由器或 *** 客户端的 ipsec 隧道。另外就是在 PIX 上配置 SSH ,然后用 SSH client 从外部 telnet PIX 防火墙, PIX 支持 SSH1 SSH2 ,不过 SSH1 是免费软件, SSH2 是商业软件。相比之下 cisco 路由器的 telnet 就作的不怎么样了。  
telnet
配置语法: telnet local_ip [netmask] 
local_ip 
表示被授权通过 telnet 访问到 pix ip 地址。如果不设此项, pix 的配置方式只能由 console 进行。  

以托日防火墙为列

172.18.0.0 255.255.0.0 outside

172.18.3.7 255.255.255.255 outside

10.16.0.0 255.255.224.0 inside

10.16.12.20 255.255.255.255 inside

10.16.12.150 255.255.255.255 inside

10.16.12.254 255.255.255.255 inside

10.16.0.0 255.255.224.0 intf2

10.16.12.254 255.255.255.255 intf2

10.16.0.0 255.255.224.0 intf3

10.8.8.0 255.255.255.0 intf3

10.16.12.254 255.255.255.255 intf3

10.16.0.0 255.255.224.0 intf4

10.16.12.254 255.255.255.255 intf4

10.16.0.0 255.255.224.0 intf5

10.16.12.254 255.255.255.255 intf5

说了这么多,下面给出一个配置实例供大家参考。  

Welcome to the PIX firewall 

Type help or '?' for a list of available commands. 
PIX525> en 
Password: 
PIX525#sh config 
: Saved 

PIX Version 6.0(1) ------ PIX
当前的操作系统版本为 6.0 
Nameif ethernet0 outside security0 
Nameif ethernet1 inside security100 ------ 
显示目前 pix 只有 2 个接口  
Enable password 7Y051HhCcoiRTSQZ encrypted 
Passed 7Y051HhCcoiRT
SQZ encrypted ------ pix 防火墙密码在默认状态下已被加密,在配置文件中不会以明文显示, telnet  密码缺省为 cisco 
Hostname PIX525 ------ 
主机名称为 PIX525 
Domain-name 123.com ------ 
本地的一个域名服务器 123.com ,通常用作为外部访问  
Fixup protocol ftp 21 
Fixup protocol http 80 
fixup protocol h323 1720 
fixup protocol rsh 514 
fixup protocol smtp 25 
fixup protocol sqlnet 1521 
fixup protocol sip 5060 ------ 
当前启用的一些服务或协议,注意 rsh 服务是不能改变端口号  
names ------ 
解析本地主机名到 ip 地址,在配置中可以用名字代替 ip 地址,当前没有设置,所以列表为空  
pager lines 24 ------ 
24 行一分页  
interface ethernet0 auto 
interface ethernet1 auto ------ 
设置两个网卡的类型为自适应  
mtu outside 1500 
mtu inside 1500 ------ 
以太网标准的 MTU 长度为 1500 字节  

ip address outside 61.144.51.42 255.255.255.248 
ip address inside 192.168.0.1 255.255.255.0 ------ pix
外网的 ip 地址 61.144.51.42 ,内网的 ip 地址 192.168.0.1 
ip audit info action alarm 
ip audit attack action alarm ------ pix
***检测的 2 个命令。当有数据包具有***或报告型特征码时, pix 将采取报警动作(缺省动作),向指定的日志记录主机产生系统日志消息;此外还可以作出丢弃数据包和发出 tcp 连接复位信号等动作,需另外配置。  
pdm history enable ------ PIX
设备管理器可以图形化的监视 PIX 
arp timeout 14400 ------ arp
表的超时时间  
global (outside) 1 61.144.51.46 ------ 
如果你访问外部论坛或用 QQ 聊天等等,上面显示的 ip 就是这个  
nat (inside) 1 0.0.0.0 0.0.0.0 0 0 
static (inside, outside) 61.144.51.43 192.168.0.8 netmask 255.255.255.255 0 0 
conduit permit icmp any any 
conduit permit tcp host 61.144.51.43 eq www any 
conduit permit udp host 61.144.51.43 eq domain any 
------ 
61.144.51.43 这个 ip 地址提供 domain-name 服务,而且只允许外部用户访问 domain udp 端口  
route outside 0.0.0.0 0.0.0.0 61.144.51.61 1 ------ 
外部网关 61.144.51.61 
timeout xlate 3:00:00 ------ 
某个内部设备向外部发出的 ip 包经过翻译 (global) 后,在缺省 3 个小时之后此数据包若没有活动,此前创建的表项将从翻译表中删除,释放该设备占用的全局地址  
timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 rpc 0:10:00 h323 0:05:00 sip 0:30:00 sip_media 0:02:00 
timeout uauth 0:05:00 absolute ------ AAA
认证的超时时间, absolute 表示连续运行 uauth 定时器,用户超时后,将强制重新认证  
aaa-server TACACS+ protocol tacacs+ 
aaa-server RADIUS protocol radius ------ AAA
服务器的两种协议。 AAA 是指认证,授权,审计。 Pix 防火墙可以通过 AAA 服务器增加内部网络的安全  
no snmp-server location 
no snmp-server&n

bsp;contact 
snmp-server community public ------ 
由于没有设置 snmp 工作站,也就没有 snmp 工作站的位置和联系人  
no snmp-server enable traps ------ 
发送 snmp 陷阱  
floodguard enable ------ 
防止有人伪造大量认证请求,将 pix AAA 资源用完  
no sysopt route dnat 
telnet timeout 5 
ssh timeout 5 ------ 
使用 ssh 访问 pix 的超时时间  
terminal width 80 
Cryptochecksum:a9f03ba4ddb72e1ae6a543292dd4f5e7 
PIX525# 
PIX525#write memory ------ 
将配置保存  

上面这个配置实例需要说明一下, pix 防火墙直接摆在了与 internet 接口处,此处网络环境有十几个公有 ip, 可能会有朋友问如果我的公有 ip 很有限怎么办?你可以添加 router 放在 pix 的前面,或者 global 使用单一 ip 地址,和外部接口的 ip 地址相同即可。另外有几个维护命令也很有用, show interface 查看端口状态, show static 查看静态地址映射, show ip 查看接口 ip 地址, ping outside | inside ip_address 确定连通性。