在 Cisco ASA GUI 中查找丢失数据包的来源

在 Cisco ASA GUI 中查找丢失数据包的来源

我们正在使用带有 ASDM 6.4 的一对 ASA 5520 防火墙。

有人可以告诉我,当我们收到大量丢弃的数据包时,如何找出源 IP 或目标 IP(通过 ASDM 或 CLI)?

截至今天,我们一次丢包超过 100,000 个,持续了大约 10 分钟。显然是想中断我们的连接。我想要实现的是,当此类攻击开始时,看看具体来源(如果只有一个)或具体目标是什么。

除了较大的“丢包率”外,ASDM 在防火墙仪表板中没有显示任何特殊内容。在“监控”的“日志缓冲区”中,没有显示该时间范围内的任何内容。

我们非常欢迎任何帮助!

吉米

答案1

介绍

首先,请阅读有关 ASA 日志记录的文档,例如:

http://www.cisco.com/c/en/us/td/docs/security/asa/asa82/configuration/guide/config/monitor_syslog.html#wp1082858

ASA 具有日志记录级别和大量日志报告功能。与您最相关的可能是 ASDM、控制台和系统日志(我还想提一下 SNMP 和 NetFlow,因为它们经常用于监控)。

http://www.cisco.com/c/en/us/td/docs/security/asa/syslog-guide/syslogs/logsevp.html

ASDM 和控制台仅显示当前日志。您没有好的选项来查看在启动 ASDM 或执行“show logs”命令之前发生了什么。在控制台中,有一个历史记录缓冲区,默认为 4 KB。对于 ASDM,默认缓冲区(历史记录大小)为 100 条消息。如果您有 100 000 个事件,那么两者都没有意义。

http://www.cisco.com/c/en/us/td/docs/security/asa/asa82/command/reference/cmd_ref/l2.html#wp1770150

因此,要查看 ASDM 中的当前消息,您只需启用所需的日志记录级别(例如,从严重性级别 4 开始,如果没有看到所需的消息,则增加它)。如果您有 ASA 5520,我可以假设,如果您启用级别 7,您将获得大量日志。在此之后,您应该能够在 ASDM 的主窗口中看到滚动(几乎以光速)的日志。

当然,要查看旧消息,您可以增加缓冲区大小。但是,我不建议这样做,因为它会占用 ASA 的资源。相反,正确的方法是将日志记录配置到远程 syslog 服务器,然后您可以在该服务器上分析它们。

记录到 rsyslog

要配置它,请准备一台带有 rsyslog 的 Linux 机器(根据我的经验,当我尝试将日志从 ASA 发送到它时,普通 syslog 会导致整个 Debian 6 服务器崩溃,因此我使用了带有 rsyslog 的 Ubuntu;syslog-ng 也可以工作):

1.准备文件夹:

mkdir /home/asa
mkdir /home/asa/log
touch /home/asa/log/asa.log
chown -R root:adm /home/asa/log/asa.log #optional; check permissions in /var/log to have an notion

2.配置logrotate:

touch /etc/logrotate.d/asa

内容:

/home/asa/log/asa.log {
daily
rotate 365
missingok
compress
create 640 root adm
}

3.启用远程日志记录:取消注释/etc/rsyslog.d 中的以下行:

$ModLoad imudp
$UDPServerRun 514

4.配置日志记录(/etc/rsyslog.d/50-default):

local1.* /home/asa/log/asa.log

5. 为 /var/log/syslog(50-default 的第 11 行)和 /var/log/messages(50-default 的第 42 行)添加 local1.none,以避免在那里写入来自 ASA 的消息:

*.*;auth,authpriv.none,local1.none              -/var/log/syslog
*.=info;*.=notice;*.=warn;\
    auth,authpriv.none;\
    cron,daemon.none;\
    mail,news.none,local1.none              -/var/log/messages

6.Rsyslog 现在将监听 local1(facility17)。应配置 ASA 以将消息发送到 facility17(请不要忘记备份之前的配置):

(config)# logging host inside x.x.x.x
(config)# logging trap 6
(config)# logging permit-hostdown !!! THIS IS VERY IMPORTANT !!! Allow ASA to continue working without blocking connections when logging server is down
(config)# logging facility 17 # local1 facility for syslog
(config)# logging enable

现在,系统日志服务器上有所有日志(包括断开连接的信息)。您可以根据需要分析和关联它们。例如,应用第三方解决方案或只是在控制台中手动选择唯一的目标地址。

SNMP/Netflow

请看我的另一个回答:https://serverfault.com/a/487024/118677

我对 ManageEngine NetFlow Analyzer 的使用体验非常好(当时它允许免费监控一个接口)。要配置它,您需要(简而言之):

  1. 在 ASA 上配置 SNMP 陷阱

  2. 在 ManageEngine NetFlow Analyzer 中配置 SNMP

  3. “LicenseManagement”下的最后一个接口(IfIndex65535)

  4. 在 ManageEngine NetFlow Analyzer 中更新 SNMP

也可以看看:我可以使用 Cisco ASA 的“NetFlow 安全事件日志记录”(NetFlow 9)进行带宽监控吗

其他选择

基本上,使用 syslog 和 SNMP 功能,您可以应用任何第三方工具进行监控和分析,例如 Splunk、LogStash、GreyLog 等。

您还可以使用 Nagios/OpsView/Munin 等自动控制 ASA 的状态(内存、CPU 负载、丢包)。

威胁检测

如果您想检测攻击,ASA 还内置了威胁检测功能:

http://www.cisco.com/c/en/us/support/docs/security/asa-5500-x-series-next-generation-firewalls/113685-asa-threat-detection.html

http://www.cisco.com/c/en/us/td/docs/security/asa/asa82/configuration/guide/config/conns_threat.html

但是,我不会太依赖此功能。特别是,我在 5505 上阻止检测到的威胁(又称“避开”)时有过不好的经历,它会变得疯狂并开始阻止正常连接。没有阻止的检测和统计是安全的。

只需定期更新您的固件并分析日志。

相关内容