You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Splunk获取触发USB警报主机的24小时内登录记录?

获取触发USB警报主机的近24小时登录记录

当然可以,以下是几种针对Linux系统的实用方法,根据你的日志配置选择即可:

方法1:使用systemd日志工具(推荐)

如果主机使用systemd管理服务,journalctl能快速按时间范围筛选登录相关记录:

journalctl --since "24 hours ago" -u sshd -u login -u sudo | grep -E '(Accepted|session opened|Failed password)'
  • --since "24 hours ago":限定仅输出近24小时的日志
  • -u sshd -u login -u sudo:指定只查看SSH、本地登录、sudo切换用户的服务日志
  • grep部分:筛选登录成功、会话开启、登录失败等关键事件

方法2:直接解析/var/log/secure文件

如果系统未使用systemd,可直接操作/var/log/secure日志文件:

基础时间过滤

利用日志的日期格式(通常为月缩写 日期,如Oct 12)筛选:

grep -E '(sshd|login|sudo)' /var/log/secure | grep "$(date -d '24 hours ago' +'%b %d')"

若日志包含年份,调整日期格式为%Y-%b %d即可:

grep -E '(sshd|login|sudo)' /var/log/secure | grep "$(date -d '24 hours ago' +'%Y-%b %d')"

精确时间匹配(跨日期场景)

如果警报触发时间刚好跨天,用awk转换时间戳实现精确过滤:

awk -v cutoff="$(date -d '24 hours ago' +'%s')" '{
    cmd="date -d \""$1" "$2" "$3"\" +%s"
    cmd | getline timestamp
    close(cmd)
    if(timestamp >= cutoff) print $0
}' /var/log/secure | grep -E '(sshd|login|sudo|Accepted|Failed)'

方法3:结合USB警报时间缩小范围

先定位触发警报的具体时间,再针对性提取该时段附近的登录记录:

  1. 找到最新的usbguard警报时间:
grep 'usbguard' /var/log/secure | tail -n 1
  1. 假设得到的时间是Oct 12 14:35:22,提取该时间前后1小时的登录记录:
awk -v start="$(date -d 'Oct 12 13:35:22' +'%s')" -v end="$(date -d 'Oct 12 15:35:22' +'%s')" '{
    cmd="date -d \""$1" "$2" "$3"\" +%s"
    cmd | getline timestamp
    close(cmd)
    if(timestamp >= start && timestamp <= end) print $0
}' /var/log/secure | grep -E '(sshd|login|sudo)'

内容的提问来源于stack exchange,提问作者thomasb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:15:40