一、关键日志文件定位与攻击特征分析 1. 核心日志文件路径 Web 服务器日志: Nginx:/var/log/nginx/access.log(访问日志)、/var/log/nginx/error.log(错误日志) Apache:/var/log/apache2/access.log、/var/log/apache2/error.log 系统认证日志: SSH 登录记录:/var/log/auth.log(Debian/Ubuntu)、/var/log/secure(CentOS/RHEL) 内核与进程日志: /var/log/syslog(通用系统事件)、/var/log/kern.log(内核级事件) 数据库日志: MySQL:/var/log/mysql/error.log PostgreSQL:/var/log/postgresql/postgresql-[version]-main.log 2. 典型攻击行为特征
SSH 暴力破解: 高频次失败登录记录,如:
bash Copy Code grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr #:ml-citation{ref="4,8" data="citationList"}
特征示例:sshd[pid]: Failed password for root from 203.0.113.45,同一 IP 尝试多用户名或短时间密集登录。
Web 漏洞利用:
SQL 注入:访问日志中出现 UNION SELECT、' OR 1=1 — 等异常参数。 路径遍历:请求包含 ../、/etc/passwd 等敏感路径尝试。
后门植入痕迹:
系统关键文件(如 /etc/passwd、/etc/shadow)被修改,或 /tmp、/dev/shm 目录中出现可疑脚本。
异常网络连接:
使用 netstat -tulnp 或 ss -antp 检测未知端口监听或对外连接。 三、日志深度分析方法 1. 高频攻击行为筛选
统计 SSH 失败 IP 排名:
bash Copy Code grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | head -n 20 #:ml-citation{ref="4,8" data="citationList"}
Web 异常请求分析:
bash Copy Code grep -E "(SELECT|UNION|eval\\(|base64_decode)" /var/log/nginx/access.log #:ml-citation{ref="1,6" data="citationList"}
2. 时间线关联分析 定位攻击时间窗口: bash Copy Code grep "Accepted password" /var/log/auth.log | tail -n 50 # 查看最近成功登录记录 grep "session opened" /var/log/auth.log | grep "203.0.113.45" # 追踪特定 IP 活动时间线:ml-citation{ref="4,8" data="citationList"}
四、自动化工具与防御建议 1. 日志监控工具 Fail2ban:自动封禁暴力破解 IP,配置示例: ini Copy Code [sshd] enabled = true maxretry = 5 # 失败 5 次后封禁 bantime = 3600 # 封禁 1 小时:ml-citation{ref="5,6" data="citationList"}
ELK Stack:集中化日志分析,设置告警规则(如单 IP 每分钟超 50 次 SSH 登录尝试)。 2. 安全加固措施 禁用 SSH 密码登录:仅允许密钥认证,修改 /etc/ssh/sshd_config: ini Copy Code PasswordAuthentication no PermitRootLogin no #:ml-citation{ref="4,5" data="citationList"}
文件完整性校验: 使用 md5sum 或 aide 校验系统文件,检测篡改行为。 bash Copy Code md5sum /etc/passwd # 对比原始哈希值:ml-citation{ref="6" data="citationList"}
五、总结排查流程 初步筛查:通过 grep 过滤异常关键词(如 Failed、SELECT、../)。 IP 溯源:利用 whois 或威胁情报平台分析攻击源。 进程与网络验证:结合 top、netstat 定位可疑进程和连接。 自动化响应:部署 Fail2ban 或商业级 IDS/IPS 拦截攻击。
通过以上方法,可系统性识别服务器是否遭受攻击。建议每日检查关键日志,并结合自动化工具实现实时防护。
评论前必须登录!
注册