三、使用ACL
在下面所示的网络,在inside接口上使用名为acl_out的ACL来控制入站流量。该ACL拒绝来自内部网络的HTTP连接,而允许其他所有的IP流量通过。在inside接口上使用这个ACL可以限制内部用户建立通向外部的连接。
为允许出站连接,内部网络地址(10.0.0.0)被动态转换为从192.168.0.20到192.168.0.254之间的地址。
下面列出了实现上图所描述的网络拓扑结构的ACL配置。
pixfirewall(config)#write terminal
...
nameif ethernet0 outside sec0
nameif ethernet1 insside sec100
access-list acl_out deny tcp any any eq www
access-list acl_out permit ip any any
access-group acl_outin interface inside
nat (inside) 1 10.0.0.0 255.255.255.0
global (outside) 1 192.168.0.20-192.168.0.254 netmask 255.255.255.0
如下图所示的网络,在outside接口上使用名为acl_in_dmz的ACL来控制入站流量。该ACL只允许从Internet Web服务器通过80端口的web连接,而拒绝其他所有到DMZ或内部网络的IP访问。
当从外部网络访问DMZ上的web服务器时,需要将外部地址(192.168.0.11)静态转换成DMZweb服务器的地址(172.16.0.2)。
下面列出了实现上图所描述的网络拓扑结构的ACL配置。
pixfirewall(config)#write terminal
...
nameif ethernet0 outsidesec0
nameif ethernet1 inside sec100
nameif ethernet2 dmz sec50
ip address outside 192.168.0.2 255.255.255.0
ip address dmz 172.16.0.1 255.255.255.0
static (dmz,outside) 192.168.0.11 172.16.0.2
access-list acl_in_dmz permit tcp any host 192.168.0.11 eq www
access-list acl_in_dmz deny ip any any
access-group acl_in_dmz in interface outside
如下图所示的网络,在Partnernet网络的接口上使用名为acl_partner的ACL来控制其入站流量。该ACL只允许172.18.0.0/28网络中的主机到DMZ中的Web服务器通过静态转换后的地址的web连接,而拒绝其他所有来自Partnernet网络的流量。
在DMZ接口上使用名为acl_dmz_in的ACL来控制其入站流量。该ACL仅允许主机172.16.0.4到inside接口上的内部mail服务器的mail访问,而拒绝其他所有来自DMZ网络的流量。
下面列出了实现上述要求的ACL配置:
pixfirewall(config)#write terminal
...
nameif ethernet0 outside sec0
nameif ethernet1 inside sec100
nameif ethernet2 dmz sec50
nameif ethernet3 partnernet sec40
static (dmz,partnernet) 172.18.0.17 172.16.0.2
static (inside,dmz) 172.16.0.11 10.0.0.4
access-list acl_partner permit tcp 172.18.0.0 255.255.255.0 host 172.18.0.17 eq www
access-group acl_partner in interface partnernet
access-list acl_dmz_in permit tcp host 172.16.0.4 host 172.16.0.11 eq smtp
access-group acl_dmz_in in interface dmz
如下图所示的VPN解决方案中,PIX防火墙上有两个专用接口直连到Cisco虚拟专用网络(VPN)集中器上。其中dmz接口连接到VPN集中器的public接口上,而dmz2接口连接到VPN集中器的private接口上。VPN集中器可以配置为从地址池10.2.21.33-62中为VPN客户端分配一个地址。
在PIX防火墙上为去往VPN客户端的出站流量定义了一条静态路由。为了允许VPN客户端与PIX防火墙内部网络中的主机之间进行通信,需要在PIX防火墙上配置一条静态转换。
在PIX防火墙上配置如下两个ACL,可以控制从Internet到PIX防火墙内部网络的入站流量和从VPN客户端到PIX防火墙内部网络的出站流量:
●名为IPSEC的ACL允许从Internet到VPN集中器上public接口的HTTPS流量,仅允许到VPN集中器的IPSEC流量。
●名为WEB的ACL允许从VPN客户端(10.0.21.33-62)到内部Web服务器(10.0.0.10)的HTTP流量。
下面列出了实现这种VPN环境所需的ACL配置。
pixfirewall(config)#write terminal
...
static (dmz,outside) 192.168.0.12 172.16.0.5 netmask 255.255.255.255 0 0
static (inside,dmz) 10.0.21.10 10.0.0.10 netmask 255.255.255.255
route dmz2 10.0.21.32 255.255.255.224 172.18.0.5 1
access-list IPSEC permit tcp any host 192.168.0.12 eq 443
access-list IPSEC permit esp any host 192.168.0.12
access-list IPSEC permit udp any host 192.168.0.12 eq isakmp
access-group IPSEC in interface outside
access-list WEB permit tcp 10.0.21.32 255.255.255.224 10.0.21.10 255.255.255.255 eq www
access-group WEB in interface dmz2
icmp命令
可以允许或禁止PING PIX防火墙上的接口。如果禁止PING,网络中就无法发现PIX防火墙。使用icmp命令可以实现这个功能。
缺省情况下,不允许穿过PIX防火墙来ping一个PIX防火墙上的接口。例如,内部主机ping不通PIX防火墙上的outside接口,却可以ping通PIX防火墙上的inside接口。
使用icmp命令时,通过配置icmp命令语句来允许或拒绝终止于PIX防火墙的ICMP流量。如果第一个匹配的条目包含permit,那么将继续处理ICMP数据包。如果第一个匹配的条目包含deny,或者没有匹配的条目,那么PIX防火墙将拒绝ICMP数据包并且产生%PIX-3-313001系统日志消息。不配置任何icmp命令语句是个例外,这时缺省为permit。
Cisco建议准许ICMP unreachable信息类型(Type3)。一旦拒绝ICMP unreachable信息,将不能自动发现ICMP路径最大传输单元(MTU),于是会中断IP安全(IPsec)和点到点隧道协议(PPTP)流量。
clear icmp命令用来从配置中删除icmp命令语句。
icmp命令的语法如下:
icmp permit | deny arc_addr src_mask [icmp-type] if_name
clear icmp
show icmp
●permit/deny--表示允许或拒绝ping PIX防火墙上的一个接口
●src_addr--表示被允许或被禁止ping PIX防火墙上的接口的地址。使用host src_add来指定单台主机
●src_mask--(可选)网络掩码。如果指定一个网络需要此参数
●icmp-type--ICMP消息类型
●if_name--允许ping的接口名称
下面的例子用来禁止outside接口上的ICMP echo-replies消息,而允许ICMP unreachable消息。
pixfirewall(config)#icmp deny any echo-reply outside
pixfirewall(config)#icmp permit any unreachable outside