安全 : Cisco PIX 500 系列安全设备

在 PIX 上使用 nat、global、static、conduit 和 access-list 命令和端口重定向(转发)

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

要最大化 Cisco Secure PIX 防火墙的实施安全,重要的是要了解如何使用 PIX 软件版本 5.0 和更高版本中的 natglobalstaticconduit 命令,或 access-listaccess-group 命令,将信息包从较低安全性接口传输出/入较高安全性接口。本文档说明了这些命令之间的区别,以及如何在 PIX 软件版本 6.0 中配置端口重定向(转发)和如何在 PIX 软件版本 6.2 中添加外部网络地址转换 (NAT) 功能。

要了解有关 Cisco PIX 500 系列安全设备上基本 NAT 和端口地址转换 (PAT) 配置的详细信息,请参阅 PIX/ASA 7.x NAT 和 PAT 语句

要了解有关 Cisco 安全 PIX 防火墙上基本 NAT 和 PAT 配置示例的详细信息,请参阅在 Cisco 安全 PIX 防火墙上使用 NAT 和 PAT 语句

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档中的信息是基于这些软件版本的。

  • Cisco Secure PIX 防火墙软件 4.4.5 版及更高版本

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

网络图

/image/gif/paws/12496/28b.gif

初始配置

接口名称为:

  • nameif ethernet0 outside security0

  • nameif ethernet1 inside security100

允许出站访问

出站访问描述从较高安全级别的接口到较低安全级别的接口的连接。这包括从内部到外部的连接、从内部到隔离区 (DMZ) 的连接和从 DMZ 到外部的连接。假设连接源接口的安全级别高于目标接口的安全级别,这还可能包括从一个 DMZ 到另一个 DMZ 的连接。这可以通过查看 PIX 上的“nameif”配置进行确认。

需要有两项策略以允许出站访问。第一个是转换方法。这可能是使用 static 命令的静态转换,或者使用 nat/global 规则的动态转换。出站访问的另一个要求是:如果存在访问控制列表 (ACL),则必须允许源主机使用特定协议和端口访问目标主机。默认情况下,对于通过 PIX 的出站连接没有任何访问限制。这意味着如果没有为源接口配置 ACL,则在默认情况下,只要配置了转换方法便允许出站连接。

这些部分提供使用 ACL 配置转换方法和限制出站访问的示例。

允许某些内部主机访问外部网络

此配置授予子网 10.1.6.0/24 上的所有主机对外部的访问权限。natglobal 命令用于完成此任务。

  1. 定义要为 NAT 包括的内部组。

    nat (inside) 1 10.1.6.0 255.255.255.0
    
  2. 在外部接口上指定 NAT 语句中定义的主机将被转换到的地址池。

    global (outside) 1 175.1.1.3-175.1.1.64 netmask 255.255.255.0 
    

现在,内部的主机可以访问外部网络。当内部主机启动与外部的连接时,它们将被转换为全局池中的某个地址。注意全局池的地址分配按照先到先转换先分配的原则,并从池中的最低位地址开始。例如,如果主机 10.1.6.25 第一个启动与外部的连接,则它会得到地址 175.1.1.3。下一台与外部连接的主机将得到地址 175.1.1.4,等等。这不是静态转换,并且该转换在超过以下命令定义的不活动时段后将超时:timeout xlate hh:mm:ss

允许其他内部主机访问外部网络

问题是,内部主机比外部地址多。使用端口地址转换 (PAT) 以允许所有主机访问外部。如果 global 语句指定一个地址,则该地址是端口转换地址。PIX 允许每个接口一个端口转换,该转换支持最多 65,535 个活动 xlate 对象到一个全局地址的转换。完成这些步骤:

  1. 定义要为 PAT 包括的内部组。(通过使用 0 0,我们可以选择所有内部主机。)

    nat (inside) 1 10.1.6.0 255.255.255.0
    
  2. 指定将用于 PAT 的全局地址。

    global (outside) 1 175.1.1.65
    

在使用 PAT 时,有几个注意事项。

  • 为 PAT 指定的 IP 地址不能位于另一个全局地址池中。

  • PAT 不能与 H.323 应用程序、缓存名称服务器和点对点隧道协议 (PPTP) 一起使用。PAT 可与域名服务 (DNS)、FTP 和被动 FTP、HTTP、邮件、远程过程调用 (RPC)、rshell、Telnet、URL 过滤和出站 traceroute 一起使用。

  • 当需要通过防火墙运行多媒体应用程序时,请勿使用 PAT。多媒体应用程序可能与 PAT 提供的端口映射冲突。

  • 在 PIX 软件版本 4.2(2) 中,PAT 功能对以相反的顺序到达的 IP 数据包不起作用。版本 4.2(3) 更正了此问题。

  • 指定带有全局命令的全局地址池中的 IP 地址需要反向 DNS 条目,以保证所有外部网络地址可以通过 PIX 使用。为了创建反向 DNS 映射,请在地址到名称映射文件中为每个全局地址使用一个 DNS 指针 (PTR) 记录。没有 PTR 条目,站点会出现 Internet 连接速度缓慢或连接间歇中断的情况,并且 FTP 请求会一直失败。

    例如,如果全局IP地址是175.1.1.3,PIX防火墙的域名是pix.caguana.com,PTR记录可能是:

    3.1.1.175.in-addr.arpa. IN PTR 
    pix3.caguana.com 
    4.1.1.175.in-addr.arpa. IN PTR 
    pix4.caguana.com & so on.

允许内部主机无需转换即可访问 DMZ

有时,当本文档前面所述的配置使用 natglobal 命令通过转换内部主机的源地址来允许内部网络上的主机访问 DMZ 接口上的主机时,这样的转换是不需要的。但是,当一个 PIX 防火墙接口上的主机发起到另一个接口上主机的连接时,PIX 必须能够在自身中转换该主机的 IP 地址。即使没有必要转换该 IP 地址,仍必须进行转换。因此,为允许内部主机访问 DMZ 上的主机,必须对实际未进行转换的转换进行配置。

假设内部网络 (10.1.6.0/24) 上的主机需要访问 DMZ 网络 (172.22.1.0/24) 上的主机:

  1. 在整个内部网络和实际未转换内部地址的 DMZ 之间创建静态转换。

    static (inside,dmz) 10.1.6.0 10.1.6.0 netmask 255.255.255.0
    
  2. 通过创建静态转换允许一台内部主机无需对主机地址进行实际转换即可访问 DMZ。

    static (inside,dmz) 10.1.6.100 10.1.6.100
    

    注意: PIX 自动添加网络掩码:255.255.255.255。

限制内部主机对外部网络的访问

如果为源主机定义了有效的转换方法,并且没有为源 PIX 接口定义 ACL,则默认情况下将允许出站连接。但是在某些情况下,可能需要根据源、目标、协议和/或端口限制出站访问。使用 access-list 命令配置 ACL,并使用 access-group 命令将其应用于连接源 PIX 接口,即可完成此任务。PIX ACL 仅应用于入站方向。ACL 在 PIX 5.0.1 版代码或更高版本中可用。更早版本的代码使用 PIX 命令参考中所述的“outbound”和“apply”语句。

这是一个示例,它允许一个子网的出站 HTTP 访问,但拒绝所有其他主机对外部的 HTTP 访问,同时允许每个用户的所有其他 IP 数据流。

  1. 定义 ACL。

    access-list acl_outbound permit tcp 10.1.6.0 255.255.255.0 any eq www
    access-list acl_outbound deny tcp any any eq www
    access-list acl_outbound permit ip any any
    

    注意: PIX ACL 不同于 Cisco IOS 路由器上的 ACL,PIX ACL 使用像 Cisco IOS 那样的通配符掩码。它在 ACL 定义中使用常规子网掩码。与 Cisco IOS 路由器一样,PIX ACL 在 ACL 结尾处有一条隐式“deny all”语句。

  2. 将 ACL 应用于内部接口。

    access-group acl_outbound in interface inside
    

允许不受信任的主机访问受信任的网络中的主机

大多数企业需要允许他们的可靠网络中的资源存在不可靠主机,内部网络服务器便是一个常见示例。默认情况下,PIX 拒绝从外部主机到内部主机的连接。使用 staticconduit 命令允许此连接。在 PIX 软件版本 5.0.1 及更高版本中,除了 conduit 命令外,还可使用 access-listaccess-group 命令。

conduit 或 ACL 可以用于两接口 PIX。conduit 命令基于方向。该命令具有内部外部的概念。conduit 通过两接口 PIX 允许数据流从外部流向内部。与 conduit 不同,ACL 通过 access-group 命令应用于接口。此命令将 ACL 与接口关联起来,以检查向特定方向流动的数据流。

与允许内部主机转换成外部主机的 natglobal 命令相比,static 命令可以创建双向转换,在创建了正确管道或添加了 ACL/组(PIX 软件版本 5.0.1 或更新版本)的情况下,允许内部主机转换成外部主机和外部主机转换成内部主机。

在本文档中前面所述的 PAT 配置示例中,如果外部主机尝试连接到全局地址,则它可以供数千个内部主机使用。static 命令创建一个一对一的映射。conduit 或 access-list 命令定义允许与内部主机之间建立的连接类型,当安全性较低的主机连接到安全性较高的主机时总是需要该命令。conduitaccess-list 命令基于端口和协议。它可以非常自由或受到很多限制,这主要取决于系统管理员希望实现什么功能。

本文档中的网络图说明了如何使用这些命令配置 PIX 以允许所有不受信任的主机连接到内部 Web 服务器,并允许该不受信任的主机 199.199.199.24 访问同一台计算机上的 FTP 服务。

在 PIX 版本 4.4.5 及更高版本上使用 conduit

使用 conduit 完成 PIX 软件版本 4.4.5 及更高版本的这些步骤。

  1. 为内部 Web 服务器定义一个到外部/全局地址的静态地址转换。

    static (inside,outside) 175.1.1.254 10.200.1.254
    
  2. 定义哪些主机可在哪些端口上连接到 Web/FTP 服务器。

    conduit permit tcp host 175.1.1.254 eq www any
    conduit permit tcp host 175.1.1.254 eq ftp host 199.199.199.24
    

在 PIX 软件版本 5.0.1 及更高版本中,可以使用带有访问组的 ACL 来代替 conduit。输送管道仍然可用,但是是使用输送管道还是ACL,您应该做出决定。不建议在同一配置中同时使用 ACL 和 conduit。如果两个均进行了配置,ACL 的优先级高于 conduit。

在 PIX 版本 5.0.1 及更高版本上使用 ACL

使用 ACL 完成 PIX 软件版本 5.0.1 及更高版本的这些步骤。

  1. 为内部 Web 服务器定义一个到外部/全局地址的静态地址转换。

    static (inside, outside) 175.1.1.254 10.200.1.254
    
  2. 定义哪些主机可在哪些端口上连接到 Web/FTP 服务器。

    access-list 101 permit tcp any host 175.1.1.254 eq www
    access-list 101 permit tcp host 199.199.199.24 host 175.1.1.254 eq ftp
    
  3. 将 ACL 应用于外部接口。

    access-group 101 in interface outside
    

注意: 在执行这些命令时,请小心。如果执行了 conduit permit ip any anyaccess-list 101 permit ip any any 命令,则只要存在活动转换,不受信任网络上的任何主机都可以使用 IP 访问受信任网络上的任何主机。

禁用 NAT

如果您在内部网络中有公共地址,并且希望内部主机无需转换就可变成外部主机,您可以禁用NAT。还需要更改 static 命令。

使用本文档中的示例nat 命令有一些更改,如以下输出所示:

nat (inside) 0 175.1.1.0 255.255.255.0 

如果在 PIX 软件版本 5.0.1 及更高版本中使用 ACL,请使用这些命令:

access-list 103 permit ip 175.1.1.0 255.255.255.0 any
nat (inside) 0 access-list 103

此命令可禁用 175.1.1.0 网络的 NAT。用于 Web 服务器的 static 命令有一些更改,如以下输出所示:

static (inside, outside) 175.1.1.254 175.1.1.254

此命令可定义 Web 服务器的 conduit。

conduit permit tcp host 175.1.1.254 eq www any

如果在 PIX 软件版本 5.0.1 及更高版本中使用 ACL,请使用这些命令:

access-list 102 permit tcp any host 175.1.1.254 eq www
access-group 102 in interface outside

注意使用带有指定网络/掩码的 NAT 0 和使用只允许从内部开始连接的网络/掩码的 ACL 之间的区别。使用 ACL 允许由入站或出站数据流启动连接。PIX 接口应位于不同的子网中以避免出现可达性问题。

使用 Static 命令进行端口重定向(转发)

在 PIX 6.0 中,添加了端口重定向(转发)功能以允许外部用户连接到特定 IP 地址/端口,并让 PIX 将数据流重定向到适当的内部服务器;static 命令已被修改。共享地址可以是唯一地址、共享出站 PAT 地址或与外部接口共享的地址。

注意: 由于空间限制,这些命令显示为两行。

static [(internal_if_name, external_if_name)] 
{global_ip|interface}
local_ip [netmask mask] [max_conns [emb_limit 
[norandomseq]]]
static [(internal_if_name, external_if_name)] {tcp|udp} 
{global_ip|interface} 
global_port local_ip local_port [netmask mask] [max_conns 
[emb_limit [norandomseq]]]

以下为示例网络的端口重定向:

  • 外部用户将 Telnet 请求定向到唯一 IP 地址 172.18.124.99,PIX 将其重定向到 10.1.1.6。

  • 外部用户将 FTP 请求定向到唯一 IP 地址 172.18.124.99,PIX 将其重定向到 10.1.1.3。

  • 外部用户将 Telnet 请求定向到 PAT 地址 172.18.124.208,PIX 将其重定向到 10.1.1.4。

  • 外部用户将 Telnet 请求定向到 PIX 外部 IP 地址 172.18.124.216,PIX 将其重定向到 10.1.1.5。

  • 外部用户将 HTTP 请求定向到 PIX 外部 IP 地址 172.18.124.216,PIX 将其重定向到 10.1.1.5。

  • 外部用户将 HTTP 端口 8080 请求定向到 PAT 地址 172.18.124.208,PIX 将其重定向到 10.1.1.7 端口 80。

此示例还使用 ACL 100 阻止部分用户从内部访问外部。此步骤是可选的。在没有适当的 ACL 的情况下,允许所有数据流出站。

网络图 - 端口重定向(转发)

/image/gif/paws/12496/28-02.gif

部分 PIX 配置 - 端口重定向(转发)

此部分配置说明如何使用静态端口重定向。

部分 PIX 配置 - 端口重定向(转发)
fixup protocol ftp 21

!--- Use of an outbound ACL is optional.

access-list 100 permit tcp 10.1.1.0 255.255.255.128 any eq www
access-list 100 deny tcp any any eq www
access-list 100 permit tcp 10.0.0.0 255.0.0.0 any
access-list 100 permit udp 10.0.0.0 255.0.0.0 host 172.18.124.100 eq domain 

access-list 101 permit tcp any host 172.18.124.99 eq telnet 
access-list 101 permit tcp any host 172.18.124.99 eq ftp 
access-list 101 permit tcp any host 172.18.124.208 eq telnet 
access-list 101 permit tcp any host 172.18.124.216 eq telnet 
access-list 101 permit tcp any host 172.18.124.216 eq www 
access-list 101 permit tcp any host 172.18.124.208 eq 8080

ip address outside 172.18.124.216 255.255.255.0
ip address inside 10.1.1.2 255.255.255.0

global (outside) 1 172.18.124.208
nat (inside) 1 0.0.0.0 0.0.0.0 0 0

static (inside,outside) tcp 172.18.124.99 telnet 10.1.1.6 
   telnet netmask 255.255.255.255 0 0
static (inside,outside) tcp 172.18.124.99 ftp 10.1.1.3 
   ftp netmask 255.255.255.255 0 0
static (inside,outside) tcp 172.18.124.208 telnet 10.1.1.4 
   telnet netmask 255.255.255.255 0 0
static (inside,outside) tcp interface telnet 10.1.1.5 
   telnet netmask 255.255.255.255 0 0
static (inside,outside) tcp interface www 10.1.1.5 
   www netmask 255.255.255.255 0 0
static (inside,outside) tcp 172.18.124.208 8080 10.1.1.7 
   www netmask 255.255.255.255 0 0

!--- Use of an outbound ACL is optional.

access-group 100 in interface inside
access-group 101 in interface outside

超出 NAT

在 PIX 6.2 及更高版本中,NAT 和 PAT 可应用于从外部或不太安全的接口传输到内部(更加安全的)接口的数据流。这有时称为“双向 NAT”。

外部 NAT/PAT 类似于内部 NAT/PAT,但地址转换应用于驻留在 PIX 外部(不太安全)接口上的主机地址。要在 NAT 外部进行动态配置,指定将在不太安全接口上转换的地址,并指定内部(更加安全)接口上的全局地址或地址。使用 static 命令指定一对一映射,以配置静态外部 NAT。

NAT的外部配置好以后,当信息包到达PIX的路由器(不太安全的)接口时,PIX尝试找出连接数据库中的现有xlate(地址转换条目)。如果不存在 xlate,将会从运行配置中搜索 NAT 策略。如果NAT策略已经定位,可以创建xlate,然后插入数据库。PIX然后将源地址重写为映射或全局地址,并传输内部接口上的信息包。一旦xlate建立,通过咨询连接数据库中的条目,所有后续信息包的地址都可以迅速转换。

网络图 – 外部 NAT

/image/gif/paws/12496/28-01.gif

在本示例中:

  • 数据流出时,设备 10.100.1.2 连接至 NAT,再连接至 209.165.202.135

  • 数据流入时,设备 209.165.202.129 连接至 NAT,再连接至 10.100.1.3

  • 数据流出时,10.100.1.x 网络上的其他设备连接至 NAT,再连接至 209.165.202.140-209.165.202.141 池中的地址

  • 设备209.165.202.129到设备10.100.1.2与设备209.165.202.129的连通性,可看到内部设备209.165.202.135和设备10.100.1.2,并看到数据流从设备10.100.1.3 (由于NAT的外部)传输到设备209.165.202.129。

允许使用 ACL 或 conduit 访问所有 209.165.202.x 设备。

部分 PIX 配置 – 外部 NAT

部分 PIX 配置 – 外部 NAT
ip address outside 209.165.202.130 255.255.255.224
ip address inside 10.100.1.1 255.255.255.0
global (outside) 5 209.165.202.140-209.165.202.141 netmask 255.255.255.224
nat (inside) 5 10.100.1.0 255.255.255.0 0 0
static (inside,outside) 209.165.202.135 10.100.1.2 netmask 255.255.255.255 0 0
static (outside,inside) 10.100.1.3 209.165.202.129 netmask 255.255.255.255 0 0
conduit permit ip 209.165.202.0 255.255.255.0 209.165.202.0 255.255.255.0

!--- Or in lieu of conduits, we leave the static statements but have the following.
 
access-list 101 permit ip 209.165.202.0 255.255.255.0 209.165.202.0 255.255.255.0
access-group 101 in interface outside

故障排除

本部分提供的信息可用于对配置进行故障排除。

  • 如果使用 ICMP ping 测试已配置的转换,ping 可能会失败,从而造成转换不起作用的假象。默认情况下,PIX 会阻止安全性较低接口的 ICMP 消息传输至安全性较高的接口。即使在 Echo 应答响应从内部发起的 ping 时,这种情况也会发生。因此,请确保使用另一种方法(例如 Telnet)验证配置。

  • 对 PIX 上的转换规则进行任何更改后,我们强烈建议您发出 clear xlate 命令。这样能够确保所有旧的转换不会干扰新配置的转换并导致其无法正常运行。

  • 在配置或更改内部或 DMZ 和外部服务器之间的静态转换后,可能需要清除网关路由器或其他下一跳设备的 ARP 缓存。

报告TAC案例应收集的信息

如果在完成上述故障排除步骤后,您还需要帮助,并希望在Cisco TAC打一个案例,请提供下列信息供PIX防火墙故障排除时使用。
  • 问题说明和相关拓扑详细信息
  • 在打开案例之前,请进行故障排除
  • show tech-support 命令的输出
  • 运行 logging buffered debugging 命令show log 命令的输出,或演示问题的控制台捕获信息(如果可用)
请以非压缩的纯文本格式 (.txt) 将收集的数据附加到请求中。通过使用 Case Query 工具进行上载,您可以将此信息附加到您的案例(仅限于注册用户)。如果您不能使用案例查询工具,请将信息以电子邮件附件的形式发送到attach@cisco.com,并在标题栏中注明您的案例编号。

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 12496