作为IT工程师,识别Linux系统中的异常行为是安全运维的关键任务。以下是一套系统的方法来识别和分析日志中的异常行为:
首先需要了解Linux系统中重要的日志文件位置:
- /var/log/auth.log 或 /var/log/secure - 认证相关日志
- /var/log/syslog - 系统活动日志
- /var/log/kern.log - 内核日志
- /var/log/audit/audit.log - 审计日志(如果启用了auditd)
- /var/log/messages - 通用系统消息
- /var/log/apt/ - 包管理日志(Debian系)
- /var/log/yum.log - 包管理日志(RHEL系)
grep "Failed password" /var/log/auth.loggrep "session opened" /var/log/auth.log | grep -v "正常工作时间"grep "Accepted password for root" /var/log/auth.loggrep "Invalid user" /var/log/auth.loggrep "Started" /var/log/syslog | grep -v "正常服务"grep "sudo:" /var/log/auth.log | grep "incorrect password attempts"grep "service" /var/log/syslog | grep "restart"ausearch -f /etc/shadow (需要auditd)find /etc -type f -mtime -1 (检查最近修改的文件)grep - 文本搜索awk - 文本处理sed - 流编辑器tail/head - 查看日志首尾journalctl - systemd日志查看#!/bin/bash
# 检查失败的SSH登录
echo "==== Failed SSH Logins ===="
grep "Failed password" /var/log/auth.log | awk '{print $9}' | sort | uniq -c | sort -nr
# 检查sudo使用情况
echo -e "\n==== Sudo Usage ===="
grep "sudo:" /var/log/auth.log | grep "COMMAND" | awk -F'COMMAND=' '{print $2}' | sort | uniq -c | sort -nr
# 检查异常进程终止
echo -e "\n==== Unexpected Process Terminations ===="
grep -i "killed process" /var/log/syslog
# 检查磁盘空间异常变化
echo -e "\n==== Disk Space Changes ===="
df -h | grep -v "tmpfs"
auditd可以提供更详细的安全审计通过系统性地监控和分析这些日志,您可以及时发现Linux系统中的异常行为,采取相应措施保障系统安全。