服务器操作审计日志需分层捕获、防篡改存储、责任可溯,覆盖面板操作、终端命令、文件访问、远程连接四类行为,且日志必须脱离被审计主机本地存储。

服务器操作审计日志不是简单打开一个开关就能管用,关键在于分层捕获、防篡改存储、责任可溯。重点要覆盖面板操作、终端命令、文件访问、远程连接四类行为,且必须让日志脱离被审计主机本地存储。
一、启用并加固系统级命令审计(auditd)
这是最可靠的一层,绕过 shell,直接监控 execve 系统调用,root 以下用户执行的每条命令(包括 sudo、脚本内调用)都会留下痕迹:
- 安装并启动服务:
yum install audit -y(CentOS)或apt install auditd -y(Ubuntu),然后运行systemctl enable --now auditd - 添加规则到
/etc/audit/rules.d/commands.rules:-a always,exit -F arch=b64 -S execve -k user_commands-w /etc/passwd -p wa -k etc_passwd-w /etc/shadow -p wa -k etc_shadow - 重载规则:
augenrules --load,验证:ausearch -k user_commands | head -5
二、配置宝塔或小皮等管理面板审计
面板界面操作(如建站、开防火墙、部署SSL)需单独开启,否则 auditd 无法捕获:
- 登录面板后台 → 设置 → 面板设置 → 安全设置 → 开启“操作日志记录”
- 将“日志保存天数”设为 ≥30 天,避免自动清理
- 子账户建议单独管理:在“用户 → 子账户管理”中禁用超级权限,并为每个子账户创建独立日志目录(如
/www/audit_log/username),配合 ACL 控制写入权限
三、强化 SSH 登录与会话审计
仅记录登录成功/失败远远不够,要抓源头和过程:
- 编辑
/etc/ssh/sshd_config:LogLevel VERBOSE(记录认证细节)PrintLastLog yes(显示上次登录信息)UsePAM yes(启用 PAM,便于集成 auditd) - 对 SFTP 用户,用 internal-sftp + local5 日志级别:
Subsystem sftp internal-sftp -l VERBOSE -f local5
再在 rsyslog 中将 local5.* 转发至中心服务器 - 禁止明文转发:客户端 syslog 配置必须用
@@(o)(TLS 加密 TCP),服务端监听 6514 端口并校验客户端证书
四、集中存储与权限隔离
本地日志易被删改,必须外发;多用户操作必须能区分责任人:
- 中心 syslog 服务端按源 IP 或用户名自动分目录,例如:
$template RemoteAudit,"/var/log/audit-remote/%fromhost-ip%/auth.log"
确保每台服务器、每个子账户的日志物理隔离 - audit 日志目录(如
/var/log/audit)权限设为700,属主为 root:root - 定期归档压缩并做 SHA256 校验,保留至少 180 天,满足等保与合规要求


















