非淡泊无以明志,非宁静无以致远
全部博文(408)
分类: 系统运维
2009-11-15 20:02:43
PIX是CISCO公司开发的防火墙系列设备,主要起到策略过滤,隔离内外网,根据用户实际需求设置DMZ(停火区)。它和一般硬件防火墙一样具有转发数据包速度快,可设定的规则种类多,配置灵活的特点。
配置PIX防火墙有六个基本命令:nameif,interface,ip address,nat,global,route。
我们先掌握这六个基本命令,然后再学习更高级的配置语句。
1、nameif配置防火墙接口的名字,并指定安全级别:
Pix525(config)#nameif ethernet0 outside security0 //命名e0为outside,安全级别为0。该名称在后面使用
Pix525(config)#nameif ethernet1 inside security100 //命名e1为inside,安全级别为100。安全系数最高
Pix525(config)#nameif dmz security50 //设置DMZ接口为停火区,安全级别50。安全系数居中。
在该配置中,e0被命名为外部接口(outside),安全级别是0;以e1被命名为内部接口(inside),安全级别是100。安全级别取值范围为1到99,数字越大安全级别越高。
2、配置以太口参数(interface):
Pix525(config)#interface ethernet0 auto //设置e0为AUTO模式,auto选项表明系统网卡速度工作模式等为自动适应,这样该接口会自动在10M/100M,单工/半双工/全双工直接切换。
Pix525(config)#interface ethernet1 100 full //强制设置以太接口1为100Mbit/s全双工通信。
Pix525(config)#shutdown //关闭端口
小提示:在节假日需要关闭停火区的服务器的服务时可以在PIX设备上使用interface dmz 100full shutdown,这样DMZ区会关闭对外服务。
3、配置内外网卡的IP地址(ip address)
Pix525(config)#ip address outside 61.144.51.42 255.255.255.248 //设置外网接口为61.144.51.42,子网掩码为255.255.255.248
Pix525(config)#ip address inside 192.168.0.1 255.255.255.0 //设置内网接口IP地址、子网掩码。
你可能会问为什么用的是outside和inside而没有使用ethernet1,ethernet0呢?其实这样写是为了方便我们配置,不容易出错误。只要我们通过nameif设置了各个接口的安全级别和接口类别,接口类别就代表了相应的端口,也就是说outside=ethernet0,inside=ethernet1。
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地址的子网掩码。示例语句如下:
Pix525(config)#nat (inside) 1 0.0.0.0 0.0.0.0 //启用nat,内网的所有主机都可以访问外网,可以用0代表0.0.0.0
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地址的网络掩码。示例语句如下:
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地址。
Pix525(config)#global (outside) 1 61.144.51.42 //设置内网要访问外网时,pix防火墙将为访问外网的所有主机统一使用61.144.51.42这个单一ip地址。
Pix525(config)#no global (outside) 1 61.144.51.42 //删除global中对61.144.51.42的宣告,也就是说数据包通过NAT向外传送时将不使用该IP,这个全局表项被删除。
6、设置指向内网和外网的静态路由(route)
route命令定义一条静态路由。
route命令配置语法:route (if_name) 0 0 gateway_ip [metric]
其中(if_name)表示接口名字,例如inside,outside。Gateway_ip表示网关路由器的ip地址。[metric]表示到gateway_ip的跳数。通常缺省是1。示例语句如下:
Pix525(config)#route outside 0 0 61.144.51.168 1 //设置一条指向边界路由器(ip地址61.144.51.168)的缺省路由。
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 //设置另一条指向内部的路由。
总结:目前我们已经掌握了设置PIX的六大基本命令,通过这六个命令我们已经可以让PIX为我们的网络服务了。不过让网络运行还远远不够,我们要有效的利用网络,合理的管理网络,这时候就需要一些高级命令了。
PIX防火墙高级配置命令
1、配置静态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地址。 示例语句如下:
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之间的静态映射。PIX将把192.168.0.8映射为61.144.51.62以便NAT更好的工作。
小提示:使用static命令可以让我们为一个特定的内部ip地址设置一个永久的全局ip地址。这样就能够为具有较低安全级别的指定接口创建一个入口,使它们可以进入到具有较高安全级别的指定接口。
2、管道命令(conduit):
使用static命令可以在一个本地ip地址和一个全局ip地址之间创建了一个静态映射,但从外部到内部接口的连接仍然会被pix防火墙的自适应安全算法(ASA)阻挡,conduit命令用来允许数据流从具有较低安全级别的接口流向具有较高安全级别的接口,例如允许从外部到DMZ或内部接口的入方向的会话。对于向内部接口的连接,static和conduit命令将一起使用,来指定会话的建立。说得通俗一点管道命令(conduit)就相当于以往CISCO设备的访问控制列表(ACL)。
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命令参数。
示例语句如下:
Pix525(config)#conduit permit tcp host 192.168.0.8 eq www any //表示允许任何外部主机对全局地址192.168.0.8的这台主机进行http访问。其中使用eq和一个端口来允许或拒绝对这个端口的访问。Eq ftp就是指允许或拒绝只对ftp的访问。
Pix525(config)#conduit deny tcp any eq ftp host 61.144.51.89 //设置不允许外部主机61.144.51.89对任何全局地址进行ftp访问。
Pix525(config)#conduit permit icmp any any //设置允许icmp消息向内部和外部通过。
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静态映射把内部IP192.168.0.3转换为全局IP61.144.51.62,然后利用conduit命令允许任何外部主机对全局地址61.144.51.62进行http访问。
小提示:对于上面的情况不使用conduit语句设置容许访问规则是不可以的,因为默认情况下PIX不容许数据包主动从低安全级别的端口流向高安全级别的端口。
3、配置fixup协议:
fixup命令作用是启用,禁止,改变一个服务或协议通过pix防火墙,由fixup命令指定的端口是pix防火墙要侦听的服务。示例例子如下:
Pix525(config)#fixup protocol ftp 21 //启用ftp协议,并指定ftp的端口号为21
Pix525(config)#fixup protocol http 80
Pix525(config)#fixup protocol http 1080 //为http协议指定80和1080两个端口。
Pix525(config)#no fixup protocol smtp 80 //禁用smtp协议。
4、设置telnet:
在pix5.0之前只能从内部网络上的主机通过telnet访问pix。在pix 5.0及后续版本中,可以在所有的接口上启用telnet到pix的访问。当从外部接口要telnet到pix防火墙时,telnet数据流需要用ipsec提供保护,也就是说用户必须配置pix来建立一条到另外一台pix,路由器或vpn客户端的ipsec隧道。另外就是在PIX上配置SSH,然后用SSH client从外部telnet到PIX防火墙。
我们可以使用telnet语句管理登录PIX的权限。
telnet配置语法:telnet local_ip [netmask]
local_ip 表示被授权通过telnet访问到pix的ip地址。如果不设此项,pix的配置方式只能由console进行。也就是说默认情况下只有通过console口才能配置PIX防火墙。
小提示:由于管理PIX具有一定的危险性,需要的安全级别非常高,所以不建议大家开放提供外网IP的telnet管理PIX的功能。如果实际情况一定要通过外网IP管理PIX则使用SSH加密手段来完成。