1. 定位关键安全日志文件
Debian系统中,安全事件日志集中存储在/var/log目录下,核心文件包括:
/var/log/auth.log:记录认证与授权事件(如登录尝试、sudo/su命令使用、SSH连接),是追踪非法访问的主要来源;/var/log/syslog//var/log/messages:记录系统级通用日志(如内核消息、服务启动/停止、权限变更);/var/log/kern.log:记录内核相关事件(如硬件异常、驱动加载、防火墙拦截);/var/log/dpkg.log:记录软件包安装、升级、删除操作,用于追踪系统变更。2. 使用系统自带工具查看与过滤日志
journalctl(systemd日志管理工具):可通过时间、优先级、服务名等条件过滤日志。例如,查看过去1小时内sshd服务的日志:sudo journalctl -u sshd --since "1 hour ago"
查找紧急级别(emerg)以上的日志:sudo journalctl -p emerg
grep筛选关键词(如“Failed password”“Accepted”),less分页查看大日志文件。例如,统计auth.log中失败登录次数:grep "Failed password" /var/log/auth.log | wc -l
查看特定IP(如192.168.1.100)的登录记录:grep "192.168.1.100" /var/log/auth.log
```。
3. 配置审计工具(auditd)追踪详细事件
auditd是Linux审计系统的核心工具,可记录细粒度的系统操作(如文件访问、权限变更、用户命令)。
sudo apt install auditd -y
sudo systemctl start auditd
sudo systemctl enable auditd
auditctl命令或配置文件(/etc/audit/rules.d/)添加规则。例如:
/etc/passwd文件的读写执行操作,标记为password_changes:sudo auditctl -w /etc/passwd -p rwxa -k password_changes
sudo auditctl -a always,exit -F euid=0 -k root_commands
ausearch搜索特定关键词(如password_changes):sudo ausearch -k password_changes
aureport生成汇总报告(如登录事件、文件访问):sudo aureport --login
sudo aureport --file
```。
4. 利用日志分析工具自动化识别威胁
/etc/fail2ban/jail.local,启用sshd保护:sudo apt install fail2ban -y
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
/etc/logwatch/conf/services/auth.conf,设置邮件通知:sudo apt install logwatch -y
sudo logwatch --service auth --output mail
5. 定期审查与响应安全事件
cron设置每日自动审查脚本(如检查失败登录次数超过阈值时发送警报):#!/bin/bash
LOG_FILE="/var/log/auth.log"
THRESHOLD=5
FAILED_LOGINS=$(grep "Failed password" $LOG_FILE | wc -l)
if [ $FAILED_LOGINS -gt $THRESHOLD ]; then
echo "Alert: $FAILED_LOGINS failed login attempts detected!" | mail -s "Security Alert" admin@example.com
fi
logrotate防止日志文件过大(默认规则位于/etc/logrotate.conf,自定义规则可放在/etc/logrotate.d/)。例如,限制auth.log保留7天,压缩旧日志:/var/log/auth.log {
daily
rotate 7
compress
missingok
notifempty
}
auditd日志追踪恶意进程)、修复漏洞(如更新软件包)、恢复数据。