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

PIX/ASA:使用 TACACS+ 和 RADIUS 服务器的网络访问直通代理配置示例

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


目录


简介

本文档介绍如何在通过 AAA 身份验证(直通代理)的情况下访问运行 PIX 软件 6.3 版及更高版本的 PIX 防火墙。

PIX 防火墙提供的性能明显强于与之竞争的防火墙。它通过一种正在申请专利的称为直通代理的过程提高速度,而此过程是防火墙对用户进行身份验证的最快方式。

代理服务器必须在 OSI 模型的第 7 层分析每个数据包,这项功能费时又费处理能力,PIX 防火墙与此不同,它首先查询 TACACS+ 或 RADIUS 服务器进行身份验证。获得批准后,PIX 防火墙即建立数据流,此后所有流量就直接在双方之间迅速流动。

直通代理使 PIX 防火墙的执行速度明显快于基于代理的服务器,同时还能保持会话状态。直通代理还通过重复利用现有的身份验证数据库而降低拥有成本。

要在通过 AAA 身份验证的情况下访问运行 PIX 软件 5.2 至 6.2 版的 PIX 防火墙,请参阅如何在 Cisco Secure PIX 防火墙(5.2 至 6.2)上执行身份验证和启用。本文档还提供有关在 AAA 服务器停机时如何实现身份验证、syslog 记录和访问的信息。

要详细了解 PIX 6.2 的身份验证和授权命令,请参阅 PIX 6.2 身份验证和授权命令

先决条件

要求

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

使用的组件

本文档中的信息基于以下软件和硬件版本:

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

  • 思科安全访问控制服务器(ACS)版本3.2和以上

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

相关产品

此配置还可用于软件为 7.x 版的 Cisco ASA 5500 系列安全设备

规则

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

背景信息

可以使用访问列表根据 IP 地址和协议控制流量。但是,必须使用身份验证和授权以控制对特定用户或组的访问和使用。RADIUS 和 TACACS+ 服务器的 PIX 防火墙支持身份验证,即识别用户的过程。授权标识给定用户的特定权限。

如果要在内部(本地)主机发起与外部(安全性较低)网络的连接时应用身份验证和授权,则需要在内部(安全性较高)接口上启用身份验证和授权。要设置身份验证和授权在外部主机发起与内部主机的连接时进行,需要在外部接口上启用身份验证和授权。

AAA 使安全设备可以确定用户是谁(身份验证)、用户能做什么(授权)以及用户做了什么(记账)。

AAA为用户访问提供一个额外的级别保护和控制比使用单独访问控制列表(ACL)。例如,可以创建一个 ACL,允许所有外部用户访问 DMZ 网络中某台服务器上的 Telnet。如果只希望某些用户访问该服务器,而且可能并不总是知道这些用户的 IP 地址,则可以启用 AAA,仅允许经过身份验证和/或授权的用户通过安全设备进行访问。Telnet 服务器也实施身份验证。安全设备阻止未经授权的用户尝试访问服务器。

可以单独使用身份验证,也可以与授权和记账一起使用。授权总是要求用户首先经过身份验证。可以单独使用记账,也可以与身份验证和授权一起使用。

在 PIX 中配置 AAA

本部分提供有关如何配置本文档所述功能的信息。

注意: 使用命令查找工具仅限注册用户)可获取有关本部分所使用命令的详细信息。

必须完成以下这些步骤才能启用身份验证和授权:

  1. 标识将使用的身份验证服务器的 IP 地址,并确定身份验证服务器和 PIX 防火墙所共享的服务器加密密钥。

  2. 用可以访问网络的用户、其可以使用的服务及其可以访问的主机配置身份验证服务器。

  3. 配置 PIX 防火墙以启用或禁用身份验证或授权。

此外,还可以配置 PIX 防火墙以控制用户对特定主机或服务的访问。但是,在身份验证服务器这一个位置上保持这种访问控制更容易。启用身份验证和授权之后,PIX 防火墙将向用户提示 FTP、Telnet 或 HTTP (Web) 访问。对某个特定系统或服务的访问控制由身份验证和授权服务器处理。

注意: 当使用 PIX 防火墙 6.3 版或更高版本时,可以用在 PIX 防火墙上本地配置的用户数据库启用身份验证。其配置步骤类似于 RADIUS/TACACS+ 服务器的配置步骤。此过程的每个步骤中都注明了区别。

完成以下这些步骤,使 PIX 防火墙可支持用户身份验证和授权:

  1. 对于入站身份验证,创建允许外部主机访问内网服务器所需的 static 和 access-list 命令语句。

  2. 如果内网连接到 Internet,则创建一个全局地址池,其中是经过注册的 IP 地址。

  3. 发出 nat 命令以及 access-list 命令以指定可以启动出站连接的内部主机。

  4. 发出 aaa-server 命令以标识处理身份验证或授权的服务器。

    创建一个唯一的服务器组名称。

    例如:

    pix(config)#aaa-server AuthInbound protocol tacacs+
    
    pix(config)#aaa-server AuthInbound (inside) host 10.1.1.1 TheUauthKey 
    
    pix(config)#aaa-server AuthOutbound protocol tacacs+
    
    pix(config)#aaa-server AuthOutbound (inside) host 10.1.1.2 TheUauthKey
    

    注意: 当使用本地数据库进行身份验证时,不需要进行此步骤。

    注意: access-list 命令语句提供 RADIUS 授权,如配置 RADIUS 授权部分所述。

    本例中的第一条命令语句创建使用 TACACS+ 身份验证的 AuthInbound 身份验证组。第二条命令语句声明 AuthInbound 服务器在内部接口上,IP 地址为 10.1.1.1,并且加密密钥为 TheUauthKey。

    第三条命令语句创建使用 TACACS+ 身份验证的 AuthOutbound 身份验证组。第四条命令语句声明 AuthOutbound 服务器在内部接口上,IP 地址为 10.1.1.2,并且加密密钥为 TheUauthKey。

  5. 发出 aaa authentication 命令以启用身份验证。

    pix(config)#aaa authentication include authen_service if_name 0 0 0 0 
    <server_tag|LOCAL>
    
    

    该命令的 authen_service 部分代表身份验证中要包括或排除的流量类型。这一点基于所选的服务选项,如 ftp、telnet、http 或 https。

    以下是访问身份验证服务选项:

    • enable (event)

    • 序列

    • SSH

    • telnet

    对串行控制台访问指定 serial,对 Telnet 访问指定 telnet,对 SSH 访问指定 ssh,而对启用模式访问指定 enable。直通身份验证服务选项如下:

    • telnet

    • ftp

    • http

    • https

    • icmp/type

    • 原始

    • tcp/port

    • udp/port

    变量 proto 可以是任何支持的 IP 协议值或名称,如 ip 或 igmp。仅 telnet、ftp、http 或 https 流量可触发交互式用户身份验证。有关此选项的信息,请参阅 Cisco PIX 防火墙命令参考aaa authentication 命令部分。

    该命令的 if_name 部分表示用户从中需要进行身份验证的接口名称。如果将此部分配置为 outside(如用 nameif 命令所配置),则该命令将对从外网到任何内网发起的连接启用身份验证。使用 LOCAL 关键字以使用本地数据库进行身份验证。要使用 AAA 服务器,请将 server_tag 替换为用 aaa-server 命令定义的 AAA 服务器组名。

    例如:

    IP 地址为 0 表示所有主机。将本地 IP 地址设置为 0 时,将让身份验证服务器决定对哪些主机进行身份验证。

    本例对从外网向任何内网发起的 ftp 连接启用身份验证:

    pix(config)#aaa authentication include ftp outside 0 0 0 0 AuthOutbound
    
    pix(config)#aaa authentication include telnet outside 0 0 0 0 AuthOutbound
    
    pix(config)#aaa authentication include http outside 0 0 0 0 AuthOutbound
    
    pix(config)#aaa authentication include ftp inside 0 0 0 0 AuthInbound
    

    本例对从内网向任何外网发起的 telnet 连接启用身份验证:

    pix(config)#aaa authentication include telnet inside 0 0 0 0 AuthInbound
    
    pix(config)#aaa authentication include http inside 0 0 0 0 AuthInbound
    

    注意: 注意,请仅向可以进行身份验证的协议应用身份验证。如果使用任何关键字应用验证,协议例如简单邮件传输协议(SMTP)被防止通过通过PIX防火墙。

  6. 发出 aaa authorization 命令以启用授权。

    pix(config)#aaa authorization include authen_service if_name 0 0 0 0
    

    PIX 防火墙用 AAA 服务器(决定用户可以访问什么服务)检查授权请求。

    该命令的 authen_service 部分代表需要授权的服务。有效值为 any、ftp、http、telnet 或 protocol/port。使用 any 可为所有 TCP 服务提供授权。使用 protocol/port 形式可为 UDP 服务提供授权。

    该命令的 if_name 部分表示用户从中需要进行身份验证的接口名称。将 interface-name 与 local-ip address 和 foreign-ip address 配合使用,以确定在何处寻找访问以及访问来自谁。local-ip address 始终位于最高安全级别的接口上,而 foreign-ip address 总是位于最低安全级别的接口上。

    IP 地址为 0 表示所有主机。将本地 IP 地址设置为 0 时,将让授权服务器决定对哪些主机进行授权。

    注意: 当使用本地数据库进行身份验证时,不需要进行此步骤。

    例如:

    pix(config)#aaa authorization include ftp outside 0 0 0 0
    
    pix(config)#aaa authorization include telnet outside 0 0 0 0
    
    pix(config)#aaa authorization include http outside 0 0 0 0
    
    pix(config)#aaa authorization include ftp inside 0 0 0 0
    
    pix(config)#aaa authorization include telnet inside 0 0 0 0
    
    pix(config)#aaa authorization include http inside 0 0 0 0
    

    有关可供授权和身份验证参数使用的各种选项的详细信息,请参阅 Cisco PIX 防火墙命令参考

PIX 的示例配置

PIX 防火墙让您分别定义单独的 TACACS+ 或 RADIUS 服务器组以指定不同类型的流量,如 TACACS+ 服务器用于入站流量,而 RADIUS 服务器用于出站流量。

本例创建 AuthInbound 用于 TACACS+ 身份验证、AuthOutbound 服务器组用于 RADIUS 身份验证,并且指定内部接口上的服务器 172.68.118.101 提供身份验证。

pix(config)#aaa-server AuthInbound protocol tacacs+ 
pix(config)#aaa-server AuthInbound (inside) host 172.68.118.101 cisco timeout 5
pix(config)#aaa-server AuthOutbound protocol radius 
pix(config)#aaa-server AuthOutbound (inside) host 172.68.118.101 cisco timeout 5
pix(config)#aaa authentication include ftp outside 0 0 0 0 AuthOutbound
pix(config)#aaa authentication include telnet outside 0 0 0 0 AuthOutbound
pix(config)#aaa authentication include http outside 0 0 0 0 AuthOutbound
pix(config)#aaa authentication include ftp inside 0 0 0 0 AuthInbound
pix(config)#aaa authentication include telnet inside 0 0 0 0 AuthInbound
pix(config)#aaa authentication include http inside 0 0 0 0 AuthInbound

从 PIX 7.x 起,可以对服务器组中的任何给定服务器指定停用服务器前允许尝试失败的次数。在 AAA 服务器组模式下发出 max-failed-attempts 命令。必须先配置 AAA 服务器组,然后才能发出此命令。例如:

hostname(config)#aaa-server svrgrp1 protocol tacacs+

hostname(config-aaa-server-group)#max-failed-attempts 4

Telnet 身份验证

先收到对 PIX 口令的请求,然后收到对 RADIUS 或 TACACS 用户名和口令(存储在 TACACS 服务器上 - 10.31.1.41)的请求。例如:

pix(config)#aaa-server topix protocol tacacs+

pix(config)#aaa-server topix host 10.31.1.41 cisco timeout 5

pix(config)#aaa authentication telnet console topix

控制台端口认证

先收到对 PIX 口令的请求,然后收到对 RADIUS/TACACS 用户名/口令(存储在 RADIUS 服务器上 - 10.31.1.41)的请求。例如:

pix(config)#aaa-server topix protocol radius

pix(config)#aaa-server topix host 10.31.1.41 cisco timeout 5

pix(config)#aaa authentication serial console topix

启用认证

此处,提示您输入发送到 TACACS 或 RADIUS 服务器的用户名和口令。由于 enable 的身份验证数据包与 login 的身份验证数据包相同,因此可以通过 TACACS 或 RADIUS 登录 PIX,也可以用相同的用户名/口令通过 TACACS 或 RADIUS 登录 enable。

pix(config)#aaa-server topix protocol radius

pix(config)#aaa-server topix host 10.31.1.41 cisco timeout 5

pix(config)#aaa authentication enable console topix

启用 Web 客户端的安全身份验证

PIX 防火墙 6.3 版引入了一种受保护的方法,用于在 Web 客户端与 PIX 防火墙之间交换用户名和口令。此版本使用在安全套接字层SSL (HTTPS)的HTTP。HTTPS 加密用户名和口令,并保证传输的安全。

当使用 AAA 服务器在 PIX 防火墙的早期版本上验证 Web 浏览器的身份时,以明文的形式从 HTTP 客户端获得用户名和口令。

aaa 命令添加以下关键字可启用此功能:

pix(config)#aaa authentication secure-http-client

关键字 secure-http-client 启用此功能,因此可在 HTTP 客户端与 PIX 防火墙之间安全地交换用户名和口令。

必须配置 AAA 身份验证并发出以下命令才能启用此功能:

pix(config)#aaa authentication include authen_service if_name 0 0 0 0 <server_tag|LOCAL>

有关此命令的语法,请参阅在 PIX 中配置 AAA 部分。

此功能也支持对访问安全 (HTTPS) 网站的客户端进行身份验证。

注意: 启用 AAA 身份验证时,不需要 secure-http-client 即可对 HTTPS 会话进行身份验证。

启用此功能之后,当用户访问要求进行身份验证的网页时,PIX 防火墙将请求用户名和口令用于 HTTPS 身份验证。

tacacs-radius-config6.gif

注意: 本例中发出 auth-prompt 命令以自定义 Cisco Systems 文本字段。如果不用 auth-prompt 命令输入字符串,则此字段将为空白。有关此命令的详细语法,请参阅 Cisco PIX 防火墙命令参考

当用户输入有效的用户名和口令之后,将出现 Authentication Successful 窗口,然后自动关闭。如果用户未能输入有效的用户名和口令,则会出现 Authentication Failed 窗口。

同时最多允许 16 路 HTTPS 身份验证。如果全部 16 路 HTTPS 身份验证过程都在运行,则要求进行身份验证的新连接不会成功。当 PIX 防火墙从浏览器收到用户名和口令时身份验证过程开始,当其从 AAA 服务器收到身份验证结果时该过程结束。完成每个身份验证过程的所需的时间长度取决于身份验证源的响应时间。如果使用本地数据库,则该过程非常快速。如果使用 RADIUS 或 TACACS+ 服务器,则该时间长度取决于服务器响应时间。

配置 uauth timeout 0 命令(将 uauth 超时设置为 0)后,HTTPS 身份验证可能无法工作。如果在 HTTPS 身份验证以后浏览器发起多个 TCP 连接以加载网页,则放行第一个连接,但随后的连接触发身份验证。因此,不断地向用户显示身份验证页,即使每次都输入了正确的用户名和口令也是如此。应急方案是设置uauth超时对1秒用超时Uauth 0:0:1命令。但是,此解决方法也会产生 1 秒的空隙,如果有未经身份验证的用户来自相同的源 IP 地址,则在这段时间内可能会允许这些用户通过防火墙。

如果前一 HTTP 请求在进行的同时 Web 浏览器启动 HTTPS 网页请求,则该 HTTPS 请求将再触发一个安全身份验证过程,即使没有特地为 HTTPS 启用安全身份验证也是如此。当成功完成任意一个网页的身份验证过程后,即可通过重新加载页面完成剩余的请求。

由于 HTTPS 身份验证在 SSL 端口 443 进行,因此不要使用 access-list 命令阻止从 HTTP 客户端到端口 443 上 HTTP 服务器的流量。此外,如果为端口 80 上的 Web 流量配置静态 PAT,则还必须为 SSL 端口 443 配置一个静态条目。在本例中,第一行为 Web 流量配置静态 PAT,并且必须添加第二行以便在配置模式下支持 HTTPS 身份验证配置:

static (inside,outside) tcp 10.132.16.200 www 10.130.16.10 www

static (inside,outside) tcp 10.132.16.200 443 10.130.16.10 443

如果没有配置 aaa authentication secure-http-client 命令,则 HTTP 用户将看到浏览器生成的弹出窗口。如果配置了 aaa authentication secure-http-client 命令,则在浏览器中加载一个表单以收集用户名和口令。在任何一种情况下,如果输入错误的口令,则会再次提示您输入。当 Web 服务器和身份验证服务器位于不同主机上时,发出 virtual 命令以接收正确的身份验证行为。

为身份验证配置 SSH

PIX 5.2 添加了对安全壳 (SSH) 版本 1 的支持。SSH 1 以 1995 年 11 月的一份 IETF 草案为基础。SSH 第 1 版和第 2 版彼此互不兼容。关于SSH的更多信息参考的leavingcisco.com 安全壳SSH常见问题

PIX 被视为 SSH 服务器。从SSH客户端(即运行 SSH 的机箱)传输到 SSH 服务器 (PIX) 的数据流将被加密。某些 SSH 第 1 版客户端在 PIX 5.2 发行版本注释中列出。在 NT 上用 F-secure SSH 1.1 以及为 Solaris 的 1.2.26 版进行过 Cisco 实验室测试。

注意: 有关 PIX 7.x,请参阅管理系统访问允许 SSH 访问部分。此外,还请参阅 PIX/ASA 7.x:内外接口上的 SSH/Telnet 配置示例中的示例配置。

完成以下这些步骤以配置由 AAA 进行身份验证的 SSH:

  1. 确保在打开 AAA 但不使用 SSH 的情况下可以 Telnet 到 PIX:

    pix(config)#aaa-server AuthOutbound protocol radius (or tacacs+)
    pix(config)#aaa authentication telnet console AuthOutbound
    pix(config)#aaa-server AuthOutbound host 172.18.124.111 cisco
    

    注意: 配置 SSH 后,不需要使用 telnet 172.18.124.114 255.255.255.255 命令,因为在 PIX 上已发出过 ssh 172.18.124.114 255.255.255.255 inside 命令。加入这两个命令是出于测试目的。

  2. 在配置模式下发出以下这些命令以添加 SSH:

    hostname goss-d3-pix515b
    domain-name rtp.cisco.com
    ca gen rsa key 1024
    
    
    !--- Caution: The RSA key is not saved without
    !--- the ca save all command.
    !--- The write mem command does not save it. 
    !--- In addition, if the PIX has undergone a write erase
    !--- or has been replaced, then cutting and pasting  
    !--- the old configuration does not generate the key.
    !--- You must re-enter the ca gen rsa key command.
    !--- If there is a secondary PIX in a failover pair, the write standby 
    !--- command does not copy the key from the primary to the secondary. 
    !--- You must also generate and save the key on the secondary device.
    
    
    
    ssh 172.18.124.114 255.255.255.255 inside
    ssh timeout 60
    aaa authen ssh console AuthOutbound
    logging trap debug
    logging console debug
  3. 在配置模式下发出 show ca mypubkey rsa 命令:

    goss-d3-pix(config)#show ca mypubkey rsa
     % Key pair was generated at: 08:22:25 Aug 14 2000
     Key name: goss-d3-pix.rtp.cisco.com
      Usage: General Purpose Key
      Key Data:
       30819f30 0d06092a 864886f7 0d010101 05000381 8d003081 89028181 00ad4bcb 
       e9c174d5 0657a0f3 c94e4b6d 32ac8500 6b84e754 59e20df4 f28c257d 131af21d 
       4c0a8f4c e79d8b6d a3520faa 1a42d577 c6adfe51 9d96fa62 f3be07fb 01e082d7 
       133cecff bf24f653 bc690b11 ee222070 413c1920 d02321f8 4fc3c5f1 f0c6e077 
       81e93184 af55438b dcdcda34 c0a5f5ad 87c435ef 
          67170674 4d5ba51e 6d020301 0001
     % Key pair was generated at: 08:27:18 Aug 14 2000
     Key name: goss-d3-pix.rtp.cisco.com.server
      Usage: Encryption Key
      Key Data:
       307c300d 06092a86 4886f70d 01010105 00036b00 30680261 00d4f61b ec45843a 
       4ad9266d b125ee26 efc63cc4 e5e9cda4 9418ee53 6e4d16cf 3d0dc864 4d4830c8 
       fa7f110e 8a5761ed 4ca73ea7 5d405862 6f3150df 9eb0d11e 9c4d3563 95ff51ae 
       6711d60b 9a1415e4 19201d3f 03b455ea c1df9a41 b3a5a73f 4f020301 0001
  4. 从 Solaris 工作站发出 Telnet:

    rtp-evergreen#./ssh -c 3des -l cisco -v 172.18.124.157
    

    注意: RADIUS/TACACS+ 服务器上的用户名为 cisco,并且目标为 172.18.124.157。

exclude 命令的使用

如果添加网络之外(在 99.99.99.100 处)的另一个主机,并且此主机受信任,则可以用以下这些命令使此主机跳过身份验证和授权:

pix(config)#aaa authentication exclude telnet inbound 0.0.0.0 0.0.0.0 99.99.99.100
 255.255.255.255 AuthInbound

pix(config)#aaa authorization exclude telnet inbound 0.0.0.0 0.0.0.0 99.99.99.100 
255.255.255.255 AuthInbound

使用 Cisco 安全 ACS 配置 RADIUS\TACACS+ 服务器

完成以下这些步骤,以便在 Cisco 安全 ACS 中配置 RADIUS 和 TACACS+。

  1. 必须配置 PIX 查找 CSACS 以检查用户凭据。

    例如:

    pix(config)#aaa-server AuthOutbound protocol radius
    pix(config)#aaa-server AuthOutbound (inside) host 171.68.118.101 testkey
    
  2. 在左侧选择 Network Configuration,然后单击 Add Entry,为 TACACS+ 或 RADIUS 服务器数据库中的 PIX 添加条目。根据 PIX 配置选择服务器数据库。

    /image/gif/paws/70992/tacacs-radius-config1.gif

  3. 在 IP address 字段中输入 172.16.1.85 ,然后在共享密钥 Key 字段中输入 test。在 Authenticate Using 下拉框中选择 RADIUS (Cisco IOS/PIX)。单击 submit

    tacacs-radius-config2.gif

    密钥用于在 PIX 与 CSACS 服务器(RADIUS 服务器)之间进行身份验证。如果要选择 TACACS+ 协议进行身份验证,则在 Authenticate Using 下拉菜单中选择 TACACS+ (Cisco IOS)

    /image/gif/paws/70992/tacacs-radius-config3.gif

  4. 在 User 字段中,输入 Cisco Secure 数据库中的用户名,然后单击 Add/Edit

    在本例中,用户名为 user1。

    tacacs-radius-config4.gif

  5. 在下一个窗口中,输入 user1 的口令。

    在本例中,口令也是 password1。如果需要,可将用户帐户映射到组。完成后,单击 Submit

    tacacs-radius-config5.gif

配置 TACACS+ 授权

可以配置安全设备用 TACACS+ 执行网络访问授权。指定一些 ACL,授权规则必须匹配这些 ACL 才能标识要授权的流量。或者,可以直接在授权规则自身内直接标识流量。

使用 ACL 标识要授权的流量可以极大减少必须输入的授权命令数量。这是因为您所输入的每个授权规则只能指定一个源、目标子网和服务,而 ACL 可以包括许多条目。

身份验证和授权语句相互独立。但是,将拒绝授权语句匹配的所有未经身份验证的流量。要使授权成功,用户首先必须用安全设备进行身份验证。由于位于给定 IP 地址的用户对于所有规则和类型都只需要进行一次身份验证,因此如果身份验证会话未到期即可进行授权,即使流量与某个身份验证语句匹配也是如此。

用户进行身份验证之后,安全设备将检查授权规则以寻找匹配的流量。如果流量与授权语句匹配,则安全设备将用户名发送到 TACACS+ 服务器。TACACS+ 服务器根据用户配置文件,用允许或拒绝该流量响应安全设备。安全设备实施响应中的授权规则。

有关如何为用户配置网络访问授权的信息,请参阅您的 TACACS+ 服务器的文档。

完成以下这些步骤以配置 TACACS+ 授权:

  1. 启用身份验证。

    有关详细信息,请参阅启用网络访问身份验证。如果已启用了身份验证,请继续进行下一步。

  2. 发出 access-list 命令创建 ACL,它标识您要授权的流量的源地址和目标地址。

    有关各个步骤,请参阅添加扩展访问列表。permit ACE 标记要授权的匹配流量,而 deny 条目阻止对匹配流量进行授权。用于授权匹配的 ACL 应包含与用于身份验证匹配的 ACL 中的规则相同或是其一部分的规则。

    注意: 如果已配置了身份验证,并且要授权通过身份验证的所有流量,则可以使用为用于 aaa authentication match 命令而创建的相同 ACL。

  3. 发出以下命令以启用授权:

    hostname/contexta(config)#aaa authorization match acl_name 
    interface_name server_group
    

    该命令的 acl_name 部分是您在第 2 步中创建的 ACL 的名称,该命令的 interface_name 部分是用 nameif 命令指定或默认情况下的接口名称,而该命令的 server_group 部分是您在启用身份验证时所创建的 AAA 服务器组。

    注意: 此外,还可以使用 aaa authorization include 命令。这样可标识该命令内的流量。但是,不能在相同配置中同时使用这两个方法。有关详细信息,请参阅 Cisco 安全设备命令参考

    这些命令对内部 Telnet 流量进行身份验证和授权。对到 10.165.201.5 之外服务器的 Telnet 流量可以只进行身份验证,但到 10.165.201.5 的流量需要授权。

    hostname/contexta(config)#access-list TELNET_AUTH extended permit tcp any any 
    eq telnet
    
    hostname/contexta(config)#access-list SERVER_AUTH extended permit tcp any host 
    10.165.201.5 eq telnet
    
    hostname/contexta(config)#aaa-server AuthOutbound protocol tacacs+
    
    hostname/contexta(config-aaa-server-group)#exit
    
    hostname/contexta(config)#aaa-server AuthOutbound (inside) host 10.1.1.1
    
    hostname/contexta(config-aaa-server-host)#key TACPlusUauthKey
    
    hostname/contexta(config-aaa-server-host)#exit
    
    hostname/contexta(config)#aaa authentication match TELNET_AUTH inside AuthOutbound
    
    hostname/contexta(config)#aaa authorization match SERVER_AUTH inside AuthOutbound
    

配置 RADIUS 授权

PIX 防火墙允许 RADIUS 服务器在 RADIUS 身份验证响应消息中向 PIX 防火墙发送用户组属性。

管理员首先为每个用户组在 PIX 防火墙上定义访问列表。例如,组织中的每个部门(如销售、营销、工程等等)可能都有相应的访问列表。随后管理员在 Cisco 版本的 RADIUS(称为 CiscoSecure)中的组配置文件中列出访问列表。

PIX 防火墙请求由 RADIUS 服务器对用户进行身份验证。如果用户经过授权,则 RADIUS 服务器向 PIX 防火墙返回一个确认授权响应消息,其中将供应商特有的属性 11 (filter-id) 设置为给定用户组的访问列表。RADIUS 属性 11 不能用于传递此信息。

PIX 防火墙也提供 TACACS+ 的相同功能以保持一致性。

注意: 访问列表可以与 RADIUS 或 TACACS 配合使用,但只能用 TACACS+ 授权 FTP、HTTP 或 Telnet。

发出以下这些 access-list 命令语句以将某个部门中的用户限制在三台服务器中并拒绝任何其他设备:

access-list eng permit ip any server1 255.255.255.255

access-list eng permit ip any server2 255.255.255.255

access-list eng permit ip any server3 255.255.255.255

access-list eng deny ip any any

在本例中,将 CiscoSecure 配置中供应商特有的属性字符串设置为 acl=eng。使用 CiscoSecure 配置中的此字段以标识访问列表标识名称。PIX 防火墙从 CiscoSecure 收到 acl=acl_ID 字符串、提取 ACL 标识符并将其放置在用户的 uauth 条目中。

当用户尝试打开连接时,PIX 防火墙检查用户的 uauth 条目中的访问列表,并允许或拒绝该连接。这取决于访问列表匹配项的 permit 或 deny 状态。当拒绝连接时,PIX 防火墙生成一条相应的 syslog 消息。如果没有匹配项,则隐式规则为拒绝。

由于给定用户的源 IP 可能会根据其从何处登录而不同,因此请将 access-list 命令语句中的源地址设置为 any,并设置目标地址以标识允许或拒绝用户访问的网络服务。

注意: aaa authorization 命令不需要单独的 RADIUS 选项。

使用基于 MAC 的 AAA 免除

在 PIX 防火墙 6.3 版及更高版本中,可以使用 MAC 地址对不支持 AAA 身份验证的设备(如 Cisco IP 电话)跳过身份验证。需要在内部(安全性较高)接口上标识 MAC 地址才能使用此功能。PIX 防火墙使用 MAC 地址以及动态分配给 MAC 地址的 IP 地址对匹配的流量跳过 AAA 服务器。跳过身份验证时,将自动禁用授权服务。仍会生成记账记录(如果已启用),但是不显示用户名。

建立要免于进行 AAA 身份验证的 MAC 地址的列表,然后将该列表分配给 AAA 服务器以启用基于 MAC 的 AAA 免除。

注意: 此功能不能应用于外部或安全级别较低的接口上。

  1. 在配置模式下发出此命令以定义 MAC 地址的列表:

    mac-list mcl-id deny | permit mac mac-mask
    

    发出此命令所需的次数以定义要添加到列表的所有 MAC 地址。将 mcl-id 替换为 MAC 列表的标识符。

    使用 permit 选项标识要免于进行身份验证的 MAC 地址。使用 deny 选项防止跳过身份验证。将 mac 替换为可用于选择根据硬件地址的公共部分(如供应商 ID)选择一组设备的部分 MAC 地址。将 mac-mask 替换为标识 MAC 地址中应该用于匹配的部分。

    例如,此命令对单个 MAC 地址跳过身份验证:

    mypix(config)#mac-list adc permit 00a0.c95d.0282 ffff.ffff.ffff
    

    在本例中,掩码 FFFF.FFFF.FFFF 指示 PIX 防火墙匹配前面十六进制地址的全部 12 位数字(六个字节)。

    此命令对所有硬件 ID 为 0003.E3 的 Cisco IP 电话跳过身份验证:

    mypix(config)#mac-list adc permit 0003.E300.0000 FFFF.FF00.0000
    
  2. 发出此命令以向 AAA 服务器应用 MAC 列表:

    mypix(config)#aaa mac-exempt match<mcl-id>
    
    

    将 mcl-id 替换为要应用的 MAC 列表的标识符。

    例如,此命令将 MAC 列表 adc 应用于 AAA 服务器:

    mypix(config)#aaa mac-exempt match<adc>
    
    
  3. 发出此命令以查看某个特定的 MAC 列表中的当前条目:

    mypix#show mac-list [mcl-id]
    

    如果省略 MAC 列表标识符,则系统显示当前配置的所有 MAC 列表。

  4. 发出此命令以清除 MAC 列表中的所有条目:

    mypix#clear mac-list [mclid]
    

    如果省略 MAC 列表标识符,则系统清除当前配置的所有 MAC 列表。

配置本地数据库作为备用方法

此部分介绍如何管理本地数据库中的用户。可以使用本地数据库进行 CLI 访问身份验证、特权模式身份验证、命令授权、网络访问身份验证以及 VPN 身份验证和授权。不能使用本地数据库进行网络访问授权。本地数据库不支持记账。

对于多上下文模式,可以在系统执行空间中配置用户名,以使用 login 命令提供单独的登录名。但是,在系统执行空间中不能配置任何 aaa 命令。

注意: 如果主身份验证服务器(如 ACS)正常运行并且可访问,但数据库中不存在用户名,则 ASA 不允许退而使用本地数据库搜索此用户。只有在主服务器停机时,ASA 才会退而使用本地数据库或辅助数据库。

完成这些步骤:

  1. 发出以下这些命令以定义本地数据库中的某个用户帐户:

    • 对于 PIX 6.3:

      hostname(config)#username username {[{nopassword | password 
      password} [encrypted]] [privilege level]}
      
    • 对于 PIX/ASA 7.x:

      语法

      hostname(config)#username user password password1 encrypted
      pix(config)#aaa authentication {telnet | ssh | http | serial} console 
      {LOCAL | server_group [LOCAL]}
      

    注意: 如果使用 TACACS+ 或 RADIUS 服务器组进行身份验证,则可以将安全设备配置为在 AAA 服务器不可用时使用本地数据库作为备用方法。指定服务器组名称,后跟 LOCAL(LOCAL 区分大小写)。Cisco 建议在本地数据库中使用与 AAA 服务器相同的用户名和口令,因为安全设备提示符并不指明正在使用何种方法。

    示例:

    pix(config)#aaa authentication ssh console TACACS+ LOCAL
    

    通过仅输入 LOCAL,可以选择性地使用本地数据库作为主要的身份验证方法(无备用方法)。例如,发出此命令以定义本地数据库中的某个用户帐户以及对 SSH 连接执行本地身份验证:

    示例:

    pix(config)#aaa authentication ssh console LOCAL
    
  2. 从 PIX 7.x 起,发出此命令以配置拥有 VPN 属性的本地用户帐户:

    hostname/contexta(config)#username username attributes
    

    当发出 username attributes 命令时,即进入用户名模式。以下是此模式下为配置用户配置文件而需要发出的命令:

    • group-lock

    • password-storage

    • vpn-access-hours

    • vpn-filter

    • vpn-framed-ip-address

    • vpn-group-policy

    • vpn-idle-timeout

    • vpn-session-timeout

    • vpn-simultaneous-logins

    • vpn-tunnel-protocol

    • WebVPN

虚拟 Telnet

虽然可以为任何协议或服务配置网络访问身份验证(请参阅 aaa authentication match 或 aaa authentication include 命令),但只能直接对 HTTP、Telnet 或 FTP 进行身份验证。用户首先必须对这些服务之一进行身份验证,然后才允许要求身份验证的其他流量通过。如果不希望允许 HTTP、Telnet 或 FTP 通过安全设备,但希望对其他类型的流量进行身份验证,可以配置虚拟 Telnet。用户 Telnet 到安全设备上配置的一个给定 IP 地址,然后安全设备提供 Telnet 提示符。

要配置虚拟 Telnet 服务器,请发出此命令:

hostname(config)#virtual telnet <ip_address>

ip_address 参数设置虚拟 Telnet 服务器的 IP 地址。确保此地址是一个未使用的地址,并可路由到安全设备。

必须配置对 Telnet 访问虚拟 Telnet 地址的身份验证,以及要使用 authentication match 或 aaa authentication include 命令进行身份验证的其他服务。

当未经过身份验证的用户连接到虚拟 Telnet IP 地址时,将向用户质询用户名和口令,然后由 AAA 服务器对用户进行身份验证。经过身份验证后,用户即看到消息“Authentication Successful.”。然后,用户即可成功访问需要进行身份验证的其他服务。

对于入站用户(从较低安全性到较高安全性),还必须包括虚拟 Telnet 地址作为应用于源接口的访问列表中的目标接口。并且,必须对虚拟 Telnet IP 地址添加 static 命令,即使不需要 NAT(使用 no nat-control 命令)也是如此。通常使用身份 NAT 命令(其中将地址转换为本身)。

对于出站用户,对流量有显式的 permit。但是,如果将访问列表应用于内部接口,请确保允许访问虚拟 Telnet 地址。不需要 static 语句。

要从安全设备注销,请重新连接虚拟 Telnet IP 地址。此时将提示您注销。

本例展示如何对其他服务启用虚拟 Telnet 以及 AAA 身份验证:

hostname(config)#virtual telnet 10.165.202.129
hostname(config)#access-list ACL-IN extended permit tcp any host 10.165.200.225 
eq smtp
hostname(config)#access-list ACL-IN

!--- This is the SMTP server on the inside

hostname(config)#access-list ACL-IN extended permit tcp any host 10.165.202.129 
eq telnet
hostname(config)#access-list ACL-IN 

!--- This is the virtual Telnet address

hostname(config)#access-group ACL-IN in interface outside
hostname(config)#static (inside, outside) 10.165.202.129 10.165.202.129 netmask 
255.255.255.255
hostname(config)#access-list AUTH extended permit tcp any host 10.165.200.225 
eq smtp
hostname(config)#access-list AUTH

!--- This is the SMTP server on the inside

hostname(config)#access-list AUTH extended permit tcp any host 10.165.202.129 
eq telnet
hostname(config)#access-list AUTH

!--- This is the virtual Telnet address

hostname(config)#aaa-server ACS protocol tacacs+
hostname(config)#aaa-server Acs (inside) host 10.1.1.1 TheUauthKey
hostname(config)#aaa authentication match AUTH outside ACS
hostname(config)#aaa authorization match AUTH outside ACS

验证

对于本文档中的配置,当前还没有可用的验证过程。

故障排除

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

问题:在 PIX/ASA 中进行身份验证之后无法直接进入启用模式

在 PIX/ASA 中进行身份验证之后,您无法直接进入启用模式。

解决方案

不能直接进入启用模式是因为 PIX/ASA 不支持此功能。必须手动进入启用模式。

相关的思科支持社区讨论

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


相关信息


Document ID: 70992