Linux 系统日志分析:识别 SSH 暴力破解与异常登录行为
通过以上方法结合自动化工具,可有效识别并响应 SSH 暴力破解和异常登录行为。结果中排名靠前的 IP 可能是攻击源。例如,某 IP 在短时间内出现数十次失败记录需重点关注。输出会显示失败登录的 IP、用户名和时间戳,高频失败通常是暴力破解的特征。异常用户名、来源 IP 或未授权的登录时间需进一步调查。)查询高频攻击 IP 的地理位置,判断是否为已知恶意网络。检查非工作时间(如凌晨)的成功登录,或非
Linux 系统日志分析:SSH 暴力破解与异常登录检测方法
检查 SSH 失败登录记录
SSH 登录失败的日志通常记录在 /var/log/auth.log 或 /var/log/secure 中,具体路径取决于发行版。使用以下命令筛选失败尝试:
grep "Failed password" /var/log/auth.log
输出会显示失败登录的 IP、用户名和时间戳,高频失败通常是暴力破解的特征。
统计可疑 IP 的失败次数
结合 awk 和 sort 统计失败次数最多的 IP:
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
结果中排名靠前的 IP 可能是攻击源。例如,某 IP 在短时间内出现数十次失败记录需重点关注。
识别成功登录的异常行为
成功登录记录可通过以下命令筛选:
grep "Accepted password" /var/log/auth.log
检查非工作时间(如凌晨)的成功登录,或非常用用户名(如 root)的登录,可能表明入侵成功。
使用工具自动化分析
工具如 fail2ban 可自动封禁暴力破解 IP。安装后配置 /etc/fail2ban/jail.conf 启用 SSH 保护:
[sshd]
enabled = true
maxretry = 3 # 允许的失败次数
bantime = 3600 # 封禁时长(秒)
检查历史登录会话
last 命令查看近期登录会话:
last
异常用户名、来源 IP 或未授权的登录时间需进一步调查。结合 lastb 查看失败会话记录。
监控实时登录活动
journalctl 实时监控 SSH 活动(Systemd 系统):
journalctl -u sshd -f
动态观察登录尝试,配合 awk 或脚本可实时告警。
加固 SSH 配置建议
修改 /etc/ssh/sshd_config 减少风险:
- 禁用 root 登录:
PermitRootLogin no - 限制用户:
AllowUsers your_username - 更改默认端口:
Port 2222 - 启用密钥认证:
PasswordAuthentication no
进阶分析:地理定位可疑 IP
通过 whois 或在线工具(如 ipinfo.io)查询高频攻击 IP 的地理位置,判断是否为已知恶意网络。
自动化脚本示例
以下脚本提取并告警高频失败 IP(需替换邮箱配置):
#!/bin/bash
LOG_FILE="/var/log/auth.log"
THRESHOLD=5
ALERT_EMAIL="admin@example.com"
grep "Failed password" "$LOG_FILE" | awk '{print $11}' | sort | uniq -c | awk -v limit="$THRESHOLD" '$1 > limit {print $2}' | while read IP; do
echo "警报: IP $IP 超过 $THRESHOLD 次失败登录尝试" | mail -s "SSH 暴力破解警报" "$ALERT_EMAIL"
done
通过以上方法结合自动化工具,可有效识别并响应 SSH 暴力破解和异常登录行为。定期审计日志并更新防护规则是关键。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)