windows服务器smb访问审计核心是两步:先启用全局审核策略(audit file system/share),再为共享文件夹配置sacl规则,最后通过事件查看器筛选id 4663、5145日志追溯操作详情。
windows服务器启用smb访问审计
核心是两步:先开启系统级文件访问审核策略,再为具体共享文件夹配置审计规则。
- 打开组策略编辑器(gpedit.msc),路径:计算机配置 → Windows 设置 → 安全设置 → 高级审核策略配置 → 对象访问 → 文件系统,勾选“成功”和“失败”
- 对目标共享文件夹右键 → 属性 → 安全 → 高级 → 审核 → 添加,选择用户或组(如Domain Users),勾选需记录的操作(如读取数据、写入数据、删除、更改权限),并勾选“替换所有子对象的可审核项”
- 执行gpupdate /force刷新策略,之后访问行为才会被记录
Linux/Truenas上启用Samba full_audit日志
适用于Samba服务,通过vfs插件实现细粒度操作记录,无需依赖系统安全日志。
- 在smb.conf中添加审计配置(全局或单个共享):
vfs objects = full_audit
full_audit:prefix = %u|%I|%m|%S(记录用户、IP、客户端名、共享名)
full_audit:success = connect disconnect open pread pwrite rename unlink chmod chown
full_audit:facility = LOCAL7(指定日志设施) - 确保rsyslog或syslog-ng将LOCAL7消息路由到指定文件,例如在/etc/rsyslog.conf中添加:
local7.* /var/log/samba/audit.log - 重启Samba服务:systemctl restart smbd
查看与验证日志是否生效
日志有了,得知道去哪找、怎么看才真正起作用。
- Windows:打开eventvwr.msc → Windows 日志 → 安全,筛选事件ID 4663(文件被访问)、5145(网络共享访问),双击查看详情中的账户、IP、路径、操作类型
- Linux:用tail -f /var/log/samba/audit.log实时观察;确认日志里出现类似user1|192.168.1.23|DESKTOP-ABC|sales|open这样的格式化条目
- 快速验证连接状态:PowerShell中运行Get-SmbSession(Windows)或命令行运行smbstatus(Linux)
关键注意事项
配置容易,但几个细节不注意就等于没开。
- Windows审计日志默认不记录“谁读了哪个文件”,必须手动为文件夹配SACL,仅开策略不够
- Samba的full_audit不会记录文件内容,只记录动作、主体、对象路径,符合合规审计要求
- 日志文件需定期轮转,否则/var/log/samba/audit.log可能撑爆磁盘;建议配合logrotate配置
- 如果用域环境,GPO下发后要等同步或手动gpupdate /force,别只改了策略却忘了刷新











