ubuntu syslog日志审计
Ubuntu Syslog日志审计指南
Syslog是Ubuntu系统记录系统事件、错误及用户活动的核心机制,通过合理配置可实现全面的日志审计,帮助监控系统运行、检测异常行为并满足合规性要求。以下是具体实施步骤:
一、基础配置:优化Syslog服务
1. 安装与重启rsyslog
Ubuntu默认使用rsyslog
作为Syslog服务,首先确保其安装并运行:
sudo apt-get update
sudo apt-get install rsyslog
sudo systemctl restart rsyslog
2. 配置日志分类存储
编辑/etc/rsyslog.conf
或创建自定义配置文件(如/etc/rsyslog.d/audit.conf
),将不同设施(facility)的日志分离到独立文件,便于后续审计:
- 认证相关日志(auth、authpriv):记录sudo、ssh登录等敏感操作,建议存储到
/var/log/audit.log
:auth,authpriv.* /var/log/audit.log
- 错误日志:将系统错误(如内核、服务错误)记录到
/var/log/syslog
:*.err /var/log/syslog *.warn /var/log/syslog
- 可选:转发日志到远程服务器(如SIEM系统),添加以下行(替换为远程服务器IP):
*.* @remote_syslog_server:514 # UDP转发 *.* @@remote_syslog_server:514 # TCP转发(更可靠)
3. 生效配置
修改完成后,重启rsyslog服务使配置生效:
sudo systemctl restart rsyslog
二、深度审计:部署auditd守护进程
Syslog仅能记录基础日志,若需细粒度审计(如命令执行、文件访问),需安装auditd
(Linux审计框架):
1. 安装auditd
sudo apt-get install auditd audispd-plugins
2. 配置审计规则
编辑/etc/audit/rules.d/audit.rules
,添加以下关键规则:
- 记录所有命令执行(execve系统调用):
-a exit,always -F arch=b32 -S execve -k cmd_exec # 32位系统 -a exit,always -F arch=b64 -S execve -k cmd_exec # 64位系统
- 记录sudo使用(可选,补充auth日志):
-a exit,always -F path=/usr/bin/sudo -F perm=x -k sudo_usage
3. 重启auditd并加载规则
sudo systemctl restart auditd
sudo augenrules --load # 加载新规则
4. 使用审计工具查询日志
- 查询特定规则日志(如
cmd_exec
):sudo ausearch -k cmd_exec
- 生成统计报告(如最近24小时内的命令执行次数):
sudo aureport -k -ts today -te now
三、辅助审计:配置sudo日志
为记录sudo
命令的使用情况(关键操作),需单独配置sudo日志:
1. 修改sudoers文件
使用visudo
命令编辑/etc/sudoers
,添加以下行:
Defaults logfile="/var/log/sudo.log"
Defaults log_input, log_output # 记录输入命令及输出(可选,增强审计)
2. 配置rsyslog记录sudo日志
编辑/etc/rsyslog.conf
,添加以下行将sudo日志定向到独立文件:
local2.debug /var/log/sudo.log
重启rsyslog服务:
sudo systemctl restart rsyslog
四、日志管理与安全加固
1. 日志轮转(防止日志过大)
Ubuntu默认使用logrotate
管理日志轮转,编辑/etc/logrotate.d/rsyslog
(或/etc/logrotate.d/syslog
),调整轮转策略(如保留7天日志,压缩旧日志):
/var/log/syslog
{
rotate 7
daily
compress
missingok
notifempty
create 640 root adm
}
2. 日志安全保护
- 设置日志文件权限:确保审计日志仅root可读:
sudo chmod 640 /var/log/audit.log /var/log/sudo.log sudo chown root:adm /var/log/audit.log /var/log/sudo.log
- 防止日志篡改:使用
auditd
监控日志文件的完整性(如/var/log/audit.log
),添加以下规则:-w /var/log/audit.log -p wa -k audit_log_integrity
3. 实时监控日志
使用tail
命令实时查看审计日志(如/var/log/audit.log
):
sudo tail -f /var/log/audit.log
五、高级分析:使用日志分析工具
1. journalctl(集成于systemd)
- 查看所有系统日志:
journalctl
- 过滤认证日志(如ssh登录):
journalctl _COMM=sshd
- 按时间范围查询(如最近1小时):
journalctl --since "1 hour ago"
2. Logwatch(自动化报告)
安装并配置Logwatch,生成每日/每周日志报告:
sudo apt-get install logwatch
sudo logwatch --output mail --mailto your_email@example.com --detail high # 发送邮件报告
3. ELK Stack(可视化分析)
对于大规模日志,可使用Elasticsearch+Logstash+Kibana(ELK)搭建可视化平台:
- Logstash:收集rsyslog、auditd日志;
- Elasticsearch:存储并索引日志;
- Kibana:通过 dashboard 展示日志趋势、异常检测(如频繁的登录失败)。
通过以上步骤,可实现Ubuntu系统从基础到深度的日志审计,覆盖系统操作、用户行为、命令执行等多个维度,为系统安全提供有力保障。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu syslog日志审计
本文地址: https://pptw.com/jishu/720324.html