Ubuntu Syslog日志审计指南
Syslog是Ubuntu系统记录系统事件、错误及用户活动的核心机制,通过合理配置可实现全面的日志审计,帮助监控系统运行、检测异常行为并满足合规性要求。以下是具体实施步骤:
Ubuntu默认使用rsyslog作为Syslog服务,首先确保其安装并运行:
sudo apt-get update
sudo apt-get install rsyslog
sudo systemctl restart rsyslog
编辑/etc/rsyslog.conf或创建自定义配置文件(如/etc/rsyslog.d/audit.conf),将不同设施(facility)的日志分离到独立文件,便于后续审计:
/var/log/audit.log:auth,authpriv.* /var/log/audit.log
/var/log/syslog:*.err /var/log/syslog
*.warn /var/log/syslog
*.* @remote_syslog_server:514 # UDP转发
*.* @@remote_syslog_server:514 # TCP转发(更可靠)
修改完成后,重启rsyslog服务使配置生效:
sudo systemctl restart rsyslog
Syslog仅能记录基础日志,若需细粒度审计(如命令执行、文件访问),需安装auditd(Linux审计框架):
sudo apt-get install auditd audispd-plugins
编辑/etc/audit/rules.d/audit.rules,添加以下关键规则:
-a exit,always -F arch=b32 -S execve -k cmd_exec # 32位系统
-a exit,always -F arch=b64 -S execve -k cmd_exec # 64位系统
-a exit,always -F path=/usr/bin/sudo -F perm=x -k sudo_usage
sudo systemctl restart auditd
sudo augenrules --load # 加载新规则
cmd_exec):sudo ausearch -k cmd_exec
sudo aureport -k -ts today -te now
为记录sudo命令的使用情况(关键操作),需单独配置sudo日志:
使用visudo命令编辑/etc/sudoers,添加以下行:
Defaults logfile="/var/log/sudo.log"
Defaults log_input, log_output # 记录输入命令及输出(可选,增强审计)
编辑/etc/rsyslog.conf,添加以下行将sudo日志定向到独立文件:
local2.debug /var/log/sudo.log
重启rsyslog服务:
sudo systemctl restart rsyslog
Ubuntu默认使用logrotate管理日志轮转,编辑/etc/logrotate.d/rsyslog(或/etc/logrotate.d/syslog),调整轮转策略(如保留7天日志,压缩旧日志):
/var/log/syslog
{
rotate 7
daily
compress
missingok
notifempty
create 640 root adm
}
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
使用tail命令实时查看审计日志(如/var/log/audit.log):
sudo tail -f /var/log/audit.log
journalctl
journalctl _COMM=sshd
journalctl --since "1 hour ago"
安装并配置Logwatch,生成每日/每周日志报告:
sudo apt-get install logwatch
sudo logwatch --output mail --mailto your_email@example.com --detail high # 发送邮件报告
对于大规模日志,可使用Elasticsearch+Logstash+Kibana(ELK)搭建可视化平台:
通过以上步骤,可实现Ubuntu系统从基础到深度的日志审计,覆盖系统操作、用户行为、命令执行等多个维度,为系统安全提供有力保障。