此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍可帮助您保护Cisco ASA设备的信息,这将提高网络的整体安全性。
本文档没有任何特定的要求。
本文档中的信息基于以下软件和硬件版本:
Cisco Active Security Appliance(ASA)9.16(1)及更高版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
本文档分为4个部分。
通常,本文档对安全功能的介绍将提供足够详细的信息,以便于您配置该功能。但是,在未能提供详细信息的情况下,我们会对该功能进行说明,以便于您评估是否需要对该功能引起额外的关注。本文档将在可能和适当的地方提供一些在实施后将有助于保护网络安全的建议。
此配置也可用于Cisco ASA软件版本9.1x。
有关文档约定的更多信息,请参考 Cisco 技术提示约定。
确保网络运行安全是一个非常重要的主题。尽管本文档的大部分内容都专门介绍Cisco ASA设备的安全配置,但仅靠配置并不能完全保护网络。网络上使用的运行过程与底层设备的配置一样,在很大程度上影响着网络的安全。
这些主题中包含一些建议您实施的操作建议。这些主题主要着眼于网络运行的特定重要方面,因此并不全面。
思科产品安全事件响应小组 (PSIRT) 针对思科产品中与安全相关的问题,创建并维护通常称为《PSIRT 建议》的出版物。可使用“Cisco 安全响应”这一方法来传达严重程度较低的问题。PSIRT提供安全建议和响应。
在 Cisco 安全漏洞策略中可以找到有关这些通信手段的其他信息。
为维护网络安全,您需要了解已发布的 Cisco 安全建议和响应。您首先需要了解有关漏洞的知识,然后才能评估漏洞可能对网络造成的威胁。有关此评估过程的帮助,请参阅安全漏洞公告的风险分类。
身份验证、授权和记帐 (AAA) 框架对于确保网络设备安全至关重要。AAA 框架提供针对管理会话的身份验证功能,还可以将用户限制为只能执行特定的、管理员定义的命令,并记录所有用户输入的全部命令。有关如何利用 AAA 的更多信息,请参阅本文档的身份验证、授权和记帐部分。
要了解与安全事件相关的现有、新型和历史事件,您的组织必须采取统一的事件日志记录和关联策略。此策略必须利用来自所有网络设备的日志记录,并使用预封装的可自定义关联功能。
实施集中式日志记录后,您必须开发一个用于进行日志分析和事件跟踪的结构化方法。基于您组织的需要,此方法的范围可以介于对日志数据的简单复查和基于规则的高级分析之间。
许多协议用于传送敏感的网络管理数据。您必须尽可能使用安全协议。一种安全协议选择包括使用 SSH(而不使用 Telnet),以便对身份验证数据和管理信息进行加密。此外,在复制配置数据时,您必须使用安全的文件传输协议。例如,使用安全复制协议 (SCP) 代替 FTP 或 TFTP。
使用 NetFlow 可以监视网络中的数据流。尽管最初用于将数据流信息导出到网络管理应用程序中,但 NetFlow 也可用于在路由器上显示数据流信息。使用此功能可以实时查看经过网络的数据流。不论数据流信息是否导出到远程收集器,建议您针对 NetFlow 配置网络设备,以便可以在需要时反应性地使用 NetFlow。
配置管理是用于建议、审查、批准并部署配置更改的过程。在Cisco ASA设备配置环境中,配置管理的另外两个方面至关重要:配置存档和安全。
您可以使用配置存档来回滚对网络设备所做的更改。在有关安全的上下文中,配置存档还可用于确定已做出的安全更改,以及发生这些更改的时间。与 AAA 日志数据相结合,此信息可在对网络设备进行安全审计时提供帮助。
Cisco ASA设备的配置包含许多敏感详细信息。用户名、口令和访问控制列表的内容都属于此类型的信息。需要保护用于存档Cisco ASA设备配置的存储库。以不安全的方式访问这些信息可能会破坏整个网络的安全。
管理平面包含用于实现网络管理目标的功能。其中包括使用 SSH 的交互式管理会话,以及使用 SNMP 或 Netflow 的统计信息收集功能。考虑网络设备的安全时,保护管理平面非常重要。如果安全事件能够破坏管理平面的功能,您可能将无法恢复网络或使网络变得稳定。
管理平面用于访问、配置和管理设备,并用于监视该设备的运行情况及部署该设备的网络。管理平面是接收和发送用于运行这些功能的数据流的平面。以下为管理平面使用的协议列表:
注意:建议不要启用TELNET,因为它是纯文本。
口令控制对资源或设备的访问。这通过定义用于对请求进行身份验证的口令或加密口令来实现。收到针对资源或设备的访问请求时,将对该请求进行质询,以便验证口令和身份,然后再根据质询结果授予、拒绝授予或限制访问权限。作为一项安全最佳实践,口令必须使用 TACACS+ 或 RADIUS 身份验证服务器进行管理。但是请注意,如果 TACACS+ 或 RADIUS 服务出现故障,仍需要本地配置的密码才能进行特权访问。设备的配置中也可能存在其他口令信息,如 NTP 密钥、SNMP 社区字符串或路由协议密钥。
ASA 9.7(1)为本地密码引入了PBKDF2散列。所有长度的本地用户名和启用密码都使用基于密码的密钥派生函数2(PBKDF2)散列存储在配置中。以前,密码32个字符及更短的密码使用基于MD5的散列方法。现有密码继续使用基于MD5的哈希,除非您输入新密码。有关降级指南,请参阅《一般操作配置指南》中的“软件和配置”一章。
要使用ASDM,您需要启用HTTPS服务器,并允许HTTPS连接到ASA。安全设备允许每个情景最多5个并发ASDM实例(如果可用),在所有情景之间最多32个ASDM实例。要配置ASDM访问,请使用:
http server enable <port>
仅允许ACL列表中需要的IP。允许广泛的访问不是一种好的做法。
http 0.0.0.0 0.0.0.0 <interface>
配置ASDM访问控制:
http <remote_ip_address> <remote_subnet_mask> <interface_name>
// Set server version ASA(config)# ssl server-version tlsv1 tlsv1.1 tlsv.1.2
// Set client version ASA(config) # ssl client-version tlsv1 tlsv1.1 tlsv.1.2
ASA已按默认显示的顺序启用这些密码。
默认值为high。
all关键字指定使用所有密码:hmac-sha1 hmac-sha1-96 hmac-sha2-256 hmac-md5 hmac-md5-96
custom关键字指定自定义密码加密配置字符串,以冒号分隔。
fips关键字仅指定符合FIPS的密码:hmac-sha1 hmac-sha2-256
high关键字仅指定高强度密码(默认):hmac-sha2-256
low关键字指定低、中和高强度密码:hmac-sha1 hmac-sha1-96 hmac-md5 hmac-md5-96 hmac-sha2-256
medium关键字指定中高强度密码:hmac-sha1 hmac-sha1-96hmac-sha2-256
默认情况下,ASA使用临时自签名证书,该证书在每次重新启动时更改。如果您正在查找单个证书,可以使用此链接生成永久自签名证书。
ASA支持TLS版本1.2,以实现ASDM、无客户端SSVPN和AnyConnect VPN的安全消息传输。 这些命令已引入或已修改:ssl client-version、ssl server-version、ssl cipher、ssl trust-point、ssl dh-group、show ssl、show ssl cipher、show vpn-sessiondb。
ASA-1/act(config)# ssl server-version ? configure mode commands/options: tlsv1 Enter this keyword to accept SSLv2 ClientHellos and negotiate TLSv1 (or greater) tlsv1.1 Enter this keyword to accept SSLv2 ClientHellos and negotiate TLSv1.1 (or greater) tlsv1.2 Enter this keyword to accept SSLv2 ClientHellos and negotiate TLSv1.2 (or greater)
ASA-1/act(config)# ssl cipher ? configure mode commands/options: default Specify the set of ciphers for outbound connections dtlsv1 Specify the ciphers for DTLSv1 inbound connections tlsv1 Specify the ciphers for TLSv1 inbound connections tlsv1.1 Specify the ciphers for TLSv1.1 inbound connections tlsv1.2 Specify the ciphers for TLSv1.2 inbound connections
ASA允许SSH连接到ASA以进行管理。ASA允许每个情景最多5个并发SSH连接(如果可用),在所有情景之间最多分配100个连接。
hostname <device_hostname> domain-name <domain-name> crypto key generate rsa modulus 2048
默认密钥对类型为通用密钥。默认模数大小为1024。用于存储密钥对的NVRAM空间量因ASA平台而异。如果生成的密钥对超过30个,则可以达到限制。
要删除指定类型(rsa或dsa)的密钥对,
crypto key zeroize { rsa | eddsa | ecdsa } [ label key-pair-label ] [ default ] [ noconfirm ]
为远程设备访问配置SSH:
ssh <remote_ip_address> <remote_subnet_mask> <interface_name>
要使用Diffie-Hellman(DH)组1、DH组14或Curve25519密钥交换方法交换密钥,请在全局配置模式下使用ssh key-exchange命令,从9.1(2)开始,ASA支持dh-group14-sha1用于SSH。
ASA(config)#ssh key-exchange group dh-group14-sha256
// Configure Console timeout
ASA(config)#console timeout 10
// Configure Console timeout
ASA(config)#ssh timeout 10
口令控制对资源或设备的访问。这通过定义用于对请求进行身份验证的口令或加密口令来实现。收到针对资源或设备的访问请求时,将对该请求进行质询,以便验证口令和身份,然后再根据质询结果授予、拒绝授予或限制访问权限。作为一项安全最佳实践,口令必须使用 TACACS+ 或 RADIUS 身份验证服务器进行管理。但是请注意,如果 TACACS+ 或 RADIUS 服务出现故障,仍需要本地配置的密码才能进行特权访问。设备的配置中也可能存在其他口令信息,如 NTP 密钥、SNMP 社区字符串或路由协议密钥。
username <local_username> password <local_password> encrypted
enable password <enable_password> encrypted
ASA(config)#aaa authentication enable console LOCAL
要确保对设备执行安全交互式访问,身份验证、授权和记帐 (AAA) 框架至关重要。AAA 框架提供了一种可高度配置的环境,环境配置可根据网络需求量身定制。
TACACS+是一种身份验证协议,ASA可以使用该协议针对远程AAA服务器对管理用户进行身份验证。这些管理用户可以通过SSH、HTTPS、Telnet或HTTP访问ASA设备。
TACACS+ 身份验证(更常被称为 AAA 验证)使每个网络管理员能够使用单个用户帐户。如果您不依赖于单个共享密码,则可提高网络安全性并强化您的责任。
RADIUS是一种类似于TACACS+的协议;但是,它仅加密通过网络发送的密码。相反,TACACS+ 可对整个 TCP 有效负载加密,包括用户名和密码。因此,当AAA服务器支持TACACS+时,可以优先使用TACACS+而不是RADIUS。有关比较这两种协议的详细信息,请参阅比较 TACACS+ 和 RADIUS。
可以使用如下示例类似的配置在思科ASA设备上启用TACACS+身份验证:
aaa authentication serial console Tacacs aaa authentication ssh console Tacacs aaa authentication http console Tacacs aaa authentication telnet console Tacacs
从软件版本9.3.1开始,ASA映像现在使用数字签名进行签名。数字签名在ASA引导后进行验证。
ASA-1/act(config)# verify flash:/asa941-smp-k8.bin
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Done! Embedded Hash SHA-512: 0e707a0e45b1c7c5afa9ef4e802a273677a5e46f7e1d186292abe1154 c948a63c625463b74119194da029655487659490c2873506974cab78b66d6d9742ed73e Computed Hash SHA-512: 0e707a0e45b1c7c5afa9ef4e802a273677a5e46f7e1d186292abe1154 c948a63c625463b74119194da029655487659490c2873506974cab78b66d6d9742ed73e CCO Hash SHA-512: 1b6d41e893868aab9e06e78a9902b925227c82d8e31978ff2c412c18a c99f49f70354715441385e0b96e4bd3e861d18fb30433d52e12b15b501fa790f36d0ea0 Signature Verified
ASA(config)# verify /signature running Requesting verify signature of the running image... Starting image verification Hash Computation: 100% Done! Computed Hash SHA2: 2fbb0f62b5fbc61b081acfca76bddbb2 26ce7a5fb4b424e5e21636c6c8a7d665 1e688834203dfb7ffa6eaefc7fdf9d3d 1d0a063a20539baba72c2526ca37771c Get key records from key storage: PrimaryASA, key_store_type: 6 Embedded Hash SHA2: 2fbb0f62b5fbc61b081acfca76bddbb2 26ce7a5fb4b424e5e21636c6c8a7d665 1e688834203dfb7ffa6eaefc7fdf9d3d 1d0a063a20539baba72c2526ca37771c Returned. rc: 0, status: 1 The digital signature of the running image verified successfully
ASA-1/act(config)# show software authenticity running
Image type : Release
Signer Information
Common Name : abraxas
Organization Unit : ASAv
Organization Name : CiscoSystems
Certificate Serial Number : 550DBBD5
Hash Algorithm : SHA2 512
Signature Algorithm : 2048-bit RSA
Key Version : A
clock timezone GMT <hours offset>
网络时间协议 (NTP) 并不是一种特别危险的服务,但任何不必要的服务都可能代表攻击矢量。如果使用 NTP,则必须明确配置受信任的时间源并使用适当的验证。为了实现 syslog 目的(例如在对潜在的攻击进行取证调查期间),并且为了在依靠证书进行第 1 阶段验证时成功建立 VPN 连接,需要使用准确而可靠的时间。
ASA(config)#ntp authenticate
clear configure dhcpd no dhcpd enable <interface_name>
注:ASA不支持CDP。
流向设备的管理流量(由http、ssh或telnet等命令定义)的访问控制规则比使用控制平面选项应用的访问列表的优先级更高。因此,即使被设备访问列表明确拒绝,也可以允许此类允许的管理流量进入。
access-list <name> in interface <Interface_name> control-plane
以下是可用于将文件复制/传输到ASA的协议。
明文:
安全:
每个TCP连接都有两个ISN:一个由客户端生成,另一个由服务器生成。ASA随机化在入站和出站方向传递的TCP SYN的ISN。
随机化受保护主机的ISN可防止攻击者预测新连接的下一个ISN并可能劫持新会话。
您可以根据需要禁用 TCP 初始序列号随机化。例如:
默认情况下,不会减少IP报头中的TTL,因为执行Traceroute时ASA不会显示为路由器跃点。
每个查询执行一个DNS响应。可以在全局配置模式下使用命令启用它。
ASA(config)#dns-guard
要提供数据包分段的其他管理并提高与NFS的兼容性,请在全局配置模式下使用fragment命令。
fragment reassembly { full | virtual } { size | chain | timeout limit } [ interface ]
对于在用户数据包中嵌入IP寻址信息的服务,或在动态分配的端口上打开辅助信道的服务,需要检查引擎。这些协议要求ASA执行深度数据包检测,而不是通过快速路径传送数据包。因此,检测引擎可能会影响整体吞吐量。有关应用层协议检测的详细信息,请参阅ASA 9.4配置指南。
可以使用此命令启用ASA上的检测。
policy-map <Policy-map_name> class inspection_default inspect <Protocol> service-policy <Policy-map_name> interface <Interface_name> (Per Interface) service-policy <Policy-map_name> global (Globally)
默认情况下,ASA全局启用了global_policy。
ip verify reverse-path interface <interface_name>
当流量因RPF检查而被丢弃时,这会显示ASA增量上的asp丢弃计数器。
ASA(config)# show asp drop
Frame drop:
Invalid TCP Length (invalid-tcp-hdr-length) 21
Reverse-path verify failed (rpf-violated) 90
// Check Reverse path statistics
ASA(config)# sh ip verify statistics
interface inside: 11 unicast rpf drops
interface outside: 79 unicast rpf drops
威胁检测为防火墙管理员提供了必要的工具,以便在攻击到达内部网络基础设施之前识别、了解和阻止攻击。为此,该功能依赖于许多不同的触发器和统计信息,这将在以下各节中进一步详细说明。
有关ASA上的威胁检测的详细说明,请参阅ASA威胁检测功能和配置。
BotNet流量过滤器监控在内部DNS客户端和外部DNS服务器之间的域名服务器(DNS)请求和响应。处理DNS响应时,会根据已知恶意域数据库检查与响应关联的域。如果存在匹配,则阻止DNS响应中存在的任何发往IP地址的进一步流量。
恶意软件是安装在未知主机上的恶意软件。当恶意软件开始连接到已知恶意IP地址时,僵尸网络流量过滤器可以检测到试图发送私有数据(密码、信用卡号、按键或专有数据)等网络活动的恶意软件。僵尸网络流量过滤器根据已知错误域名和IP地址(阻止列表)的动态数据库检查传入和传出连接,然后记录或阻止任何可疑活动。
您还可以将思科动态数据库添加到静态阻止列表,从而使用您选择的阻止列表地址对其进行补充。如果动态数据库包含您认为无法阻止列出的阻止列表地址,您可以手动将其输入到静态允许列表中。允许的列表地址仍会生成系统日志消息,但由于您仅针对阻止的列表系统日志消息,因此它们只是提供信息。有关详细信息,请参阅配置僵尸网络流量过滤器。
默认情况下,对于非直连子网IP地址,ASA不响应ARP。如果ASA上的NAT IP不属于该ASA接口的同一子网IP,则可能必须在ASA上启用arp permit-nonconnected以对NATted IP启用代理ARP。
arp permit-nonconnected
始终建议在上游和下游设备上使用正确的路由,使NAT能够在不启用之前命令的情况下运行。
本节重点介绍几种可用于保护ASA设备中SNMP部署的方法。正确保护 SNMP 非常重要,这样才能确保网络数据和传输这些数据的网络设备的机密性、完整性和可用性。SNMP 可为您提供大量有关网络设备运行状况的信息。可以保护此信息免受想要利用这些数据对网络执行攻击的恶意用户的侵害。
团体字符串是应用于ASA设备的密码,用于限制对设备上SNMP数据的只读和读写访问。与所有密码一样,可以仔细选择这些社区字符串以确保它们并非无关紧要。可以按照网络安全策略定期更改团体字符串。例如,当网络管理员更改角色或离开公司时,可以更改字符串。
snmp-server host <interface_name> <remote_ip_address>
snmp-server enable traps all
建议向远程系统日志服务器发送日志记录信息。这样,可更加有效地关联和审查网络设备范围的网络和安全事件。
注意:系统日志消息通过UDP以明文形式传输时不可靠。
因此,可以扩展网络为管理流量提供的任何保护(例如加密或带外访问),以包括系统日志流量。可以将日志配置为从ASA发送到此目标:
logging console critical
还提供基于TCP的系统日志。在TCP情况下,所有系统日志都可以以明文或加密形式发送到系统日志服务器。
明文
logging host interface_name syslog_ip [ tcp/ port
已加密
logging host interface_name syslog_ip [ tcp/ port | [ secure ]
如果无法与syslogs服务器建立TCP连接,则会拒绝所有新连接。您可以通过输入logging permit-hostdown命令更改此默认行为。
配置日志记录时间戳可帮助您关联各个网络设备上的事件。必须实施正确且一致的日志记录时间戳配置,以确保能够关联日志记录数据。
logging timestamp
有关系统日志的其他信息,请参阅ASA系统日志配置示例。
有时,特别是在事件响应或网络性能不佳的时候,您可能需要迅速标识和回溯网络数据流。使用 NetFlow 可以看到网络上的所有数据流。此外,NetFlow 还可以与能够提供长期趋势和自动分析的收集器一起实施。
Cisco ASA支持NetFlow版本9服务。NSEL的ASA和ASASM实现提供一种状态化IP流跟踪方法,该方法仅导出指示流中重大事件的那些记录。在有状态流跟踪中,跟踪的流经历一系列状态更改。NSEL事件用于导出有关流状态的数据,由导致状态更改的事件触发。
有关ASA上Netflow的详细信息,请参阅Cisco ASA NetFlow实施指南:
所有密码和密钥都经过加密或模糊处理。show running-config不会显示实际密码。
此类备份不能用于ASA上的备份/恢复。用于恢复目的的备份将使用命令more system:running-config执行。 ASA配置密码可以使用主密码短语进行加密。有关详细信息,请参阅密码加密。
禁用此选项可以禁用密码恢复机制并禁用对ROMMON的访问。从丢失或忘记的密码中恢复的唯一方法是ROMMON擦除所有文件系统,包括配置文件和映像。您可以备份您的配置,并具备从ROMMON命令行恢复映像的机制。
没有可用的故障排除信息。
版本 | 发布日期 | 备注 |
---|---|---|
2.0 |
02-Aug-2023 |
添加了Alt文本。更新的标题、简介、SEO、机器翻译、样式要求、语法、拼写和格式。 |
1.0 |
17-Sep-2015 |
初始版本 |