温馨提示×

Ubuntu下日志安全策略

小樊
40
2025-12-29 16:19:49
栏目: 智能运维

Ubuntu日志安全策略实施要点

一 基础架构与日志采集

  • 使用 rsyslog 作为系统日志服务,确保安装并开机自启:sudo apt update && sudo apt install rsyslog && sudo systemctl enable --now rsyslog
  • 启用 systemd-journald 做本地结构化日志,必要时持久化:sudo mkdir -p /var/log/journal && sudo systemctl restart systemd-journald
  • 关键日志路径与用途:
    • /var/log/syslog:综合系统消息
    • /var/log/auth.log:认证与 sudo 使用
    • /var/log/audit/audit.log:内核级审计日志(auditd)
  • 基本分类示例(写入 /etc/rsyslog.d/50-default.conf 或自定义文件):
    • auth,authpriv.* /var/log/auth.log
    • *.* /var/log/syslog
    • local0.* /var/log/myapp.log
      修改后执行:sudo systemctl restart rsyslog

二 访问控制与传输加密

  • 文件与目录权限:
    • 系统日志建议 640,属主 root:adm,如:sudo chmod 640 /var/log/syslog /var/log/auth.log && sudo chown root:adm /var/log/syslog /var/log/auth.log
    • 审计日志目录更严格:700,属主 root:admsudo chmod 700 /var/log/audit && sudo chown root:adm /var/log/audit
    • 需要细粒度授权时使用 ACLsudo setfacl -m g:adm:r /var/log/auth.log
  • 远程日志传输安全:
    • 优先 TLS/SSL:生成证书(示例有效期 3650 天)
      • sudo openssl req -newkey rsa:2048 -x509 -days 3650 -keyout /etc/ssl/private/rsyslog.key -out /etc/ssl/certs/rsyslog.crt
    • 在 rsyslog 配置启用 TLS,并仅开放必要端口;必要时禁用明文 UDP 514,改用 TCP/TLS
  • 网络访问控制:
    • UFW 限制来源网段访问 Syslog 端口:sudo ufw allow from 192.168.1.0/24 to any port 514 proto udp
    • 在 rsyslog 中使用 AllowedSender 明确允许的主机/网段。

三 完整性保护与审计追踪

  • 日志完整性:
    • 使用 GnuPG 对关键日志做签名:gpg --detach-sign /var/log/syslog,定期校验签名是否被篡改。
    • 部署 AIDE 做文件完整性基线校验,监控 /var/log/var/log/audit 的异常变更。
  • 细粒度审计(auditd):
    • 安装并启用:sudo apt install auditd audispd-plugins && sudo systemctl enable --now auditd
    • 常用规则(写入 /etc/audit/rules.d/audit.rules):
      • 监控进程执行: -a exit,always -F arch=b64 -S execve -S execveat -k executed-process
      • 监控特权命令: -a exit,always -F path=/usr/bin/sudo -F perm=x -k sudo_usage
      • 监控敏感文件: -w /etc/passwd -p rwxa -k passwd_access
    • 查询与报表:sudo ausearch -k executed-processsudo aureport -k

四 存储保留与轮转策略

  • 系统日志轮转(示例 /etc/logrotate.d/rsyslog):
    • 保留 7 天、按日轮转、压缩旧日志、创建新文件时设 640 root:adm
      • /var/log/syslog { daily; rotate 7; compress; missingok; notifempty; create 640 root adm; postrotate /usr/lib/rsyslog/rsyslog-rotate ; endscript }
  • 审计日志轮转(示例 /etc/logrotate.d/audit):
    • 保留 30 天,压缩并通知 rsyslog 重新打开文件:
      • /var/log/audit/*.log { daily; rotate 30; compress; missingok; notifempty; sharedscripts; postrotate /usr/lib/rsyslog/rsyslog-rotate ; endscript }
  • 容量与告警:设置监控告警(如磁盘使用率阈值),避免因日志占满导致服务异常。

五 监控告警与合规检查

  • 实时监控与告警:
    • 在 rsyslog 中基于模式匹配触发告警,例如统计 5 次/ 5 分钟的失败登录并写入告警文件或发送邮件。
    • 使用 Logwatch 生成每日摘要;结合 fail2ban 对暴力登录进行自动封禁。
  • 集中化与可视化:
    • 小规模可用 ELK Stack(Elasticsearch+Logstash+Kibana)Graylog 做检索与可视化;大规模建议引入消息队列与缓冲降低丢失风险。
  • 合规与安全基线:
    • 使用 Lynis 进行系统安全基线检查:sudo apt install lynis && sudo lynis audit system
    • 使用 OpenSCAP 做漏洞与配置评估:sudo apt install libopenscap8 后按需扫描。
  • 应用日志补充建议:
    • 以非 root 运行应用;日志文件设 640 并归属应用用户与 adm 组;对含敏感信息的应用日志实施 GPG 加密归档或落盘即删策略。

0