Ubuntu怎样进行安全审计
小樊
31
2025-12-20 06:26:12
Ubuntu安全审计实操指南
一 核心框架与日志源
- 使用内核级审计框架 auditd 记录系统调用、文件访问、用户身份变更等关键事件,日志默认写入 /var/log/audit/audit.log,可用 ausearch、aureport 检索与汇总。
- 使用 Syslog/rsyslog/syslog-ng 统一收集系统与应用日志,便于集中化存储、转发与告警。
- Ubuntu 身份验证与特权操作日志集中在 /var/log/auth.log,系统级事件在 /var/log/syslog;失败登录汇总可查 /var/log/faillog。
- 启用 AppArmor(Ubuntu 默认)记录进程的能力拒绝与策略违规,日志同样进入 syslog,可用其工具进行分析与调优。
二 安装与启用 auditd 审计
- 安装与启动
- 安装组件:
sudo apt update && sudo apt install auditd audispd-plugins
- 启动并设为开机自启:
sudo systemctl start auditd && sudo systemctl enable auditd
- 基本配置
- 主配置:/etc/audit/auditd.conf(如日志文件、大小、保留策略等)
- 规则配置:/etc/audit/rules.d/audit.rules(建议将规则写入该目录,由系统加载)
- 常用审计规则示例(按需精简与合并)
- 记录所有命令执行(覆盖 32/64 位与 execve/execveat):
-a always,exit -F arch=b64 -S execve -k command
-a always,exit -F arch=b32 -S execve -k command
-a always,exit -F arch=b64 -S execveat -k command
-a always,exit -F arch=b32 -S execveat -k command
- 记录特权命令(sudo 执行的命令通常经 sudo 审计,若需直接捕获可补充相关规则)
- 记录关键文件访问(示例:/etc/passwd):
-w /etc/passwd -p wa -k identity
- 使配置生效
- 动态加载:
sudo auditctl -R /etc/audit/rules.d/audit.rules
- 重启服务:
sudo systemctl restart auditd(注意 auditd 对规则变更较敏感,变更前建议备份与评估)
三 日志分析与报告
- 审计日志检索
- 按关键字:sudo ausearch -k command(查看命令执行审计)
- 按文件:sudo ausearch -f /etc/passwd
- 按时间:sudo ausearch -ts today -te now
- 按系统调用:sudo ausearch -sc open
- 报表与汇总
- 全量事件:sudo aureport
- 文件相关:sudo aureport -f;系统调用:sudo aureport -c;登录/认证:sudo aureport -l --auth
- Syslog 与集中化
- 配置 rsyslog/syslog-ng 将日志转发至远程日志服务器(示例:
*.* @192.0.2.10:514)
- 使用 logwatch 生成日报/周报,便于例行巡检与异常发现
四 入侵自检与取证要点
- 身份与登录
- 失败登录:grep “Failed password” /var/log/auth.log;成功登录:grep “Accepted” /var/log/auth.log
- 失败统计:faillog;按用户查看最近登录:lastlog -u ;历史会话:last
- 持久化与异常
- 自启动:systemctl list-unit-files --type=service;检查 /etc/rc.local、/etc/init.d、/lib/systemd/system 等
- 计划任务:/etc/crontab、/etc/cron.、/var/spool/cron/crontabs/、systemctl list-timers
- Shell 初始化与配置:~/.bashrc、~/.profile、/etc/profile、/etc/bash.bashrc
- 审计与系统日志
- 命令执行与敏感文件访问:ausearch -k command、ausearch -f /etc/shadow
- 系统异常:tail -n 200 /var/log/syslog | egrep -i “error|fail|segfault|killed”
- 合规提示
- 在部分行业/场景,auditd 并非默认安装,上线前建议纳入基线并开启必要规则以满足等保与审计要求。
五 加固与持续化
- 日志保护
- 限制 /var/log/ 与 /var/log/audit/ 的访问权限,仅允许 root 与 adm 组读取;配置 logrotate 按日/按大小轮转并压缩归档;对敏感日志启用远程集中存储与完整性校验。
- 完整性校验
- 对关键系统文件与审计规则做 AIDE 基线校验(定期 diff 与告警),对 Web 目录可用 Tripwire。
- 入侵检测与漏洞扫描
- 主机侧入侵检测:Lynis(系统安全审计)、chkrootkit(rootkit 检测)、ClamAV(恶意软件扫描)。
- 漏洞评估:OpenVAS(全面漏洞扫描)、Nessus(专业漏洞扫描,提供多版本订阅)。
- 合规与策略
- 启用 AppArmor 并针对关键服务(如 nginx、sshd、docker)建立最小化策略;定期审计 sudoers 与 /etc/sudoers.d/ 的授权范围。