数字档案馆系统审计追踪不及时的落地修复实操方法
一、前置准备
仅需部署在CentOS 7/8操作系统的数字档案馆环境,系统默认集成rsyslog、logrotate、journalctl工具,确认archive-system服务正常运行(执行`sudo systemctl status archive-system`查看状态,显示active(running)即可)。
二、核心修复步骤
1. 审计追踪模块配置核查与修正
找到archive-system核心配置文件,路径为/opt/archive-system/config/audit.yaml,直接替换为以下完整内容:
务必确认audit字段下enable设为true,track_events需包含所有业务关键操作类型,避免遗漏核心追踪项。配置修改完成后,执行命令重启服务:
```bash sudo systemctl daemon-reload sudo systemctl restart archive-system ```验证配置生效:执行`sudo tail -f /var/log/archive/audit.log`,触发登录操作(使用合法账号),若出现对应日志记录则配置成功。
2. 日志采集规则补全
编辑rsyslog全局配置文件/etc/rsyslog.conf,在文件末尾添加以下规则:
``` 数字档案馆审计日志专属采集规则 if $programname == 'archive-system' then { /var/log/archive/audit.log & stop } ```保存后执行命令重启rsyslog服务:
```bash sudo systemctl restart rsyslog ```验证采集生效:执行`sudo journalctl -u rsyslog | grep "archive"`,若输出包含config规则则说明采集已激活。
3. 实时异常告警机制搭建
CentOS 8执行命令安装sendemail工具:
```bash sudo dnf install sendemail -y ```创建告警脚本/usr/local/bin/alert_audit.sh,内容完整如下:
```bash !/bin/bash 告警配置参数(需替换为实际信息) MAIL_USER="alert@your-domain.com" MAIL_PASS="your-email-app-password" MAIL_TO="admin@your-domain.com" SMTP_SERVER="smtp.your-domain.com" SMTP_PORT="587" 日志数量阈值(按业务调整,建议设为单分钟最大操作数的2倍) THRESHOLD=200 统计最近1分钟审计日志量 LOG_COUNT=$(sudo wc -l /var/log/archive/audit.log | awk '{print $1}') 超过阈值触发告警 if [ $LOG_COUNT -gt $THRESHOLD ]; then sendemail -f $MAIL_USER -t $MAIL_TO -u "【异常告警】数字档案馆审计日志突增" -m "最近1分钟审计日志数:${LOG_COUNT},超过阈值${THRESHOLD},请排查异常操作" -s $SMTP_SERVER:$SMTP_PORT -xu $MAIL_USER -xp $MAIL_PASS -o tls=yes fi ```
给脚本添加执行权限:
```bash sudo chmod +x /usr/local/bin/alert_audit.sh ```添加定时任务,每1分钟执行一次告警检查,执行`sudo crontab -e`,在文件末尾添加:
```bash /usr/local/bin/alert_audit.sh >> /var/log/alert_audit.log 2>&1 ```务必替换脚本中的邮箱、SMTP参数为实际业务信息,避免告警无法发送;THRESHOLD需根据实际操作频率调整,确保告警精准。
4. 日志自动切割与权限加固
创建logrotate配置文件,路径/etc/logrotate.d/archive-audit,内容完整如下:
``` /var/log/archive/audit.log { daily missingok rotate 7 compress notifempty create 600 archive archive sharedscripts postrotate sudo systemctl restart rsyslog endscript } ```创建巡检脚本/usr/local/bin/check_audit.sh,内容完整如下:
```bash !/bin/bash AUDIT_LOG="/var/log/archive/audit.log" 检查日志文件存在性 if [ ! -f $AUDIT_LOG ]; then sudo touch $AUDIT_LOG sudo chown archive:archive $AUDIT_LOG fi 检查日志权限是否为600(防篡改) LOG_PERM=$(stat -c "%a" $AUDIT_LOG) if [ $LOG_PERM -ne 600 ]; then sudo chmod 600 $AUDIT_LOG fi 每天凌晨1点执行巡检 if [ $(date +%H) -eq 1 ]; then /usr/local/bin/check_audit.sh >> /var/log/audit_daily_check.log 2>&1 fi ```给巡检脚本添加执行权限:
```bash sudo chmod +x /usr/local/bin/check_audit.sh ```create字段的archive:archive需替换为archive-system服务运行的用户和组,避免日志生成失败;日志权限设置为600确保仅服务可读写,防止篡改。
三、验证与验收
按以下步骤100%验证功能是否生效:
- 登录数字档案馆后台,执行「上传文件」「修改用户权限」两个关键操作;
- 执行`sudo tail -n 10 /var/log/archive/audit.log`,确认两条操作对应日志已生成;
- 等待1分钟,查看/var/log/alert_audit.log,确认无异常告警(若手动输入1000行日志,需确认告警触发);
- 手动填充1GB测试日志,执行`sudo logrotate -f /etc/logrotate.d/archive-audit`,确认生成压缩的归档日志(路径/var/log/archive/audit.log.1.gz)。
四、后续运维要点
每月执行一次审计服务重启:`sudo systemctl restart archive-system`;每季度更新一次audit.yaml中的track_events,补充新增的业务操作类型;每半年更新一次告警邮箱的应用密码,避免过期失效;日志保留周期调整为至少6个月,符合档案管理要求。