我们正在使用带有 ASDM 6.4 的一对 ASA 5520 防火墙。
有人可以告诉我,当我们收到大量丢弃的数据包时,如何找出源 IP 或目标 IP(通过 ASDM 或 CLI)?
截至今天,我们一次丢包超过 100,000 个,持续了大约 10 分钟。显然是想中断我们的连接。我想要实现的是,当此类攻击开始时,看看具体来源(如果只有一个)或具体目标是什么。
除了较大的“丢包率”外,ASDM 在防火墙仪表板中没有显示任何特殊内容。在“监控”的“日志缓冲区”中,没有显示该时间范围内的任何内容。
我们非常欢迎任何帮助!
吉米
答案1
介绍
首先,请阅读有关 ASA 日志记录的文档,例如:
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 的使用体验非常好(当时它允许免费监控一个接口)。要配置它,您需要(简而言之):
在 ASA 上配置 SNMP 陷阱
在 ManageEngine NetFlow Analyzer 中配置 SNMP
“LicenseManagement”下的最后一个接口(IfIndex65535)
在 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/td/docs/security/asa/asa82/configuration/guide/config/conns_threat.html
但是,我不会太依赖此功能。特别是,我在 5505 上阻止检测到的威胁(又称“避开”)时有过不好的经历,它会变得疯狂并开始阻止正常连接。没有阻止的检测和统计是安全的。
只需定期更新您的固件并分析日志。