日志是Linux系统安全防御的第一道防线,通过合理配置和分析日志可以有效预防和检测系统攻击。以下是一套完整的日志安全策略:
系统认证日志
/var/log/auth.log
(Debian/Ubuntu) 或 /var/log/secure
(RHEL/CentOS)系统日志
/var/log/syslog
(通用系统活动)/var/log/messages
(传统系统消息)服务日志
/var/log/apache2/
或 /var/log/nginx/
/var/log/sshd.log
配置rsyslog/syslog-ng
# 示例rsyslog配置增强认证日志
auth,authpriv.* /var/log/auth.log
auth,authpriv.* @central-log-server:514
journalctl配置(系统d系统)
# 永久存储journal日志
mkdir /var/log/journal
systemctl restart systemd-journald
日志轮转配置
# /etc/logrotate.conf 示例配置
/var/log/auth.log {
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
SSH暴力破解检测
# 检测SSH失败登录
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
用户权限变更监控
# 监控sudo和su使用
grep -E "sudo:|su:" /var/log/auth.log
异常进程监控
# 检测非正常时间运行的cron任务
grep CRON /var/log/syslog | grep -v "CMD (sleep"
Fail2ban (自动封禁恶意IP)
# 安装配置
apt install fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 自定义规则
Logwatch (每日日志摘要)
apt install logwatch
# 配置/etc/logwatch/conf/logwatch.conf
OSSEC (开源HIDS)
# 安装和配置入侵检测系统
wget https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz
tar -xvzf 3.6.0.tar.gz
cd ossec-hids-3.6.0
./install.sh
ELK Stack (高级日志分析)
配置远程syslog服务器
# 在客户端配置
*.* @192.168.1.100:514
日志保留策略
日志完整性保护
# 使用AIDE检测日志文件篡改
apt install aide
aideinit
时间线分析
# 按时间排序查看关键事件
ls -lt /var/log/auth.log /var/log/syslog
关联分析
# 查找同一IP的多项活动
zgrep "192.168.1.100" /var/log/auth.log*
Rootkit检测
# 检查异常内核模块
lsmod | grep -Ev "^(Module|ipv6|nf_conntrack)"
通过以上措施,您可以建立一个强大的日志监控系统,不仅能预防潜在攻击,还能在攻击发生时快速检测和响应。记住,日志只有被分析和监控时才有价值,因此务必建立定期审查机制。